wbx_key_ seguido de 48 caracteres hexadecimais. As keys servem para duas coisas:
- Account API (
/account/*): é a única credencial. Cada rota pede uma permissão. - Rotas de instância (
/instances/{instance_id}/token/{token}/*): camada opcional por cima do token da URL, ligada em Exigir API key nas rotas de instância.
Permissões
Marque só o que a integração precisa. Um backend que apenas envia mensagens precisa de
instances:operate (e só se a exigência estiver ligada); um provisionador de instâncias precisa de instances:read e instances:write. As permissões da Account API só funcionam em contas com plano.
Como criar
1
Crie a key
No painel, em Segurança › API keys, clique em Nova API key. Dê um nome que identifique a integração (ex.: “Backend de produção”) e marque as permissões. Owners e admins criam, editam e revogam; membros só veem a lista.
2
Copie o valor
A key aparece uma única vez, na criação. Só o hash fica guardado: copie para o seu cofre de segredos. Perdeu? Revogue e crie outra.
3
Envie no header
Authorization: Bearer wbx_key_… em toda chamada que precisa da key.wbx_key_3f9a…c2e1), as permissões e o último uso. Dá para editar as permissões de uma key existente sem trocar o valor dela.
Exigir API key nas rotas de instância
O token da instância vai na URL, e URLs vazam com facilidade: logs de proxy, histórico de navegador, planilhas, capturas de tela. Com a exigência ligada, toda requisição a qualquer instância do workspace precisa trazer, além do token na URL, uma key cominstances:operate em um header, que raramente é registrado. Se uma URL vazar, quem a tiver ainda não consegue usar a API.
1
Crie uma key com instances:operate
O painel só deixa ligar a exigência se existir pelo menos uma key com essa permissão.
2
Configure suas integrações
Adicione o header
Authorization: Bearer wbx_key_… em todas as chamadas, de todas as instâncias do workspace. Teste com GET /status — com a exigência desligada o header é ignorado, então dá para preparar tudo antes.3
Ative a exigência
Ligue Exigir API key nas rotas de instância. A partir daí, requisições sem o header (ou com uma key inválida) recebem
401 api_key_required, e com uma key sem instances:operate, 403 insufficient_scope.instances:operate não pode ser revogada nem perder essa permissão: o painel recusa. Desligue a exigência antes, ou crie outra key com a permissão.
No MCP, a exigência não se aplica a apps autorizados por OAuth. Com o token da instância como bearer ela vale, e a key vai no header Client-Token (o Authorization já está ocupado pelo token da instância).
Alias Client-Token
Para quem vem da z-api: nas rotas de instância, a key também pode ir no header Client-Token em vez de Authorization: Bearer, com o mesmo valor. Quem já envia Client-Token só troca o valor pelo de uma API key do Wabox com instances:operate.
- O nome do header não diferencia maiúsculas (
client-tokentambém funciona). - O alias vale nas rotas de instância e no
/mcpcom o token da instância como bearer. A Account API (/account/*) aceita sóAuthorization: Bearer. - Client-Tokens gerados antes das API keys foram migrados automaticamente para uma key chamada “Client-Token (migrado)”, com
instances:operate. O valor antigo continua funcionando no headerClient-Token, e o estado da exigência (ligada ou desligada) foi mantido. Nada precisa mudar nas integrações existentes; quando quiser, crie keys novas por integração e revogue a migrada.
Rotação sem downtime
Revogar uma key é imediato e não afeta as outras. Como várias keys convivem, a troca não tem janela de indisponibilidade:- Crie uma key nova com as mesmas permissões.
- Atualize a integração para usar a nova e confirme que está funcionando. O último uso na lista ajuda a ver se a antiga ainda recebe chamadas.
- Revogue a antiga.