---
title: "Return every customer channel's state and next blocker for a workspace (sms:read)."
method: GET
path: "/v1/channels"
---

# Return every customer channel's state and next blocker for a workspace (sms:read).

`GET /v1/channels`

## Request

- Base URL: `https://www.kaicalls.com/api`
- URL: `https://www.kaicalls.com/api/v1/channels`
- Auth: HTTP bearer

One row per channel (voice, sms, whatsapp, imessage, rcs, messenger, instagram, webchat, email) with `availability` (live, built_off, planned), `state` (ready, needs_setup, blocked, not_available), `canSend`, `canReceive` and `nextStep` (`id`, `description`, optional `tool` naming the connector tool that takes the step). Read-only and derived from the same reads the per-channel endpoints use: sms is ready only once the business text registration is approved, and whatsapp only on a verified number. Email includes a separate managedEmail object (state, canSend, reasons, tool) for campaign sender/trust/release readiness; a connected mailbox does not prove campaign readiness. Sender readiness never proves owner approval or delivery. Mirrors the get_channel_status tool.

## Query parameters

- `business_id` string, required

## Response `200`

Every channel with its state and next step

## Other responses

- `400`: business_id is missing
- `403`: Missing sms:read scope, or no access to this business

---

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