## monitors/run

`GET /v1/monitors/run`

Queue one monitor check outside its schedule. Review the estimate before confirming. The run reserves its quoted credits, settles the actual charge within that quote and refunds unused credits. If available account funding cannot cover the estimate, no job is started and no credits are charged. No monthly monitor cap applies.

*Run a monitor now*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Monitor id — e.g. `mon_0f2c8b1d4e6a7c9b0d1e2f3a` |
| `confirm` | no | Without confirm=true the call only returns what a run would cost. With it, the run is charged and queued. — e.g. `true` |
| `expected_run_credits` | no | Refuse a confirmed manual check if its quote changed, including under the reservation lock. — e.g. `2` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** free — 0 credits.

```bash
curl "https://www.monocrawl.com/v1/monitors/run?id=mon_0f2c8b1d4e6a7c9b0d1e2f3a" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "id": null,
  "job_id": null,
  "reason": null,
  "message": null,
  "next_run_at": null,
  "needs_confirmation": false,
  "available": false,
  "enqueued": false,
  "charged": 0,
  "estimate": {
    "credits": 0,
    "note": null
  },
  "cap": {}
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/monitors/run#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/monitors/run.json)
