---
title: "Read a channel account with redacted credentials"
method: GET
path: "/api/channels/{id}"
tags: ["Channels"]
---

# Read a channel account with redacted credentials

`GET /api/channels/{id}`

## Request

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

One channel account. Stored credentials never come back, in any form.

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

## Path parameters

- `id` string, uuid, required

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- ChannelAccountSummary
  - `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

- `400`: bad request
- `401`: unauthorized
- `404`: not found
- `409`: conflict
- `429`: rate limited
- `500`: internal error
- `501`: not implemented
- `502`: upstream failure
- `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)
