{"openapi":"3.1.0","info":{"title":"Cron API","version":"1.0.0","description":"A fast, fully-local cron-expression toolkit (UTC): validate 5-field cron expressions with ranges, lists, steps, month and weekday names and the common @aliases (@yearly, @monthly, @weekly, @daily, @hourly); compute the next N run times for a schedule from now or any start date; and describe a schedule in plain English. Every endpoint accepts input via the query string or the request body. Pure server-side compute, no third-party upstream, so responses are instant and always available. Ideal for schedulers and job runners, devops and CI tooling, and dashboards that show the next run time of a task.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/cron-api","description":"oanor gateway"}],"tags":[{"name":"Cron"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/describe":{"get":{"operationId":"get_v1_describe","tags":["Cron"],"summary":"Describe a schedule","description":"","parameters":[{"name":"expression","in":"query","required":true,"description":"5-field cron expression","schema":{"type":"string"},"example":"0 9 * * 1-5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"next":"2026-06-01T09:00:00.000Z","expression":"0 9 * * 1-5","description":"At 09:00 on Monday through Friday (UTC)"},"meta":{"timestamp":"2026-05-30T10:10:54.546Z","request_id":"3136eb48-a66c-473d-a16d-b32e60a4da0f"},"status":"ok","message":"OK","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/next":{"get":{"operationId":"get_v1_next","tags":["Cron"],"summary":"Next run times","description":"","parameters":[{"name":"expression","in":"query","required":true,"description":"5-field cron expression","schema":{"type":"string"},"example":"*/15 * * * *"},{"name":"count","in":"query","required":false,"description":"How many 1-50 (default 5)","schema":{"type":"string"},"example":"5"},{"name":"from","in":"query","required":false,"description":"Start date (ISO, default now)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"from":"2026-05-30T10:10:54.623Z","next":["2026-05-30T10:15:00.000Z","2026-05-30T10:30:00.000Z","2026-05-30T10:45:00.000Z","2026-05-30T11:00:00.000Z","2026-05-30T11:15:00.000Z"],"count":5,"expression":"*/15 * * * *"},"meta":{"timestamp":"2026-05-30T10:10:54.623Z","request_id":"89f7b79c-07e2-4c2b-958c-891fe80bd981"},"status":"ok","message":"OK","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/validate":{"get":{"operationId":"get_v1_validate","tags":["Cron"],"summary":"Validate an expression","description":"","parameters":[{"name":"expression","in":"query","required":true,"description":"5-field cron expression","schema":{"type":"string"},"example":"0 0 1 * *"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"valid":true,"expression":"0 0 1 * *","normalized":"0 0 1 * *"},"meta":{"timestamp":"2026-05-30T10:10:54.700Z","request_id":"b2a3d9e7-f674-46f0-8238-3e3fb565037b"},"status":"ok","message":"OK","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":16000,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":300,"monthly_call_quota":290000,"rps_limit":12,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1100,"monthly_call_quota":1650000,"rps_limit":40,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3000,"monthly_call_quota":8800000,"rps_limit":120,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/cron-api"}