Docs
DocumentationQuery ReferenceAPI Reference
Open Console→→
DocumentationQuery ReferenceAPI Reference

Get started

IntroductionSend dataQuery dataPaginationAPI limits

Annotations

List all annotationsGETRetrieve annotationGETCreate annotationPOSTUpdate annotationPUTDelete annotationDELETE

API tokens

List all API tokensGETRetrieve API tokenGETCreate API tokenPOSTRegenerate API tokenPOSTDelete API tokenDELETE

Dashboards

Dashboard JSONList all dashboardsGETRetrieve dashboardGETCreate dashboardPOSTUpdate dashboardPUTPatch dashboard elementPATCHDelete dashboardDELETE

Datasets

List all datasetsGETRetrieve datasetGETList all fields in datasetGETRetrieve field in datasetGETCreate datasetPOSTIngest data (legacy)POSTRun APL query (legacy)POSTRun query (legacy)POSTTrim datasetPOSTUpdate datasetPUTUpdate fieldPUTVacuum datasetPOSTDelete fieldsPOSTDelete fieldDELETEDelete datasetDELETE

Edge

Ingest data to edge deploymentIngest Splunk HEC eventsIngest raw Splunk HEC eventsCheck Splunk HEC healthRun APL query to edge deploymentRun batch query to edge deploymentRun MPL query to edge deploymentGet metrics for a datasetGet metric tags for a datasetGet metric tag values for a datasetGet tags for a datasetGet tag values for a dataset

Labels

List all labelsGETRetrieve labelGETCreate labelPOSTUpdate labelPUTDelete labelDELETEList label assignmentsPOSTReplace label assignmentsPUT

Map fields

List all map fieldsGETCreate map fieldPOSTUpdate list of map fieldsPUTDelete map fieldsDELETE

Monitors

List all monitorsGETRetrieve monitorGETRetrieve monitor notification historyGETCreate monitorPOSTUpdate monitorPUTDelete monitorDELETE

Notifiers

List all notifiersGETRetrieve notifierGETCreate notifierPOSTUpdate notifierPUTDelete notifierDELETE

Organizations

List all orgsGETRetrieve orgGETCreate orgPOSTUpdate orgPUTProvision orgPOST

Role-based access control

List all rolesGETRetrieve roleGETList all groupsGETRetrieve groupGETCreate rolePOSTCreate groupPOSTUpdate rolePUTUpdate groupPUTDelete roleDELETEDelete groupDELETE

Saved queries

List all saved queriesGETRetrieve saved queryGETCreate saved queryPOSTUpdate saved queryPUTDelete saved queryDELETE

Users

Retrieve current userGETList all usersGETRetrieve userGETCreate userPOSTUpdate current userPUTUpdate user rolePUTDelete user from orgDELETE

Views

List all viewsGETRetrieve viewGETCreate viewPOSTUpdate viewPUTDelete viewDELETE

Virtual fields

List all virtual fieldsGETRetrieve virtual fieldGETCreate virtual fieldPOSTUpdate virtual fieldPUTDelete virtual fieldDELETE
Notifiers

Update notifier

PUT/v2/notifiers/{id}

Replaces a notifier's name, channel properties, and disabledUntil with the request body, so omitted fields are cleared. labelIds replaces assignments when supplied; [] clears them. Omitted or null labelIds preserves assignments on updates and creates an unlabeled resource on creation. IDs must belong to existing labels in your organization and are validated before saving.

Parameters

PropertyTypeLocationDescription
idstringRequiredpathNotifier ID.

Body

Configuration for a notification channel. Notifiers can be configured for various services like: - Slack - Email - PagerDuty - OpsGenie - Discord - Microsoft Teams - Custom Webhooks - Cursor - Claude Code - Jira Service Management

