---
title: "Register channel"
method: POST
path: "/v1/agents/{agent_id}/channels"
tags: ["Agent Channels"]
---

# Register channel

`POST /v1/agents/{agent_id}/channels`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/agents/{agent_id}/channels`
- Auth: HTTP bearer

Register a new external messaging channel (Telegram, WhatsApp, Discord)
for an agent. Human-only. Returns the channel with its webhook URL.

## Path parameters

- `agent_id` string, uuid, required

## Request body

- CreateChannelRequest
  - `channel_type` 'telegram' | 'whatsapp' | 'discord', required
  - `channel_name` string
  - `config` object, required: Platform-specific config. Telegram: { bot_token }. WhatsApp: { phone_number_id, access_token, verify_token }. Discord: { bot_token, application_id }.
  - `slash_commands_enabled` boolean: Enable Hermes-compatible slash commands on this channel. When true, messages starting with `/` are handled before the LLM. Commands: /help, /new, /reset, /clear, /model, /mode, /personality, /retry, /undo, /compress, /summarize, /stop, /status, /skills, /usage, /sethome.
  - `voice_transcription_enabled` boolean: Enable voice message transcription
  - `sender_allowlist` string[]: List of allowed sender IDs
  - `auto_respond_enabled` boolean: Enable auto-respond

## Response `201`

Channel created

- ChannelResponse
  - `id` string, uuid
  - `org_id` string, uuid
  - `agent_id` string, uuid
  - `channel_type` 'telegram' | 'whatsapp' | 'discord'
  - `channel_name` string
  - `webhook_path` string
  - `webhook_url` string
  - `is_active` boolean
  - `config` object, nullable: Channel-specific configuration JSON. May include: - sender_allowlist (array of strings): restrict which external senders can trigger the agent - auto_respond_enabled (boolean): whether the agent auto-responds to inbound messages
  - `slash_commands_enabled` boolean: Whether Hermes-compatible slash commands are enabled for this channel. Commands: /help, /new, /reset, /clear, /model, /mode, /personality, /retry, /undo, /compress, /summarize, /stop, /status, /skills, /usage, /sethome.
  - `voice_transcription_enabled` boolean: Whether voice message transcription is enabled
  - `unified_conversation_id` string, uuid, nullable: ID linking this channel to a unified cross-platform conversation
  - `is_home_platform` boolean: Whether this is the agent's home platform channel
  - `sender_allowlist` string[], nullable: List of allowed sender IDs for auto-respond
  - `auto_respond_enabled` boolean: Whether auto-respond is enabled for this channel
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `400`: Invalid request
- `401`: Authentication required or invalid
- `403`: Insufficient permissions

---

[API](https://skmtc.dev/1claw/apis/1claw-api.md) · [All operations](https://skmtc.dev/1claw/apis/1claw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/1claw/apis/1claw-api/revisions/ae109b496830?raw)
