Every endpoint of the Cron REST API, generated from the API itself.
All endpoints are relative to https://api.cron.cool. Create an API key in your Cron dashboard, then authenticate every request with it.
apiKey — HTTP Basic auth carrying only the API key secret: Authorization: Basic base64(<key secret>).
accessToken — Operator session token issued by the Cron dashboard: Authorization: Token <access token>.
Download the OpenAPI specification for use with your own tooling.
List cron jobs
Lists the cron jobs of your project, newest first. Requires the jobs:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| limit | query | integer | Opt into pagination; returns a { data, cursor, hasMore } envelope. |
| cursor | query | string | Page forward by resending the cursor from the last page. |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of jobs (or a paginated envelope) |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the jobs:read scope |
| 429 | API key rate limit exceeded |
Create a cron job
Requires the jobs:write scope.
| Field | Type | Description |
|---|---|---|
| name | string | |
| expressionrequired | string | EventBridge Scheduler schedule expression |
| type | string | |
| url | string | |
| httpMethod | string | |
| contentType | string | |
| input | object |
| Status | Meaning |
|---|---|
| 200 | The created job |
| 403 | API key is missing the jobs:write scope |
Get a cron job
Requires the jobs:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| jobIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The job |
| 404 | No such job in your project |
Update a cron job
Requires the jobs:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| jobIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated job |
| 404 | No such job in your project |
Delete a cron job
Requires the jobs:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| jobIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | Deleted |
| 404 | No such job in your project |
List a job's execution history
Returns the recorded executions of a job (status, http status, duration, truncated response body), newest first. Requires the executions:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| jobIdrequired | path | string | |
| limit | query | integer |
| Status | Meaning |
|---|---|
| 200 | Array of job executions |
| 404 | No such job in your project |
Execute a cron job now
Runs the job immediately, out of schedule, and returns the target's response. Also records a job execution and fires the job.executed webhook. Requires the jobs:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| jobIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The target's response |
| 404 | No such job in your project |
List webhook subscriptions
Webhook subscriptions deliver job.created, job.updated, job.deleted and job.executed events to your server as signed POST requests (X-Croncool-Signature: t=<timestamp>,v1=<hex HMAC-SHA256 of "timestamp.body">). An endpoint failing 20 times in a row is disabled automatically. Subscriptions are managed with an operator access token; the secret is only returned once, on create.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string |
| Status | Meaning |
|---|---|
| 200 | Array of webhook subscriptions (without secrets) |
Create a webhook subscription
The response includes the signing secret exactly once — store it; it cannot be retrieved again.
| Field | Type | Description |
|---|---|---|
| projectIdrequired | string | |
| urlrequired | string | |
| events | array (job.created | job.updated | job.deleted | job.executed) | Empty array subscribes to all events |
| Status | Meaning |
|---|---|
| 200 | The created subscription, including its secret |
Update a webhook subscription
url, events and active are editable; the secret and project are immutable. Re-enabling an auto-disabled endpoint is done by setting active back to true.
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated subscription (without secret) |
Delete a webhook subscription
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | Deleted |