# Trigger cron job

`POST https://api.instacloud.com/projects/{projectId}/cron-jobs/{id}/runs`

**Token scope:** `account` · `org` · `project` — read-only tokens refused (not a GET).

Trigger a run now. Requires Idempotency-Key. Gated — cron.run. 403 also when the org is billing-suspended.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `projectId` | path | `string` | yes |  |
| `id` | path | `string` | yes |  |
| `idempotency-key` | header | `string` | yes | dedupes a retried trigger onto the same run |

## Response 202

accepted (runId) — or approval_required from the governance gate

## Response 400

missing, blank, or over-255-character Idempotency-Key (a paused job is still triggerable: pause stops the clock, not a manual run)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | `string` | yes |  |

## Response 403

Default Response

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | `string` | yes |  |

## Response 404

Default Response

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | `string` | yes |  |

## Response 409

a run with this Idempotency-Key is still being created — retry

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | `string` | yes |  |