application/json
PropertyTypeDescription
createdAtstring<date-time>Timestamp when the notifier was created
createdBystringEmail or ID of the user who created the notifier
createdByAgentbooleantrue when the MCP server created this notifier
disabledbooleanWhether repeated delivery failures disabled the notifier. False when a user snoozed it with disabledUntil. Ignored on requests
disabledUntilstringISO timestamp until which the notifier is disabled (null if enabled)
lastErrorstringThe delivery error that disabled the notifier. Empty for email notifiers and when disabled is false. Ignored on requests
namestringRequiredHuman-readable name for the notifier
propertiesobjectRequiredConfiguration options for different notification channels. Only one channel should be configured per notifier.
└ampobjectAmp Orb webhook. The receiving plugin must accept {"text": "<monitor summary>"}.
└webhookUrlstringRequiredSecret HTTPS URL from the Amp plugin createWebhook registration. Returned encrypted on reads; submit it unchanged to retain it on updates.
└chatgptWorkspaceAgentobjectPublished ChatGPT Workspace Agent API channel. Axiom sends {"input": "<monitor summary>"}.
└tokenstringRequiredChatGPT access token with the Workspace Agents scope
└triggerIdstringRequiredAPI channel trigger ID beginning with agtch_
└claudeCodeobjectClaude Code routine. Axiom sends a fixed text body when the monitor fires.
└routineIdstringRequiredRoutine ID from a Claude Code API trigger
└tokenstringRequiredBearer token for the routine
└cursorobjectCursor automation webhook. Axiom sends a fixed context body when the monitor fires.
└tokenstringRequiredBearer token for the automation webhook
└webhookUrlstringRequiredAutomation webhook URL from a Cursor automation
└customWebhookobjectConfiguration for custom webhook notifications with flexible headers and body template. Supports variable substitution in the body template using {{.Variable}} syntax.
└bodystringRequiredTemplate for the webhook body, supports variable substitution
└headersobjectHTTP headers to include in the request
└secretHeadersobjectSensitive HTTP headers (tokens, keys) that should be masked in logs
└urlstringRequiredCustom webhook endpoint URL
└discordobjectConfiguration for Discord notifications using bot token
└discordChannelstringDiscord channel ID to send notifications
└discordTokenstringDiscord bot token for authentication
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└discordWebhookobjectConfiguration for Discord notifications using webhooks
└discordWebhookUrlstringDiscord webhook URL
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└emailobjectConfiguration for email notifications
└emailsstring[]List of email addresses to receive notifications
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└jiraServiceManagementobjectConfiguration for Jira Service Management Ops alerts using an API integration
└apiKeystringRequiredAPI key of the Jira Service Management API integration
└microsoftTeamsobjectConfiguration for Microsoft Teams notifications
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└microsoftTeamsUrlstringMicrosoft Teams webhook URL
└opsgenieobjectConfiguration for OpsGenie integration
└apiKeystringOpsGenie API key for authentication
└isEUbooleanWhether to use EU region endpoints
└pagerdutyobjectConfiguration for PagerDuty integration
└routingKeystringPagerDuty integration key for routing alerts
└tokenstringPagerDuty API token for additional functionality
└slackobjectConfiguration for Slack notifications using incoming webhooks
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└slackUrlstringSlack incoming webhook URL
└webhookobjectConfiguration for simple webhook notifications
└urlstringWebhook endpoint URL
updatedAtstring<date-time>Timestamp when the notifier was last updated
labelIdsstring[]Existing label IDs; replaces assignments when supplied, clears with [], and preserves them when omitted or null.

Request

curl -X PUT 'https://api.axiom.co/v2/notifiers/ID' \
  -H 'Authorization: Bearer API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"createdAt":"2024-01-15T10:30:00Z","createdBy":"alice@example.com","createdByAgent":true,"disabled":true,"disabledUntil":"2024-03-20T15:00:00Z","lastError":"string","name":"Production Slack Alerts","properties":{"amp":{"webhookUrl":"string"},"chatgptWorkspaceAgent":{"token":"string","triggerId":"agtch_example"},"claudeCode":{"routineId":"trig_01ABCDEFGHJKLMNOPQRSTUVW","token":"string"},"cursor":{"token":"string","webhookUrl":"https://api2.cursor.sh/automations/webhook/00000000-0000-0000-0000-000000000000"},"customWebhook":{"body":"{\"alert\": \"{{.AlertName}}\", \"severity\": \"{{.Severity}}\", \"message\": \"{{.Message}}\"}","headers":{"Content-Type":"application/json","X-API-Version":"1.0"},"secretHeaders":{"Authorization":"Bearer {{token}}"},"url":"https://api.custom-service.com/alerts"},"discord":{"discordChannel":"123456789012345678","discordToken":"Bot 123456789012345678","messageTemplate":{"body":"Value {{.Value}} crossed {{.Threshold}}.{{range .Groups}}\n{{index .Values \"service\"}}: {{.Value}}{{end}}","title":"{{if eq .Action \"Open\"}}🔥{{else}}✅{{end}} {{.Name}}"}},"discordWebhook":{"discordWebhookUrl":"https://discord.com/api/webhooks/123456789012345678/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","messageTemplate":{"body":"Value {{.Value}} crossed {{.Threshold}}.{{range .Groups}}\n{{index .Values \"service\"}}: {{.Value}}{{end}}","title":"{{if eq .Action \"Open\"}}🔥{{else}}✅{{end}} {{.Name}}"}},"email":{"emails":["oncall@example.com","alerts@example.com"],"messageTemplate":{"body":"Value {{.Value}} crossed {{.Threshold}}.{{range .Groups}}\n{{index .Values \"service\"}}: {{.Value}}{{end}}","title":"{{if eq .Action \"Open\"}}🔥{{else}}✅{{end}} {{.Name}}"}},"jiraServiceManagement":{"apiKey":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"microsoftTeams":{"messageTemplate":{"body":"Value {{.Value}} crossed {{.Threshold}}.{{range .Groups}}\n{{index .Values \"service\"}}: {{.Value}}{{end}}","title":"{{if eq .Action \"Open\"}}🔥{{else}}✅{{end}} {{.Name}}"},"microsoftTeamsUrl":"https://outlook.office.com/webhook/123456789/IncomingWebhook/..."},"opsgenie":{"apiKey":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","isEU":true},"pagerduty":{"routingKey":"1234567890abcdef1234567890abcdef","token":"u+1234567890abcdef1234567890abcdef"},"slack":{"messageTemplate":{"body":"Value {{.Value}} crossed {{.Threshold}}.{{range .Groups}}\n{{index .Values \"service\"}}: {{.Value}}{{end}}","title":"{{if eq .Action \"Open\"}}🔥{{else}}✅{{end}} {{.Name}}"},"slackUrl":"https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"},"webhook":{"url":"https://api.example.com/webhooks/alerts"}},"updatedAt":"2024-01-15T11:00:00Z","labelIds":["string"]}'
