---
title: "Canais"
slug: channels
group: "Referência da API"
source: https://linkzap.orion.moe/developers/channels
openapi: https://linkzap.orion.moe/openapi.json
---

# Canais

Os números de WhatsApp conectados a esta conta — e o channelId que quase toda escrita pede.

## Quem sou eu

### `GET /api/v1/me`
Confere a chave e diz de qual organização e de qual escopo ela é. É a primeira chamada a fazer com uma chave nova.

Pedido:

```bash
curl https://linkzap.orion.moe/api/v1/me \
  -H "Authorization: Bearer lz_SUA_CHAVE"
```

Resposta:

```json
{
  "data": {
    "org": { "id": "org_...", "name": "Clínica VidaVet" },
    "scope": "account",
    "channel": null,
    "token": {
      "id": "tok_...",
      "name": "CRM",
      "prefix": "lz_ab12cd34",
      "createdAt": "2026-09-20T12:00:00.000Z",
      "lastUsedAt": "2026-09-21T14:02:59.000Z"
    }
  }
}
```

Com uma chave de canal, `scope` vem `"channel"` e `channel` traz o número ao qual ela está presa.

## Os números conectados

### `GET /api/v1/channels`
Lista os números da conta, em ordem alfabética pelo rótulo, com o estado de cada um. Devolve todos de uma vez — esta lista não é paginada. Uma chave de canal vê só o próprio.

Pedido:

```bash
curl https://linkzap.orion.moe/api/v1/channels \
  -H "Authorization: Bearer lz_SUA_CHAVE"
```

Resposta:

```json
{
  "data": [
    {
      "id": "chn_9f2a...",
      "label": "Recepção",
      "provider": "web",
      "phone": "5592999990000",
      "enabled": true,
      "ready": true,
      "reason": null,
      "createdAt": "2026-09-02T18:11:04.000Z"
    },
    {
      "id": "chn_71bd...",
      "label": "Comercial",
      "provider": "cloud",
      "phone": "5592988880000",
      "enabled": true,
      "ready": false,
      "reason": "O número está desconectado.",
      "createdAt": "2026-09-14T09:02:41.000Z"
    }
  ]
}
```

- `provider: "web"` — número conectado pelo QR do celular. Sem janela de 24 horas; o número é seu e o risco de bloqueio também.
- `provider: "cloud"` — conta oficial da Meta. Tem janela de 24 horas para texto livre, e fora dela só template aprovado.
- `ready` e `reason` vêm da **mesma** verificação que o envio faz. Se `ready` é `false`, um `POST /messages` por esse canal responderia 409 com exatamente esse `reason` — dá para checar antes em vez de tentar e tratar o erro.

> [!NOTE]
> **Guarde o id, não o rótulo**
>
> O `label` é o nome que a equipe deu ao número e pode mudar a qualquer momento na tela de Canais. O `id` não muda enquanto o canal existir.
