# toggle_site_cron

Source: https://modulify.ai/docs/api/scheduled-jobs/toggle-site-cron

Turns one scheduled job on a site on or off.

- Title: Enable or disable a scheduled job
- Scope: `config:write`
- Access: Makes changes
- Endpoint: `POST /v1/toggle_site_cron`

Disabling stops it firing but keeps its definition and history. Enabling recomputes the next run from that moment and clears both the consecutive failure count and any reason the platform switched it off automatically. See [Scheduled jobs](https://modulify.ai/docs/automations/scheduled-jobs#run-pause-and-edit).

## Request

Call it with a `POST` to `https://api.modulify.ai/v1/toggle_site_cron`, sending the inputs below as a JSON object. The token needs the `config:write` scope.

It makes changes, so send an [Idempotency-Key](https://modulify.ai/docs/api/idempotency) header whenever you might retry it. A retry with the same key gets the first answer back instead of running again.

```bash
curl -X POST https://api.modulify.ai/v1/toggle_site_cron \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID","cronId":"CRON_ID","enabled":true}'
```

Over MCP, the same method is the [toggle_site_cron tool](https://modulify.ai/docs/mcp/scheduled-jobs/toggle-site-cron).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The site id. |
| `cronId` | string | Yes | The job id from `list_site_crons`. |
| `enabled` | boolean | Yes | True to enable the job, false to disable it. |

## Response

Every call answers with the [JSON envelope](https://modulify.ai/docs/api/requests-and-responses#the-response) 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](https://modulify.ai/docs/api/requests-and-responses#headers-on-every-method-call) 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](https://modulify.ai/docs/api/errors) explains every status code a call can answer with.