Skip to main content
GET
Get monitors

Authorizations

Authorization
string
header
required

API key authorization. Pass your API key in the Authorization header as a Bearer token. Both new (gsk_*) and legacy (gsk-) API keys are accepted, e.g. Authorization: Bearer gsk_... or Authorization: Bearer gsk-....

Query Parameters

ids
string[]

Filter by monitor IDs

productIds
string[]

Filter by product IDs

versionIds
string[]

Filter by version IDs

names
string[]

Filter by monitor names (exact match, multiple)

name
string

Filter by monitor name (partial match)

statuses
enum<string>[]

Filter by monitor statuses

Available options:
ACTIVE,
PAUSED,
CAPPED,
NO_CREDITS,
FAILING
metricGroupIds
string[]

Filter by bound metric family IDs (Metric.metricGroupId)

sort
string[]

Sort instructions (field and direction pairs)

limit
integer

Maximum number of results

offset
integer

Number of results to skip

fromCreatedAt
string<date-time>

Filter monitors created at or after this timestamp (ISO 8601 format)

toCreatedAt
string<date-time>

Filter monitors created at or before this timestamp (ISO 8601 format)

Response

Monitors retrieved successfully

productId
string
required
Example:

"prod_123"

name
string
required
Example:

"Production quality watch"

metricGroupIds
string[]
required

Metric families (Metric.metricGroupId) the monitor scores with. The monitor binds the family, not a specific revision, so revising a metric is picked up automatically without editing the monitor.

Example:
id
string
Example:

"monitor_123"

versionId
string | null

Optional version to narrow the monitor to. When null the monitor watches the whole product.

Example:

"version_123"

userId
string | null
Example:

"user_123"

samplingPercentage
number
default:10

Percentage of production sessions to evaluate (greater than 0, at most 100).

Required range: 0 < x <= 100
Example:

10

monthlyCreditCap
integer | null

Optional monthly credit ceiling for this monitor. When set it must be a positive integer; it may exceed the organization monthly allocation (spend is clamped to the available balance). Null means uncapped.

Required range: x >= 1
Example:

500

filterQuery
string | null

Optional content gate. Comma-separated terms; a session matches when at least one turn whose chosen target (filterTarget) contains ANY term (case-insensitive). Only matching sessions are sampled and evaluated; other sessions are skipped, spending no credits. Max 500 chars. Must be set together with filterTarget. Null means watch every session.

Maximum string length: 500
Example:

"refund, cancel, chargeback"

filterTarget
enum<string> | null

Which side of a turn filterQuery is matched against: INPUT (the user turn), OUTPUT (the agent turn), or EITHER. Must be set together with filterQuery.

Available options:
INPUT,
OUTPUT,
EITHER
Example:

"EITHER"

excludeQuery
string | null

Optional exclude gate. Comma-separated terms; a session is dropped when at least one turn whose chosen target (excludeTarget) contains ANY term (case-insensitive). Applied on top of filterQuery: a session is watched only when it passes filterQuery (if set) AND is not hit by excludeQuery. Max 500 chars. Must be set together with excludeTarget. Null means exclude nothing.

Maximum string length: 500
Example:

"test, internal"

excludeTarget
enum<string> | null

Which side of a turn excludeQuery is matched against: INPUT (the user turn), OUTPUT (the agent turn), or EITHER. Must be set together with excludeQuery.

Available options:
INPUT,
OUTPUT,
EITHER
Example:

"EITHER"

status
enum<string>
default:ACTIVE

Users may set ACTIVE or PAUSED; CAPPED, NO_CREDITS and FAILING are system-set by the scanner and rejected on user writes.

Available options:
ACTIVE,
PAUSED,
CAPPED,
NO_CREDITS,
FAILING
Example:

"ACTIVE"

createdAt
string<date-time>
deletedAt
string<date-time> | null