---
title: "List the coach's current channel accounts"
method: GET
path: "/api/channels"
tags: ["Channels"]
---

# List the coach's current channel accounts

`GET /api/channels`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/channels`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

One current row per provider account, with its status and connection date. Older rows remain available by ID for history. Credentials never show up here.

**API key scopes:** `channels:read`.

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- ChannelListResponse
  - `accounts` object[], required
    - `id` string, uuid, required
    - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp', required
    - `externalAccountId` string, required
    - `displayName` string
    - `status` 'connected' | 'disconnected' | 'paused' | 'suspended' | 'reconnect_required', required
    - `aiDmAutoSendEnabled` boolean, required
    - `aiDmAutoSendActive` boolean, required
    - `connectedAt` string, required
    - `coachState` object, required
      - `code` 'connected' | 'checking' | 'degraded' | 'action_required' | 'reconnect_required' | 'paused' | 'externally_blocked', required
      - `label` string, required
      - `description` string, required
      - `actions` string[], required
    - `cleanup` object
      - `status` 'completed' | 'queued' | 'retry_required', required
    - `composer` object, required
      - `canSend` boolean, required
      - `text` boolean, required
      - `media` object[], required
        - `kind` 'image' | 'video' | 'audio' | 'voice' | 'document', required
        - `maxBytes` integer, required
        - `mimeTypes` string[]
      - `interactions` object[], required
        - `kind` 'buttons' | 'list' | 'quick_replies' | 'inline_buttons', required
        - `maxOptions` integer, required
        - `titleMaxLength` integer, required
        - `descriptionMaxLength` integer
      - `templates` boolean, required
      - `externallyBlocked` boolean, required
      - `blocker` string
    - `health` object
      - `status` 'green' | 'yellow' | 'red', required
      - `signals` string[], required
      - `checkedAt` string, nullable, required
      - `readiness` object, nullable
        - `version` 1, required
        - `status` 'ready' | 'degraded' | 'blocked' | 'unknown', required
        - `checks` object[], required
          - `key` string, required
          - `status` 'pass' | 'warn' | 'fail' | 'unknown', required
          - `source` 'provider' | 'local' | 'cached', required
          - `detail` string
        - `checkedAt` string, required

## Other responses

- `401`: unauthorized
- `429`: rate limited
- `500`: internal error
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
