## monitors/preview

`GET /v1/monitors/preview`

What a subject monitor would do, before it exists: the resolved subject or the senses to choose from, the recommended platforms with reasons, the schedule, the credit estimate from the price list, and a few pieces of no-cost evidence. Runs the free first pass only — no metered platform and no paid fallback is touched.

*Preview a monitor*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | The name, handle, URL, domain, product or keyword to follow — e.g. `Monzo` |
| `entity` | no | A sense id from an earlier preview, when the name was ambiguous — e.g. `bare` |
| `entity_type` | no | Optional type hint — e.g. `brand` |
| `purpose` | no | Preset id or free text; sets the recommended sources and filters — e.g. `complaints` |
| `sources` | no | Override the recommended platforms — e.g. `reddit,x` |
| `schedule_minutes` | no | Interval used for the monthly estimate — e.g. `1440` |
| `monthly_cap_credits` | no | Legacy field accepted for compatibility but ignored and returned as null. It does not impose a spending cap. Account balance, quoted run cost and existing account safeguards still apply. |
| `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` |
| `rules` | no | Optional change-monitor rules as a JSON object. Use metric_fields with up to 10 published numeric object JSON pointers (for example /followers or /stats/likes), with result_mode=changes. Unknown/nonnumeric paths are rejected before a source call or charge; missing actual values are not zero and the check is refunded. Numeric selection replaces family rules. Or use watch_fields for generic field comparisons. See /docs/monitors#metric-fields. — e.g. `{"metric_fields":["/followers"]}` |
| `relevance_enabled` | no | Optional on every monitor. Enable or disable relevance filtering. Enabling requires a nonempty relevance_prompt. — e.g. `true` |
| `relevance_prompt` | no | Up to 600 characters describing what should trigger an alert. A nonempty value enables filtering unless explicitly disabled. Empty clears it. — e.g. `Only genuine requests for recommendations; exclude promotions.` |
| `exclusions` | no | Comma-separated phrases skipped before AI; empty clears. Returned by monitor read tools. — e.g. `sponsored,job opening` |

### Useful optional inputs

- `rules`: For metric monitoring, set rules.metric_fields to published numeric JSON pointers before scheduling; missing values are not zero. Preview the estimate first. Confirmed tests use the existing source price; invalid paths are uncharged.
- `sources`: Restrict a multi-source request to the platforms useful for your task. Use dry_run to inspect the resulting quote before fetching.
- `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/preview?query=Monzo" \
  -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
{
  "kind": null,
  "purpose": null,
  "preset": null,
  "name": null,
  "note": null,
  "schedule_minutes": 0,
  "monthly_cap_credits": 0,
  "can_activate": false,
  "requires_choice": false,
  "sample": false,
  "subject": {},
  "estimate": {},
  "availability": {},
  "resolution": {},
  "evidence": [],
  "feeds": []
}
```

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