Pular para o conteúdo

Criar chave de API

POST/v1/instances/{id}/api-keysdesde M11token da instância ou admin

Quando usar

Cria uma chave (lzk_...) presa a esta instância, com escopos:

- read: rotas GET de leitura — instância, mensagens, fila, chats, contatos, mídia, grupos, comunidades, perfil, privacidade, bloqueados, eventos (SSE), uso, status, canais (e publicações), etiquetas e perfil comercial. Nunca QR, configurações, hook de agente, convites de grupo nem escritas de status, canal ou etiqueta. - send: POST /messages e GET /messages/{msg_id} (status do envio).

Qualquer outra rota responde 403 forbidden, inclusive /mcp, webhooks, ações de ciclo de vida e a gestão de chaves. A chave aparece uma única vez nesta resposta (só o hash fica guardado). Opcionais: ip_allowlist (IPs/CIDRs) e expires_in_seconds. Até 50 chaves por instância (as expiradas são descartadas). Apagar a instância apaga as chaves.

Uma chave também respeita a ip_allowlist da instância; no stream SSE ela nunca recebe instance.qr nem instance.pair_code, e um stream aberto é encerrado em até um heartbeat (15s) quando a chave é revogada, expira ou sai da allowlist. Rotacionar o token da instância revoga as chaves criadas com ele (as criadas pelo admin continuam).

Autenticação

Aceita o token da instância (só a própria instância) ou o token admin. Um token de outra instância recebe 403 forbidden (ou 404 not_found em webhooks de outra instância).

Parâmetros

Caminho

NomeTipoDescrição
idobrigatóriostringId da instância (inst_...).

Corpo (JSON)

NomeTipoDescrição
nameobrigatóriostring (até 100)
scopesobrigatório"read" | "send"[]
ip_allowliststring[]
expires_in_secondsinteger0 ou ausente: não expira.

Exemplo

Janela do terminal
curl -s -X POST "$LITEZAP_URL/v1/instances/$ID/api-keys" \
-H "Authorization: Bearer $LITEZAP_TOKEN" \
-d '{"name":"painel do cliente","scopes":["read"],"ip_allowlist":["203.0.113.0/24"],"expires_in_seconds":2592000}'

Nos exemplos, LITEZAP_URL é a URL base (ex.: http://localhost:8787) e o token vem deLITEZAP_TOKEN (instância) ou LITEZAP_ADMIN_TOKEN.

Resposta

201 Chave criada.

Campos de object
api_keyAPIKey
api_key.idstringId da chave (key_...).
api_key.instance_idstring
api_key.namestring
api_key.scopes"read" | "send"[]
api_key.ip_allowliststring[]
api_key.created_atstring
api_key.expires_atstringAusente: não expira.
api_key.last_used_atstringAtualizado no máximo uma vez por minuto.
keystringA chave (lzk_...). Mostrada só uma vez.
{
"api_key": {
"id": "key_5c1e9a7d3b2f4086",
"instance_id": "inst_7f3a9c2e5b1d4086",
"name": "painel do cliente",
"scopes": [
"read"
],
"ip_allowlist": [
"203.0.113.0/24"
],
"created_at": "2026-10-18T09:00:00Z",
"expires_at": "2026-11-17T09:00:00Z"
},
"key": "lzk_RXhlbXBsby1uYW8tdXNlLWVzdGEtY2hhdmU"
}

Erros

CódigoHTTPRetentávelO que fazer
validation_failed400nãoCorrija o corpo ou os parâmetros; a message diz o campo.
unauthorized401nãoEnvie Authorization: Bearer <token> válido.
forbidden403nãoUse o token certo (admin, ou o da própria instância).
instance_not_found404nãoConfira o id da instância.

Todo erro usa o envelope {"error":{"code","message","retryable"}}. Tabela completa em Erros.

Equivalente na Z-API: (sem equivalente). Veja Migrar da Z-API.

Outras operações de Plataforma: Operação em lote · Listar chaves de API · Revogar chave de API · Gerar link de pareamento · Revogar links de pareamento · Uso da instância