Try itRun this request against your Axiom organization

Credentials stay in this browser tab and are only sent to Axiom when you run the request.

Response

200Updated notifier.
application/json
400Bad Request
404Not Found
PropertyTypeDescription
createdAtstring<date-time>Timestamp when the notifier was created
createdBystringEmail or ID of the user who created the notifier
createdByAgentbooleantrue when the MCP server created this notifier
disabledbooleanWhether repeated delivery failures disabled the notifier. False when a user snoozed it with disabledUntil. Ignored on requests
disabledUntilstringISO timestamp until which the notifier is disabled (null if enabled)
lastErrorstringThe delivery error that disabled the notifier. Empty for email notifiers and when disabled is false. Ignored on requests
namestringRequiredHuman-readable name for the notifier
propertiesobjectRequiredConfiguration options for different notification channels. Only one channel should be configured per notifier.
└ampobjectAmp Orb webhook. The receiving plugin must accept {"text": "<monitor summary>"}.
└webhookUrlstringRequiredSecret HTTPS URL from the Amp plugin createWebhook registration. Returned encrypted on reads; submit it unchanged to retain it on updates.
└chatgptWorkspaceAgentobjectPublished ChatGPT Workspace Agent API channel. Axiom sends {"input": "<monitor summary>"}.
└tokenstringRequiredChatGPT access token with the Workspace Agents scope
└triggerIdstringRequiredAPI channel trigger ID beginning with agtch_
└claudeCodeobjectClaude Code routine. Axiom sends a fixed text body when the monitor fires.
└routineIdstringRequiredRoutine ID from a Claude Code API trigger
└tokenstringRequiredBearer token for the routine
└cursorobjectCursor automation webhook. Axiom sends a fixed context body when the monitor fires.
└tokenstringRequiredBearer token for the automation webhook
└webhookUrlstringRequiredAutomation webhook URL from a Cursor automation
└customWebhookobjectConfiguration for custom webhook notifications with flexible headers and body template. Supports variable substitution in the body template using {{.Variable}} syntax.
└bodystringRequiredTemplate for the webhook body, supports variable substitution
└headersobjectHTTP headers to include in the request
└secretHeadersobjectSensitive HTTP headers (tokens, keys) that should be masked in logs
└urlstringRequiredCustom webhook endpoint URL
└discordobjectConfiguration for Discord notifications using bot token
└discordChannelstringDiscord channel ID to send notifications
└discordTokenstringDiscord bot token for authentication
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└discordWebhookobjectConfiguration for Discord notifications using webhooks
└discordWebhookUrlstringDiscord webhook URL
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└emailobjectConfiguration for email notifications
└emailsstring[]List of email addresses to receive notifications
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└jiraServiceManagementobjectConfiguration for Jira Service Management Ops alerts using an API integration
└apiKeystringRequiredAPI key of the Jira Service Management API integration
└microsoftTeamsobjectConfiguration for Microsoft Teams notifications
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└microsoftTeamsUrlstringMicrosoft Teams webhook URL
└opsgenieobjectConfiguration for OpsGenie integration
└apiKeystringOpsGenie API key for authentication
└isEUbooleanWhether to use EU region endpoints
└pagerdutyobjectConfiguration for PagerDuty integration
└routingKeystringPagerDuty integration key for routing alerts
└tokenstringPagerDuty API token for additional functionality
└slackobjectConfiguration for Slack notifications using incoming webhooks
└messageTemplateobjectGo templates that replace the title and body of the notifier's default message. An empty field keeps the default. Variables include {{.Title}}, {{.Body}}, {{.Name}}, {{.Action}}, {{.Value}}, {{.Threshold}}, {{.Labels}}, {{.Groups}} and {{.MatchedEvent}}. If a template fails when a notification is sent, the default message is sent and the delivery records the error.
└bodystringTemplate for the message body
└titlestringTemplate for the message title
└slackUrlstringSlack incoming webhook URL
└webhookobjectConfiguration for simple webhook notifications
└urlstringWebhook endpoint URL
updatedAtstring<date-time>Timestamp when the notifier was last updated
idstringUnique identifier for the notifier
labelIdsstring[]RequiredIDs of labels assigned to this notifier.
labelNamesstring[]RequiredNames of assigned labels, including with exclude=labels; [] when unassigned.
labelsobject[]Resolved labels assigned to this notifier.
└colorobjectRequired—
└namestringRequired—
└typestringRequired—
└descriptionstring—
└idstringRequired—
└namestringRequired—
Was this page helpful?
Suggest edits on GitHub
PreviousCreate notifierNextDelete notifier
On this page
ParametersBodyRequestResponse