GET /v1/watches/:id returns one watch plus its most recent runs, newest first.
id
string
required
Watch id (watch_...).

Tenant scope

Reads are owner-scoped: another tenant’s watch id is 404 WATCH_NOT_FOUND, never 403. Restricted (sk_*) keys always read their own owner. Internal keys can act on behalf of one tenant for watch reads and writes with ?owner=<ownerId> or X-AISearch-On-Behalf-Of: <ownerId>; the query parameter wins when both are present. A restricted key’s override is ignored. When an override is applied, the response adds a top-level owner field and an X-AISearch-Owner header containing the enforced owner id.
owner
string
Internal keys only. Owner id to enforce for this read. Overrides the X-AISearch-On-Behalf-Of header when both are sent.

Request

Response

200 OK
watch
object
The public Watch object, including its query, surfaces, regions, extraction config, webhook URL, normalized schedule, lifecycle state, and timestamps.
runs
object[]
Up to 10 most recent runs, newest first. Use GET /v1/watches/:id/runs for full history.
For a dispatched run, read its jobId with GET /v1/jobs/:id exactly like any other async search.

Errors

404
WATCH_NOT_FOUND
No watch exists for the given id, or it belongs to another tenant. Reads and writes are owner-scoped, so another tenant’s id is a 404, never a 403.
404

Watches

Scheduling, lifecycle, billing, and run history.

Watch runs

Page through the complete run history.

Update a watch

Pause, resume, or change the configuration.

Read a job

Inspect a dispatched run’s parent job.