API7 Docs

List Notification Channels

GET /notification_channels

GET /notification_channels

Interactive request editor loads with JavaScript.

Authorization

BearerAdminToken
AuthorizationBearer <token>

Organization-scoped admin token. Read operations require a valid token, and write operations require a token with write permission.

In: header

Response Body

application/json

application/json

curl -X GET "$AISIX_CP/notification_channels" \  -H "Authorization: Bearer $AISIX_TOKEN"

OK

{
  "data": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
      "name": "string",
      "type": "webhook",
      "url": "string",
      "enabled": true,
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ]
}
Complete operation details and schema variants

GET /notification_channels

List Notification Channels

List the organization's outbound notification channels. Channel URLs are masked — the full URL is write-only.

Parameters

Responses

  • 200: OK

  • data (array, required): Every notification channel in the organization.

  • data[].id (string, required): Notification channel ID.

  • data[].org_id (string, required): Organization that owns this channel.

  • data[].name (string, required): Human-readable channel name, unique per organization.

  • data[].type (string, required): Delivery mechanism. webhook posts alert events as JSON; slack posts a rendered text message to a Slack incoming-webhook URL.

  • data[].url (string, required): Masked destination URL (scheme://host/***). The full URL — which for Slack incoming webhooks IS the credential — is write-only.

This masked value may be sent straight back on update, so a read-modify-write round-trip works unchanged: it is accepted as an echo and keeps the stored URL. It never writes anything — a masked value naming a different host is rejected with 400 rather than stored, since storing it would replace the credential with the redaction. The mask carries only the scheme and host, so it does not identify one channel: a mask read from another channel on the same host is accepted here too, and likewise changes nothing.

  • data[].enabled (boolean, required): Whether new alerts are delivered to this channel.

  • data[].created_at (string, required): Time when the channel was created.

  • data[].updated_at (string, required): Time when the channel was last updated.

  • 401: Missing or invalid bearer.

  • error (object, required): Error details.

  • error.code (string, required): Machine-readable identifier. Examples: UNAUTHENTICATED, INVALID_REQUEST, MASTER_KEY_UNSET, INTERNAL.

  • error.message (string, required): Human-readable explanation; safe to surface to operators.

cURL

curl -X GET '$AISIX_CP/notification_channels' -H 'Authorization: Bearer $AISIX_TOKEN'