Authentication
Send an API key as a bearer token. The key must carry the sites.view permission; a key without it is refused with 403, not 404.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X GET https://api.zinndigital.com/v1/sites/{siteId}/scheduled-tasks \
-H "Authorization: Bearer zdk_live_…"Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
The cron jobs on the site's hosting package: when each runs, what it runs, whether it is paused, and where its output is mailed. `schedule` is the customer's own crontab expression carried verbatim — a customer who typed `*/15 * * * *` sees exactly that back, never a normalised rewriting of it. `permitted` and `can_create` answer the two different questions a screen must distinguish before it offers an "add" button: *"your plan does not include this"* is not *"you have used all of them"*. ⛔ the platform publishes scheduled tasks as a **boolean** capability with no count, so `limit` is normally unlimited and `can_create` follows `permitted` rather than an arithmetic on a ceiling nobody published. Requires `sites.view` **and** `sites.panel_access` — a cron row is a filesystem path plus a command run as the site's user, which is the same access the file manager that key already gates. ⭐ Available on **both** a resold hosting package and a site on Zinn®'s own fleet, including Footprint-Free. That matters for a footprint site in particular: WordPress's own scheduler only fires when somebody visits, and a footprint site by design has very few visitors, so its scheduled publishing and index-ping jobs would otherwise run late or not at all. Every fleet site is given a real system cron entry at deploy, and the jobs listed here are the customer's own — the platform's are held separately and are never listed, edited or deleted through this endpoint.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
siteId (path) | Uuid | Yes | Site ID (UUIDv7). |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
data | SiteScheduledTask[] | Yes | The cron jobs on the package. |
limit | VendorAllowance | Yes | The effective ceiling on scheduled tasks. ⛔ the platform publishes this capability as a **boolean with no count**, so it is normally unlimited — `can_create` must not be derived… |
permitted | boolean | Yes | Whether the package type includes scheduled tasks at all. |
can_create | boolean | Yes | `permitted`, **and** the effective ceiling has room. |
Errors this endpoint can return
401 · 403 · 404 · 429 · 503