Developer API
Parse, validate, humanize, and convert cron expressions programmatically. All endpoints return JSON.
REST API
Simple GET endpoints with query parameters
Fast
All parsing runs server-side, no external dependencies
Rate Limited
100 requests per minute per IP
Base URL
https://crontool.io/api/parseParse a cron expression into its individual fields with types and expanded values.
Parameters
expressionrequiredThe cron expression to parse (5 fields, standard format) Try it now
Example Response
{
"expression": "*/5 * * * *",
"fields": {
"minute": {
"type": "step",
"values": [
0,
5,
10,
15,
20,
25,
30,
35,
40,
45,
50,
55
],
"raw": "*/5"
},
"hour": {
"type": "wildcard",
"values": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"raw": "*"
},
"dayOfMonth": {
"type": "wildcard",
"values": [
1,
2,
3,
"...",
31
],
"raw": "*"
},
"month": {
"type": "wildcard",
"values": [
1,
2,
3,
"...",
12
],
"raw": "*"
},
"dayOfWeek": {
"type": "wildcard",
"values": [
0,
1,
2,
3,
4,
5,
6
],
"raw": "*"
}
}
}Code Snippets
curl "https://crontool.io/api/parse?expression=*/5+*+*+*+*"
/api/validateValidate whether a cron expression is syntactically correct.
Parameters
expressionrequiredThe cron expression to validate Try it now
Example Response
{
"expression": "*/5 * * * *",
"valid": true
}Code Snippets
curl "https://crontool.io/api/validate?expression=*/5+*+*+*+*"
/api/nextGet the next scheduled execution times for a cron expression.
Parameters
expressionrequiredThe cron expression countoptionalNumber of executions to return (1–25) (default: 5) timezoneoptionalIANA timezone (e.g. America/New_York) (default: UTC) Try it now
Example Response
{
"expression": "0 9 * * 1-5",
"timezone": "UTC",
"count": 3,
"next": [
"2026-03-23T09:00:00.000Z",
"2026-03-24T09:00:00.000Z",
"2026-03-25T09:00:00.000Z"
]
}Code Snippets
curl "https://crontool.io/api/next?expression=0+9+*+*+1-5&count=3&timezone=UTC"
/api/humanizeConvert a cron expression into a human-readable English description.
Parameters
expressionrequiredThe cron expression to describe Try it now
Example Response
{
"expression": "30 9 * * 1-5",
"description": "Every weekday at 9:30 AM"
}Code Snippets
curl "https://crontool.io/api/humanize?expression=30+9+*+*+1-5"
/api/convertConvert a cron expression between different formats (standard, Quartz, AWS, etc.).
Parameters
expressionrequiredThe cron expression to convert torequiredTarget format: standard, quartz, aws, vercel, github-actions fromoptionalSource format (auto-detected if omitted) (default: auto-detected) Try it now
Example Response
{
"expression": "*/5 * * * *",
"from": "standard",
"to": "quartz",
"converted": "0 */5 * * * ?"
}Code Snippets
curl "https://crontool.io/api/convert?expression=*/5+*+*+*+*&to=quartz"
Error Responses
All endpoints return errors in this format:
{
"statusCode": 400,
"message": "Missing required parameter: expression"
}Status Codes
200Successful response400Invalid input — missing parameter, invalid expression, or invalid format429Rate limit exceeded — 100 requests per minute per IPRate Limiting
All API endpoints are rate limited to 100 requests per minute per IP address. Rate limit headers are included in every response:
X-RateLimit-LimitMaximum requests per window (100)X-RateLimit-RemainingRequests remaining in current windowX-RateLimit-ResetUnix timestamp when the window resets