Modulify

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.

POST /v1/list_site_cronsScopeconfig:readRead only

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.