Cron Jobs
Run HTTP requests on a cron schedule.
Definition
Section titled “Definition”{ "name": "Daily Sync", "slug": "daily-sync", "schedule": "0 2 * * *", "timezone": "America/New_York", "endpoint_url": "https://api.example.com/sync", "http_method": "POST", "headers": {"Authorization": "Bearer xyz"}, "body": "{\"full_sync\": true}", "timeout_seconds": 30, "retry_count": 3, "retry_delay_seconds": 60, "enabled": true}Schedule Format
Section titled “Schedule Format”Standard cron expressions:
0 * * * * # Every hour0 2 * * * # Daily at 2am*/15 * * * * # Every 15 minutes0 9 * * 1 # Mondays at 9amTimezone-aware. Specify timezone per job (default: UTC).
Execution
Section titled “Execution”Background scheduler checks every 30 seconds for due jobs.
On failure:
- Wait
retry_delay_seconds - Retry up to
retry_counttimes - Mark as failed if still failing
Run tracking:
- HTTP status
- Response body
- Error message (if any)
- Duration (milliseconds)
- Status: running, success, failed, timed_out, retrying
Manual Trigger
Section titled “Manual Trigger”POST /api/v1/projects/{slug}/environments/{env}/cron/{jobSlug}/triggerRuns job immediately, bypassing schedule.
Run History
Section titled “Run History”GET /api/v1/projects/{slug}/environments/{env}/cron/{jobSlug}/runsReturns list of executions with status, duration, response.
GET /api/v1/projects/{slug}/environments/{env}/cronPOST /api/v1/projects/{slug}/environments/{env}/cronGET /api/v1/projects/{slug}/environments/{env}/cron/{jobSlug}PATCH /api/v1/projects/{slug}/environments/{env}/cron/{jobSlug}DELETE /api/v1/projects/{slug}/environments/{env}/cron/{jobSlug}Limits
Section titled “Limits”- Personal (Free): 5 cron jobs
- Starter ($5/user): Unlimited cron jobs