---
title: "GET /notifiers/{id}"
method: GET
path: "/notifiers/{id}"
tags: ["Monitors"]
---

# GET /notifiers/{id}

`GET /notifiers/{id}`

## Request

- Base URL: `https://api.axiom.co/v2`
- URL: `https://api.axiom.co/v2/notifiers/{id}`
- Auth: OAuth 2
  - Authorization code: `https://accounts.google.com/o/oauth2/v2/auth`
  - Token URL: `https://www.googleapis.com/oauth2/v4/token` scopes: `notifiers|read`
- TypeScript: <https://skmtc.dev/axiom/apis/axiom-public-api/docs/notifiers/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves a notifier by ID. Labels are resolved unless `exclude=labels`.

## Path parameters

- `id` string, required

## Query parameters

- `exclude` 'labels'

## Response `200`

Notifier.

- NotifierWithId: 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
  - `createdAt` string, date-time: Timestamp when the notifier was created
  - `createdBy` string: Email or ID of the user who created the notifier
  - `createdByAgent` boolean: true when the MCP server created this notifier
  - `disabled` boolean: Whether repeated delivery failures disabled the notifier. False when a user snoozed it with disabledUntil. Ignored on requests
  - `disabledUntil` string: ISO timestamp until which the notifier is disabled (null if enabled)
  - `lastError` string: The delivery error that disabled the notifier. Empty for email notifiers and when disabled is false. Ignored on requests
  - `name` string, required: Human-readable name for the notifier
  - `properties` NotifierProperties, required: Configuration options for different notification channels. Only one channel should be configured per notifier.
    - `amp` AmpConfig: Amp Orb webhook. The receiving plugin must accept {"text": "<monitor summary>"}.
      - `webhookUrl` string, required: Secret HTTPS URL from the Amp plugin createWebhook registration. Returned encrypted on reads; submit it unchanged to retain it on updates.
    - `chatgptWorkspaceAgent` ChatGPTWorkspaceAgentConfig: Published ChatGPT Workspace Agent API channel. Axiom sends {"input": "<monitor summary>"}.
      - `token` string, required: ChatGPT access token with the Workspace Agents scope
      - `triggerId` string, required: API channel trigger ID beginning with agtch_
    - `claudeCode` ClaudeCodeConfig: Claude Code routine. Axiom sends a fixed text body when the monitor fires.
      - `routineId` string, required: Routine ID from a Claude Code API trigger
      - `token` string, required: Bearer token for the routine
    - `cursor` CursorConfig: Cursor automation webhook. Axiom sends a fixed context body when the monitor fires.
      - `token` string, required: Bearer token for the automation webhook
      - `webhookUrl` string, required: Automation webhook URL from a Cursor automation
    - `customWebhook` CustomNotifierConfig: Configuration for custom webhook notifications with flexible headers and body template. Supports variable substitution in the body template using {{.Variable}} syntax.
      - `body` string, required: Template for the webhook body, supports variable substitution
      - `headers` object: HTTP headers to include in the request
      - `secretHeaders` object: Sensitive HTTP headers (tokens, keys) that should be masked in logs
      - `url` string, required: Custom webhook endpoint URL
    - `discord` DiscordConfig: Configuration for Discord notifications using bot token
      - `discordChannel` string: Discord channel ID to send notifications
      - `discordToken` string: Discord bot token for authentication
      - `messageTemplate` MessageTemplate: Go 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.
        - `body` string: Template for the message body
        - `title` string: Template for the message title
    - `discordWebhook` DiscordWebhookConfig: Configuration for Discord notifications using webhooks
      - `discordWebhookUrl` string: Discord webhook URL
      - `messageTemplate` MessageTemplate: Go 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.
        - `body` string: Template for the message body
        - `title` string: Template for the message title
    - `email` EmailConfig: Configuration for email notifications
      - `emails` string[]: List of email addresses to receive notifications
      - `messageTemplate` MessageTemplate: Go 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.
        - `body` string: Template for the message body
        - `title` string: Template for the message title
    - `jiraServiceManagement` JiraServiceManagementConfig: Configuration for Jira Service Management Ops alerts using an API integration
      - `apiKey` string, required: API key of the Jira Service Management API integration
    - `microsoftTeams` MicrosoftTeamsConfig: Configuration for Microsoft Teams notifications
      - `messageTemplate` MessageTemplate: Go 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.
        - `body` string: Template for the message body
        - `title` string: Template for the message title
      - `microsoftTeamsUrl` string: Microsoft Teams webhook URL
    - `opsgenie` OpsGenieConfig: Configuration for OpsGenie integration
      - `apiKey` string: OpsGenie API key for authentication
      - `isEU` boolean: Whether to use EU region endpoints
    - `pagerduty` PagerDutyConfig: Configuration for PagerDuty integration
      - `routingKey` string: PagerDuty integration key for routing alerts
      - `token` string: PagerDuty API token for additional functionality
    - `slack` SlackConfig: Configuration for Slack notifications using incoming webhooks
      - `messageTemplate` MessageTemplate: Go 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.
        - `body` string: Template for the message body
        - `title` string: Template for the message title
      - `slackUrl` string: Slack incoming webhook URL
    - `webhook` WebhookConfig: Configuration for simple webhook notifications
      - `url` string: Webhook endpoint URL
  - `updatedAt` string, date-time: Timestamp when the notifier was last updated
  - `id` string: Unique identifier for the notifier
  - `labelIds` LabelID[], required: IDs of labels assigned to this notifier.
  - `labelNames` string[], required: Names of assigned labels, including with exclude=labels; [] when unassigned.
  - `labels` Label[]: Resolved labels assigned to this notifier.
    - `color` LabelColor, required
      - `name` 'red' | 'coral' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'teal' | 'blue' | 'iris' | 'purple' | 'pink', required
      - `type` 'palette', required
    - `description` string, nullable
    - `id` string, required
    - `name` string, required

## Other responses

- `404`: Not found

## Changes

- **2026-11-02** (v2) `e3baf3b85e8d`: 12 info
  - added the optional property `allOf[#/components/schemas/Notifier]/createdByAgent` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Notifier]/disabled` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Notifier]/lastError` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Notifier]/properties/amp` to the response with the `200` status
  - …8 more
- **2026-10-16** (v2) `fbc1b8430feb`: 1 info
  - added the non-success response with the status `404`
- **2026-10-14** (v2) `8920e1697284`: 1 breaking, 5 info
  - the `allOf[subschema #2]/` response's property type changed from no type to `object` for status `200`
  - added the new optional `query` request parameter `exclude`
  - added the optional property `allOf[#/components/schemas/Notifier]/properties/claudeCode` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Notifier]/properties/cursor` to the response with the `200` status
  - …2 more

[Operation history](https://skmtc.dev/axiom/apis/axiom-public-api/changes/notifiers/:id/get.md)

---

[API](https://skmtc.dev/axiom/apis/axiom-public-api.md) - [All operations](https://skmtc.dev/axiom/apis/axiom-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/axiom/apis/axiom-public-api/revisions/7e39a295e3ba?raw)
