List every channel and its connection state
Every channel this workspace could use, and whether it has connected it.
/v1/channelsViewer- Operation id
- list_channels
- Access
- Any workspace role can call this.
/v1/channelsEvery channel this workspace could use, and whether it has connected it.
The union of two sets: adapters the runtime can actually ingest for, and
connections the workspace has stored. A connection with no adapter is shown
with adapter_available: false, meaning configured but not yet operable.
Read three fields to know where a channel stands. adapter_available says
the runtime can process this channel at all. connected says this
workspace has stored a connection. enabled says the operator considers it
live. A channel can be available and unconnected, which is what an empty
config and null timestamps mean.
outbound_supported is answered for this workspace, not for the channel
in general. Email can send, so the field is true once the workspace is
configured for it: either a connected Google mailbox, or a minted sending
address or connected sending domain with platform sending turned on. It is
false for the same workspace before any of that exists. SMS and WhatsApp
receive only today, so the field is false for them in every workspace, and
a reply written on one of those tickets is recorded on the timeline and not
delivered anywhere.
Read the field rather than the channel name. It is the only thing that tells a client whether a reply on this channel is worth offering.
config is redacted on read. Only a short allowlist of descriptive fields
comes back in the clear, and everything else reads as ***, including
fields nobody anticipated. A redacted value is stored, it is just not
returned.
Tenancy: the request is scoped to one workspace, and the credential presented is what selects it. A caller with no membership in that workspace is refused with 404, which is indistinguishable from a workspace that does not exist.
Authorisation: any workspace role, including viewer. Reads are open to every member.
Access: Authorization: Bearer carrying either a realm access token or an API key. A key must hold the channels:read scope, and the workspace role of the person who owns it must meet the floor above.
A realm-issued access token, presented as Authorization: Bearer <token>. It acts as the person who signed in, and every operation resolves their workspace role live from the membership record.
In: header
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/channels"{ "channels": [ { "channel": "sms", "display_name": "Support SMS", "adapter_available": true, "ticket_source": "sms", "handle_kind": "phone_number", "outbound_supported": false, "inbound_path": "/v1/ingest/sms", "details": {}, "connected": true, "enabled": true, "config": { "from_number": "+15550199", "auth_token": "***" }, "created_at": "2026-05-19T15:22:00+00:00", "updated_at": "2026-08-14T08:10:00+00:00" }, { "channel": "email", "display_name": "Email", "adapter_available": true, "ticket_source": "email", "handle_kind": "email_address", "outbound_supported": true, "inbound_path": "/v1/ingest/email", "details": { "sending_domain": "mail.northwind.example", "sending_address": "support@mail.northwind.example" }, "connected": true, "enabled": true, "config": {}, "created_at": "2026-04-02T09:15:00+00:00", "updated_at": "2026-08-01T11:40:00+00:00" } ]}