---
title: "Disconnect a channel account"
method: DELETE
path: "/api/channels/{id}"
tags: ["Channels"]
---

# Disconnect a channel account

`DELETE /api/channels/{id}`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/channels/{id}`
- Auth: API key in cookie `luca.session_token`

Disables the account locally, deletes Instagram, Messenger, or Telegram channel history immediately, then cleans up the provider webhook with durable recovery. The account row remains for audit and reconnect.

**Session-only.** This endpoint isn't on the API-key allowlist. An organization API key gets a 403 here, whatever scopes it holds.

## Path parameters

- `id` string, uuid, required

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- ChannelDeleteResponse
  - `ok` boolean, required
  - `account` object
    - `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
  - `cleanup` object
    - `status` 'completed' | 'queued' | 'retry_required', required

## Other responses

- `401`: unauthorized
- `404`: not found
- `409`: conflict
- `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)
