x-api-key header against https://app.arize.com/graphql.
Find the IDs you need
Every monitor mutation takes a monitor ID, and every create mutation takes a model ID (or a space ID plus model name). Start fromviewer to find your space, then the space’s models connection to find the model. See Using global node IDs for how these opaque IDs work.
node root field, for example node(id: "<MONITOR_ID>") { ... on Monitor { name } }.
List monitors for a model, filtered by status
Monitors live on bothModel and Space through the same monitors connection, with filters for category and current status. This is the fastest way to find every triggered monitor on a model.
latestComputedValue is the monitor’s most recent computed metric value. It replaces the old currentMetricValue field, which no longer exists on Monitor.
Create a drift monitor on a feature with a custom baseline
Drift monitors compare a primary window against a baseline. By default a monitor uses the model’s primary baseline, but you can give it its own moving-window baseline instead, as shown here.createDriftMonitor.
Create a performance monitor with contacts and a webhook
Performance monitors watch a metric like accuracy or recall and alert when it crosses a threshold. Pair an email contact with a webhook subscription so the same trigger reaches both a person and an external system. Webhooks must already exist as webhook destinations in your account;webhookId is that destination’s ID.
createPerformanceMonitor.
Create a data quality monitor
Data quality monitors watch a dimension-level metric, such as the percentage of empty values on a feature.createDataQualityMonitor.
Raise the threshold on every drift monitor in a space
This is the most common bulk operation: pull every drift monitor in a space, then patch each one’s threshold. List first, mutate second, sincepatchDriftMonitor takes one monitor ID at a time.
dynamicAutoThresholdEnabled: false alongside the new threshold matters: if a monitor already has dynamic auto-thresholds on, a manual threshold write is otherwise overwritten the next time the monitor recalculates.
Reference: patchDriftMonitor.
Switch a monitor to dynamic auto-thresholds
Instead of a fixedthreshold, a monitor can recompute its threshold on a schedule as mean +/- stdDevMultiplier * stdDev. This works on any monitor type through the generic patchMonitor mutation.
patchMonitor.
Schedule recurring downtime for a monitor
Downtime suppresses evaluation for a window that repeats on a cadence, useful for known maintenance windows or batch jobs that temporarily skew a metric.downtimeDurationHrs must be between 1 and 1344 hours (56 days), and downtimeFrequencyDays between 1 and 56 days.
Reference: patchMonitor.
Trigger a monitor manually, then delete it
triggerMonitor forces an off-schedule evaluation, which is useful after you change a threshold and want to confirm the new condition immediately rather than waiting for the next evaluation interval. deleteMonitor removes a monitor permanently; there is no undo.
triggerMonitor, deleteMonitor.
Gotchas and behavior notes
currentMetricValueand a patchedautoThresholdEnabledare not real. Older examples querycurrentMetricValueonMonitor, which does not exist; uselatestComputedValueinstead. Older examples also patchautoThresholdEnabledinside asetinput, but the patch inputs (DriftMonitorPatchInput,PerformanceMonitorPatchInput,DataQualityMonitorPatchInput,MonitorPatchInput) only acceptdynamicAutoThresholdEnabled.Monitorexposes bothautoThresholdEnabledanddynamicAutoThresholdEnabledas read fields, which is easy to confuse with the patch-only name.- Patched
filtersandmodelVersionsfully replace, not merge. On every patch input, supplying either array replaces the monitor’s existing list entirely. There is no append or partial update. - You cannot change a monitor’s metric type or dimension with a patch.
driftMetric,performanceMetric,dataQualityMetric,dimensionName, anddimensionCategoryare set only at creation; no patch input exposes them. Delete and recreate the monitor to change what it measures. - Range thresholds need the second set of fields.
thresholdModedefaults tosingle. Set it torangeand also supplythreshold2,operator2, and optionallystdDevMultiplier2to alert on both a lower and an upper bound. - Evaluation window and delay are in seconds, not hours.
evaluationWindowLengthSecondsanddelaySecondsare both seconds despite their schema descriptions mentioning hours. The default evaluation window is 259200 seconds (3 days). - Account-level monitor usage limits are deprecated.
Account.monitorUsageis marked deprecated in the schema: monitors are no longer capped per pricing tier, solimitis always null andlimitReachedis always false. - Integration contacts need an integration key, not an email.
MonitorContactInput.notificationChannelTypedefaults toemail. For a paging or chat integration, set it tointegrationand passintegrationKeyIdinstead ofemailAddress. Integration keys are created separately and are not part of the monitors mutations covered here.
Monitor mutations reference
Full argument and field listing for all nine monitor mutations.
All GraphQL mutations
Browse mutations for every other domain.
API explorer
Try queries and mutations interactively with autocomplete.