GET /notifiers
Changed onLists all notifiers in the organization, sorted by name. Labels are resolved unless exclude=labels.
Request
- Base URLhttps://api.axiom.co/v2
- AuthOAuth 2Authorization codehttps://accounts.google.com/o/oauth2/v2/authToken URLhttps://www.googleapis.com/oauth2/v4/tokenScopesnotifiers|read
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Query parameters
Exclude resolved label objects from each notifier response. The labelIds and labelNames fields are still returned.
Filter by label names in your organization. Repeat the parameter for multiple names, for example ?label=prod&label=team-a. Names match case-insensitively after whitespace normalization; duplicates count once. Commas are part of a name, not separators. Reading resources never creates missing labels.
How to combine label names: any (the default) requires at least one requested label on a resource; all requires every requested label on that same resource. For example, ?label=prod&label=team-a matches either label, while ?label=prod&label=team-a&labelMatch=all requires both. Unknown names have no matches with any and make all return no resources. Without label parameters, labelMatch has no effect.
Response
Notifiers in the organization.
Example response
[
{
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "alice@example.com",
"disabledUntil": "2024-03-20T15:00:00Z",
"name": "Production Slack Alerts",
"properties": {
"chatgptWorkspaceAgent": {
"triggerId": "agtch_example"
},
"claudeCode": {
"routineId": "trig_01ABCDEFGHJKLMNOPQRSTUVW"
},
"cursor": {
"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",
"id": "z0NfJw64aKagPOBBIJ"
}
]Changes
- info
added the new optional
queryrequest parameterlabel - info
added the new optional
queryrequest parameterlabelMatch - info
added the non-success response with the status
- info
added the optional property
/////to the response with the status - info
added the optional property
/////to the response with the status - info
added the optional property
/////to the response with the status - info
added the optional property
//////to the response with the status - info
added the optional property
//////to the response with the status - info
added the optional property
///////to the response with the status - info
added the optional property
///////to the response with the status - info
added the optional property
///////to the response with the status - info
added the optional property
//////to the response with the status - info
added the optional property
///////to the response with the status - info
added the optional property
///////to the response with the status - info
added the required property
//to the response with the status
- info
- breaking
the
/response's property type changed from no type toobjectfor status - info
added the new optional
queryrequest parameterexclude - info
added the optional property
//////to the response with the status - info
added the optional property
//////to the response with the status - info
added the optional property
//to the response with the status - info
added the required property
//to the response with the status
- breaking