List channels
GET
Returns the channels your workspace can use and, for each connected sender, whether it is ready. Each channel describes what it can do: who may start a conversation, reply windows (WhatsApp's 24 hours), whether templates are required, and length limits. Read it before sending on a channel for the first time.
Requires an API key with the channels:read scope.
apiKeyheader
AuthorizationBearer <token>A secret API key from the dashboard (Developers → API keys): vl_live_…, or vl_test_… for test mode. Each operation says which scope the key needs.
Each registered channel this workspace may use: baseline capabilities and, per connected Binding, the effective descriptor and readiness
application/json- response
channels*array<>curl https://api.vlayers.ai/v1/channels \ -H "Authorization: Bearer $VOICELAYER_API_KEY"Example Response
{ "channels": [ { "id": "whatsapp", "displayName": "WhatsApp", "addressSpace": "app", "plugins": [ "vl/whatsapp" ], "baseline": { "operations": [ "receive.message", "send.text", "reply.in_window" ], "direction": { "inbound": true, "outbound": true }, "initiation": { "agentInitiated": "template_only", "userInitiated": true, "firstContactRule": "user-initiated, or a reviewed template outside the 24-hour window; opt-in is mandatory" }, "windows": [ { "kind": "reply", "durationSec": 86400, "opensOn": "inbound_message", "outside": "template_only" } ], "templates": { "required": "outside_window", "reviewed": true }, "messageTypes": [ "text", "image" ], "limits": { "textChars": 4096 } }, "bindings": [ { "bindingId": "0192f5a9-2b3c-7d4e-9f5a-6b7c8d9e0f12", "address": "+14155550100", "capability": "whatsapp.message", "connectionId": "0192f5a3-7a8b-7c9d-8e0f-2a3b4c5d6e67", "pluginId": "vl/whatsapp", "descriptor": { "operations": [ "receive.message", "send.text", "reply.in_window" ], "direction": { "inbound": true, "outbound": true }, "initiation": { "agentInitiated": "template_only", "userInitiated": true, "firstContactRule": "user-initiated, or a reviewed template outside the 24-hour window; opt-in is mandatory" }, "windows": [ { "kind": "reply", "durationSec": 86400, "opensOn": "inbound_message", "outside": "template_only" } ], "templates": { "required": "outside_window", "reviewed": true }, "messageTypes": [ "text", "image" ], "limits": { "textChars": 4096 } }, "readiness": { "state": "ready", "connection": "connected", "ready": true } } ] } ]}