Schedules

Schedules allow you to automate scraping tasks by running saved Scraper Configs at specific times and regular intervals. Set up hourly price monitoring, daily reports, or any recurring scraping task.


Endpoint Reference

Endpoint Method Action
/account/schedule POST Create a new schedule
/account/schedule GET List all schedules
/account/schedule/{id} GET Retrieve specific schedule
/account/schedule/{id} PUT Update an existing schedule
/account/schedule/{id} DELETE Remove a schedule
/account/schedule/{id}/toggle POST Pause or activate a schedule
/account/schedule/{id}/runs GET View execution history

Authentication: Include your API key in the x-api-key header for all requests.

Base URL: https://scrape.evomi.com/api/v1


Quick Examples

Create a Schedule

curl -X POST "https://scrape.evomi.com/api/v1/account/schedule" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Hourly Price Monitor",
    "config_id": "cfg_abc123",
    "interval_minutes": 60
  }'

Response:

{
  "success": true,
  "id": "job_xyz789",
  "name": "Hourly Price Monitor",
  "config_id": "cfg_abc123",
  "interval_minutes": 60,
  "is_active": true,
  "next_run": "2026-02-20T14:00:00",
  "message": "Schedule created successfully"
}

List Your Schedules

curl "https://scrape.evomi.com/api/v1/account/schedule" \
  -H "x-api-key: YOUR_API_KEY"

Response:

{
  "success": true,
  "schedules": [
    {
      "id": "job_xyz789",
      "name": "Hourly Price Monitor",
      "config_id": "cfg_abc123",
      "interval_minutes": 60,
      "is_active": true,
      "last_run": "2026-02-20T13:00:00",
      "last_status": "success",
      "next_run": "2026-02-20T14:00:00"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 1
  }
}

Get a Specific Schedule

curl "https://scrape.evomi.com/api/v1/account/schedule/job_xyz789" \
  -H "x-api-key: YOUR_API_KEY"

Update a Schedule

curl -X PUT "https://scrape.evomi.com/api/v1/account/schedule/job_xyz789" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Monitor",
    "interval_minutes": 30
  }'

Pause or Activate a Schedule

curl -X POST "https://scrape.evomi.com/api/v1/account/schedule/job_xyz789/toggle" \
  -H "x-api-key: YOUR_API_KEY"

Delete a Schedule

curl -X DELETE "https://scrape.evomi.com/api/v1/account/schedule/job_xyz789" \
  -H "x-api-key: YOUR_API_KEY"

View Execution History

curl "https://scrape.evomi.com/api/v1/account/schedule/job_xyz789/runs" \
  -H "x-api-key: YOUR_API_KEY"

How Schedules Work

  1. Create a Scraper Config β€” First, save a Scraper Config with your scraping settings
  2. Create a Schedule β€” Reference the config ID and set an interval
  3. Automatic Execution β€” The scheduler runs your config at the specified interval
  4. Track Results β€” View execution history and status for each run
ℹ️
Make sure you have sufficient credits for the scrape configuration.

Parameter Reference

Create Parameters

Parameter Type Required Default Description
name string Yes β€” Unique name for the schedule
config_id string Yes β€” ID of the scraper config to run
interval_minutes integer Yes β€” Run every N minutes (min: 5, max: 525600)
start_time string No now UTC time for first run (e.g., "14:00")
stop_on_error boolean No true Pause schedule on failure

Update Parameters

Parameter Type Required Description
name string No New name for the schedule
config_id string No Change to a different scraper config
interval_minutes integer No New interval in minutes
stop_on_error boolean No Change error handling behavior

List Query Parameters

Parameter Type Default Description
page integer 1 Page number for pagination
per_page integer 20 Results per page (max 100)
active_only boolean false Filter to show only active schedules

Advanced Options

Start Time

Control when your schedule first runs. Specify a UTC time in HH:MM format:

curl -X POST "https://scrape.evomi.com/api/v1/account/schedule" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Daily Morning Report",
    "config_id": "cfg_abc123",
    "interval_minutes": 1440,
    "start_time": "08:00"
  }'

If the time has already passed today, the first run will be scheduled for tomorrow.

Stop on Error

By default, schedules pause automatically when a run fails. Set stop_on_error: false to continue running even after block and connection errors:

curl -X POST "https://scrape.evomi.com/api/v1/account/schedule" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Resilient Monitor",
    "config_id": "cfg_abc123",
    "interval_minutes": 60,
    "stop_on_error": false
  }'

Common Intervals

Interval Description
5 Every 5 minutes
15 Every 15 minutes
30 Every 30 minutes
60 Every hour
120 Every 2 hours
360 Every 6 hours
720 Every 12 hours
1440 Every day
10080 Every week

Execution Status

Each scheduled run can have one of the following statuses:

Status Description
triggered Job has been queued for execution
success Job completed successfully
failed Job failed to complete

Response Codes

Status Meaning Action
200 Success Request processed successfully
201 Created Schedule created successfully
400 Bad request Check your parameters
401 Unauthorized Verify your API key
404 Not found Schedule ID does not exist
409 Conflict Schedule name already exists
422 Validation error Check JSON syntax and required fields

What’s Next?