List scheduled jobs
list_site_crons
Lists the scheduled jobs configured on a site, with their schedules, their state and how their last scheduled run went.
These are the site's own scheduled jobs, the ones configured in the editor, not anything internal to Modulify. Each comes with its schedule, whether it is enabled, when it last ran on its schedule and how that went, when it runs next, how many times in a row it has failed, and the reason it was switched off automatically, such as reaching 20 failures in a row. A run started by hand does not move those last-run fields.
A site holds at most 10 jobs, so one call always returns all of them. Request headers on each step come back masked, because a header value can itself be a credential. A deploy hook token inside a URL comes back as mdh_<redacted>, because that URL can publish the site, and reading it needs get_deploy_hook_url. See Scheduled jobs.
Request
Call it with a POST to https://api.modulify.ai/v1/list_site_crons, sending the inputs below as a JSON object. The token needs the config:read scope.
It only reads and changes nothing, so retrying it is safe.
curl -X POST https://api.modulify.ai/v1/list_site_crons \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId":"PROJECT_ID"}'Over MCP, the same method is the list_site_crons tool.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
projectId |
string | Yes | The site id. |
Response
Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.