For AI agents: a documentation index is available at https://docs.parallel.ai/llms.txt. The full text of all docs is at https://docs.parallel.ai/llms-full.txt. You may also fetch any page as Markdown by appending
V1 is the same Monitor product on a new HTTP contract. Alpha-created monitors keep their IDs, schedule, webhook URL, and execution history — retrieve them at .md to its URL or sending Accept: text/markdown.For Search and Extract, use /v1/search and /v1/extract for all new integrations and agent tool calls. Use /v1beta/search and /v1beta/extract only when maintaining an existing integration that already uses them. Do not substitute /v1 for the documented FindAll or Ingest endpoint paths.GET /v1/monitors/{id} as type: "event_stream". Replacing v1alpha with v1 in a URL is not enough: request shapes, response fields, pagination, and event JSON all changed.
All ongoing development targets V1. The Alpha endpoints remain reachable but receive no new features:
- Capabilities introduced after Alpha —
snapshotmonitors, structuredoutputwithbasis,advanced_settings.location, andprocessorselection — are V1-only. - The Python and TypeScript SDKs expose typed bindings (
client.monitor.*) only for V1. Alpha is reachable solely via the low-level HTTP client (client.post("/v1alpha/monitors", ...)). - The Parallel CLI targets V1 endpoints exclusively.
What stays the same
- Monitor IDs, event group IDs, frequency, webhook URL, and metadata.
- The execution backend. Detection quality does not change because a client switches paths.
- Webhook event types (
monitor.event.detected,monitor.execution.completed,monitor.execution.failed) and the envelope (type,timestamp,data.monitor_id,data.event.event_group_id,data.metadata). - You do not need to recreate monitors or re-register webhooks.
lite / base), geo location, and snapshot monitors apply to new V1 creates. Alpha create has no processor field.
Highlights
- Not a drop-in path swap — same monitors, breaking client contract. Update parsers, pagination, and field paths.
- Required
typediscriminant —"event_stream"(Alpha behavior) or"snapshot". See Snapshot Quickstart. - Nested
settings/advanced_settings—query,output_schema,include_backfillmove undersettings;source_policyandlocationmove undersettings.advanced_settings. - Unified events endpoint —
GET /v1/monitors/{id}/eventsreplaces both Alpha/eventsand/event_groups/{id}, with cursor pagination and an optionalevent_group_idfilter. - Restructured event payload —
event_id,event_type, and typedoutputwithbasisreplace the stringoutput,result, andsource_urls. simulate_eventremoved — closest analogue isPOST /{id}/trigger, which enqueues a real run rather than a synthetic webhook.- V1-only SDKs and CLI — typed
client.monitor.*bindings and the Parallel CLI.
Pick your migration path
Most Alpha traffic is fetch-after-webhook or lookback polling, not create. Effort depends on which endpoints you call:
Webhook-then-fetch clients keep the webhook, swap the GET URL, and remap
result / source_urls → output / basis. Lookback pollers also have to page instead of dumping a 10-day window. simulate_event is a product gap, not a rename.
Endpoints
Events
V1 unifies Alpha/events and /event_groups/{id} on GET /v1/monitors/{id}/events. Changing the URL is not enough — each event is a different JSON object. A client that only checks events.length may not notice; anything that renders text or citations will break until field paths change.
List events (lookback pollers)
This is the largest break for clients that poll a window of history.
There is no V1 equivalent of “give me the last 10 days.” Page with
next_cursor until you have enough history.
include_completions=true if you relied on Alpha’s completion placeholders to audit runs that detected nothing.
Fetch by event group (webhook-then-fetch)
Webhooks still fire withevent_group_id. Resolve it on the unified events endpoint:
event_group_id is set. The response is only detected events for that run — no completion placeholder, and no Alpha simulate_event dummy payload.
Event JSON rewrite
Same run, sameevent_group_id. The object inside events[] changed.
Clients that filter or display
event_date as “when the news happened” will see different values after migrating.
Completion and error rows in a list-events response also renamed:
See Events and Research Basis for the full V1 schemas.
List monitors
GET /v1alpha/monitors/list → GET /v1/monitors. Still cursor-paginated, newest first.
Alpha also had
GET /v1alpha/monitors (no /list), which returned a bare JSON array of every status. That shape does not exist on V1 — always read monitors from the paginated object.
Status spelling is cancelled (two L’s) on V1, vs Alpha canceled.
Simulate event
POST /v1alpha/monitors/{id}/simulate_event is gone. It dispatched a synthetic webhook (and a dummy event group you could GET) without running the monitor.
POST /v1/monitors/{id}/trigger enqueues a real off-schedule execution. A webhook fires only if that run detects a change, completes with no detections, or fails — not a canned payload. Cancelled monitors cannot be triggered.
If your integration tests depended on dummy event_group_id payloads, stub the webhook yourself or trigger a real run against a test monitor. See the Alpha-only Simulate Event page for the old contract.
Create, update, and retrieve
Existing monitors do not need to be recreated. Create mappings are below; updates have a distinct shape and are not the nested create body with a different URL.Create request
Update request
AlphaPOST /{id} accepted top-level query, source_policy, frequency, webhook, and metadata. V1 POST /{id}/update only changes fields you include; omit a field to leave it unchanged. Empty updates fail validation.
null clears only webhook, metadata, and settings.advanced_settings. Every other field rejects null — omit it instead.
Updating a query without type returns a validation error:
type:
Response
SDK and CLI surface
V1 exposes typed bindings in both the Python and TypeScript SDKs and is the only version supported by the Parallel CLI. Alpha has no typed or CLI surface — it is reachable only via the low-level HTTP client.Migration example: create
Before (Alpha)
After (V1)
Migration checklist
Required changes
- Keep existing monitor IDs; do not recreate monitors solely to move to V1.
- Update the base path from
/v1alpha/monitorsto/v1/monitors. - Add the
typediscriminant ("event_stream"or"snapshot") to everyCreateMonitorRequest. - Move
query,output_schema, andinclude_backfillfrom top-level intosettings. - Move
source_policyfrom top-level intosettings.advanced_settings.source_policy. - Migrate Update calls from
POST /{id}toPOST /{id}/update. - When an update includes
settings(query or source policy), also sendtype: "event_stream". Omittypewhen you are only changing frequency, webhook, or metadata. - Migrate Cancel calls from
DELETE /{id}toPOST /{id}/cancel. - Replace
GET /{id}/event_groups/{event_group_id}withGET /{id}/events?event_group_id=.... - Replace
lookback_periodwith cursor pagination (cursor,limit). Do not assume a single response covers 10 days. - Treat completions as opt-in (
include_completions=true); Alpha always returned them. - Remap list responses from
datatomonitors. Passstatusif you need cancelled monitors. - Update the status enum check from
"canceled"to"cancelled"(doublel). - Replace reads of
result.contentandsource_urlswithoutput.contentandoutput.basis[].citations[].url. - Drop the deprecated top-level string
outputfield on event records. - Stop treating
event_dateas the extracted real-world date; V1 uses the run date. - Remove
simulate_eventcalls.POST /{id}/triggeris a real run, not a fake webhook.
Optional enhancements
- Set
processor: "base"for harder queries that need higher recall and breadth. - Set
settings.advanced_settings.locationto scope retrieval to a single country. - Replace low-level
client.post(...)calls withclient.monitor.*SDK bindings. - Use
event_idfor idempotent client-side dedup across pagination and webhook retries. - Consume
output.basisfor per-field citations, reasoning, and confidence. - Issue
POST /{id}/triggerfor off-schedule one-off executions. - Pass
include_completions=trueto enumerate executions that produced no events (useful for audit traces). - Adopt
type=snapshotfor field-level diffing of structured Task Run outputs (see Snapshot Quickstart).
Additional resources
- Monitor Quickstart — V1 monitor lifecycle and webhook walkthrough
- Snapshot Quickstart —
type=snapshotwalkthrough - Events — V1 event schemas and retrieval semantics
- Webhooks — payload schemas and HMAC verification
- Simulate Event — Alpha-only synthetic webhook (removed in V1)
- V1 API Reference — generated from
public-openapi.json - Legacy Alpha API Reference —
/v1alpha/monitorsendpoint reference