Channels

Get a channel

The channel's state, its transport modes and its default action. The access token is never returned — has_credential is all a read says about it.

get/v1/projects/{project_id}/channels/{channel_id}

Request

  • Base URL: https://api.naturali.ai
  • URL: https://api.naturali.ai/v1/projects/{project_id}/channels/{channel_id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://api.naturali.ai/authorize, token URL https://api.naturali.ai/token, scopes: mcp:access)

Response

Channel details.

idstring required

Public channel ID (chan_ prefix).

project_idstring required
channel'whatsapp' | 'discord' required
status'active' | 'disabled' required
credential_source'byot' | 'embedded_signup' required

How the credential was obtained.

phone_number_idstring nullable required

WhatsApp phone number id; inbound webhooks route on this. Null for non-WhatsApp channels.

waba_idstring nullable required

WhatsApp Business Account id, when known.

display_phone_numberstring nullable

The number as Meta displays it, read when the number was linked by embedded signup. Null for other channels and other credential sources.

verified_namestring nullable

The business name Meta shows for the number, when known; null on the same terms as display_phone_number.

application_idstring nullable required

Discord application id — the tenant's app, one channel per app. The gateway worker holds one connection per channel. Null for non-Discord channels.

max_context_messagesinteger nullable

The most recent messages each conversation's session sends the model, taking precedence over the agent's own max_context_messages. Null defers to the agent.

has_credentialboolean required

Whether an access token is on file (its value is never returned).

created_atstring date-time required
updated_atstring date-time required

Example response

{
  "id": "chan_V1StGXR8Z5jdHi6B",
  "project_id": "proj_V1StGXR8Z5jdHi6B",
  "channel": "whatsapp",
  "status": "active",
  "credential_source": "byot",
  "phone_number_id": "109999999999999",
  "waba_id": "104444444444444",
  "display_phone_number": "+55 11 90000-0001",
  "verified_name": "Acme Suporte",
  "application_id": "1290000000000000000",
  "modes": {
    "dms": true
  },
  "default": {
    "action": "agent",
    "agent_id": "agent_V1StGXR8Z5jdHi6B",
    "text": "Subscribe at https://example.com/pricing",
    "language": "en-US",
    "config": {
      "media": {
        "audio": "transcribe"
      },
      "discord": {
        "allowed_role_ids": [
          "1290000000000000042"
        ]
      }
    }
  },
  "max_context_messages": 20,
  "has_credential": true,
  "gateway_error": {
    "close_code": 4004
  },
  "created_at": "2026-07-23T00:00:00.000Z",
  "updated_at": "2026-07-23T00:00:00.000Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.