API reference
Preview a Monitor API
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.
Endpoint
/v1/monitors/previewlive · provenfreeParameters
Query parameters
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.
| Name | Required | Description | Example |
|---|---|---|---|
query | yes | The name, handle, URL, domain, product or keyword to follow | Monzo |
entity | no | A sense id from an earlier preview, when the name was ambiguous | bare |
entity_type | no | Optional type hint | brand |
purpose | no | Preset id or free text; sets the recommended sources and filters | complaints |
sources | no | Override the recommended platforms | reddit,x |
schedule_minutes | no | Interval used for the monthly estimate | 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. | 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. | {"metric_fields":["/followers"]} |
relevance_enabled | no | Optional on every monitor. Enable or disable relevance filtering. Enabling requires a nonempty relevance_prompt. | 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. | Only genuine requests for recommendations; exclude promotions. |
exclusions | no | Comma-separated phrases skipped before AI; empty clears. Returned by monitor read tools. | sponsored,job opening |
Examples
Make the request
curl "https://www.monocrawl.com/v1/monitors/preview?query=Monzo" \ -H "x-api-key: mn_your_key_here"
TypeScript
const key = process.env.MONOCRAWL_API_KEY;
if (!key) throw new Error('Set MONOCRAWL_API_KEY on your server.');
const res = await fetch(
"https://www.monocrawl.com/v1/monitors/preview?query=Monzo",
{ headers: { "x-api-key": key } },
);
const body = await res.json();
if (!body.success) {
// one error shape for every endpoint — see /docs/errors
throw new Error(`${body.error.type}: ${body.error.message}`);
}
console.log(body.data, "credits left:", body.credits_remaining);Python
import os
import requests
res = requests.get(
"https://www.monocrawl.com/v1/monitors/preview?query=Monzo",
headers={"x-api-key": os.environ["MONOCRAWL_API_KEY"]},
timeout=60,
)
body = res.json()
if not body["success"]:
# one error shape for every endpoint — see /docs/errors
raise RuntimeError(f"{body['error']['type']}: {body['error']['message']}")
print(body["data"], "credits left:", body["credits_remaining"])Response
Response fields and example
This example is illustrative, not a captured live response. Variable-cost operations may settle a charge different from the list price below. A successful response puts the platform payload in data and reports the exact credits used, remaining balance, request id and cache status beside it.
{
"success": true,
"platform": "monitors",
"endpoint": "/v1/monitors/preview",
"data": {
"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": []
},
"credits_used": 0,
"credits_remaining": 99,
"request_id": "req_…",
"cached": false
}The example is illustrative and shows a documented subset of data. The fields below are optional across supported sources; nullable fields can also be absent. Preserve unknown values and accept additional fields.
Schema basis: reviewed response shaper. See schema coverage and validation limits.
Download the data JSON Schema. Validate response.data, not the whole envelope. A valid shape does not establish that every field or source record was returned.
| Field inside data | Type | Meaning |
|---|---|---|
kind | string | null | kind |
purpose | string | null | purpose |
preset | string | null | preset |
name | string | null | name |
note | string | null | note |
schedule_minutes | number | null | schedule minutes |
monthly_cap_credits | number | null | monthly cap credits |
can_activate | boolean | null | can activate |
requires_choice | boolean | null | requires choice |
sample | boolean | null | sample |
subject | object | null | Nested response fields; optional unless explicitly documented. |
estimate | object | null | Nested response fields; optional unless explicitly documented. |
availability | object | null | Nested response fields; optional unless explicitly documented. |
resolution | object | null | Nested response fields; optional unless explicitly documented. |
evidence | array | null | Nested response fields; optional unless explicitly documented. |
feeds | array | null | Nested response fields; optional unless explicitly documented. |
feeds[].platform | string | null | platform |
feeds[].label | string | null | label |
feeds[].endpoint | string | null | endpoint |
Core response fields reviewed from the public response shaper. Fields vary by requested options; additive fields remain allowed.
Failures use the typed error envelope. A confirmed uncharged or refunded failure reports zero; a pending reconciliation can report an unknown charge. Read credits_used and error.details.billing_status, and keep request_id for recovery. Response contract · Error reference