Skip to content

Crons

Crons submit ordinary queue work: they use the same credit reservations, fairness, pending limits, and database sinks as manual batches.

{
"name": "daily-prices",
"description": "Refresh the tracked product prices every morning",
"schedule": "0 6 * * *",
"timezone": "America/New_York",
"target": {
"parser_id": "p_…",
"urls": ["https://example.com/products"]
},
"sink": {
"mode": "database",
"database": "prices",
"table": "products",
"key": ["sku"]
},
"enabled": true,
"overlap": "skip"
}

description is required. Schedules use five-field cron syntax and an optional IANA timezone (UTC by default). Account-specific maxCrons and minimum schedule interval limits apply.

Parser targets require a database sink and can include up to 1,000 URLs. A target can instead contain workflow_id plus seed URLs; workflow targets use stage sinks, require a final-stage database sink, and do not accept top-level sink or scrape_config.

overlap is skip (default) or queue.

  • GET|POST /v1/crons
  • GET|PUT|DELETE /v1/crons/{id} (PUT is a full replacement)
  • POST /v1/crons/{id}/run-now
  • GET /v1/crons/{id}/runs

run-now bypasses the schedule, not billing or queue fairness. It returns 202 when submitted, or 409 if an overlapping run must be skipped.