Skip to main content
Toda chamada à API leva a chave de API no header Authorization.

Criar a chave

Crie, rotacione e revogue chaves em Chaves de API, no painel. O valor completo aparece uma única vez, na criação. Depois disso o painel mostra só os 4 últimos caracteres. A chave tem o formato ara_live_ seguido de 43 caracteres. Toda chave é de produção: a mensagem é entregue de verdade e o custo sai da carteira. Não existe chave de teste.
Guarde a chave em variável de ambiente ou cofre de segredos. Nunca no código, no frontend ou em URL.
As rotas /v1/api-keys não aceitam chave de API: uma chave não gerencia chaves. A resposta é sempre 403. Chave ADMIN recebe error.code = RESOURCE_FORBIDDEN; chave com permissões restritas é barrada antes, com o 403 de autenticação, sem error.code. Veja Chaves de API.

Permissões

Chave criada sem escolher permissões tem acesso total (ADMIN). Ao restringir, cada permissão libera um conjunto de rotas: Todo o resto exige ADMIN, inclusive leituras que não estão na linha READ: GET /v1/contacts, /v1/conversations, /v1/opt-outs, /v1/smart-links/whatsapp, /dashboard/*, /v1/pricing/current, /auth/me. Para um servidor que só envia, crie uma chave com MESSAGES_SEND, mais READ se ele consultar status. Uma chave de acesso total também altera recarga automática, perfil comercial e endpoint de recuperação. Chaves antigas com scope continuam valendo: READ equivale a READ; SEND equivale a READ + MESSAGES_SEND + CAMPAIGNS_SEND; ADMIN equivale a ADMIN.

Expiração, allowlist de IP e limite diário

Configurados no painel, por chave:

Rotação e revogação

  • Rotacionar cria uma chave nova com as mesmas permissões e restrições e revoga a anterior na hora. Não há período de convivência. Para trocar sem parar o serviço, crie uma segunda chave, migre e só então revogue a antiga.
  • Revogar invalida a chave imediatamente. A próxima chamada responde 401.
Use uma chave por serviço e revogue quando alguém com acesso sair do time.

Erros de autenticação

Na prática: 401 pede outra chave, 403 pede o header ou outra permissão, 503 pede nova tentativa depois do Retry-After.
Essas respostas não seguem o envelope { "error": { "code", "message", "details" } } do resto da API. O corpo é o JSON padrão do Spring, sem error.code:
Aqui error é uma string. Trate pelo status HTTP antes de ler error.code.
Um 403 com error.code não é falha de autenticação. É regra de negócio da rota (plano, conta, recurso de outra organização). Veja Erros.

Próximos passos

Chaves de API

Campos da chave e gestão pelo painel.

Identidade da chave

Descubra o usuário e a organização da chave.