Chaves de API
/api/v1/api-keysLista as chaves sem revelar segredos
Só aceita sessão — uma chave de API autenticando aqui recebe 403 SESSION_REQUIRED, de propósito: uma chave vazada não pode enumerar as outras chaves da organização. Cada item traz key_prefix (o começo do valor, ex.: hub_pk_EXEMPLO_NAO_REAL_...), nunca o segredo completo.
- Autenticação
- Sessão do painel
- Escopo
- api_keys:read
- Limite
- 120 requisições por minuto por organização e credencial
curl https://crprohub.com/api/v1/api-keys \ -H "Cookie: <cookie de sessao do painel>"
{
"data": {
"keys": [
{
"id": "e4f5a6b7-8c9d-4e0f-1a2b-3c4d5e6f7a8b",
"name": "Integração ERP",
"key_prefix": "hub_pk_EXEMPLO_NAO_REAL_...",
"scopes": ["messages:send", "channels:read"],
"expires_at": null,
"last_used_at": "2026-08-20T18:00:00.000Z",
"revoked_at": null,
"created_at": "2026-08-01T12:00:00.000Z"
}
]
}
}/api/v1/api-keysCria uma chave escopada; o segredo aparece uma única vez
Só aceita sessão — uma chave de API autenticando aqui recebe 403 SESSION_REQUIRED, de propósito: uma chave vazada não pode criar outras chaves para si mesma. Os scopes pedidos não podem passar dos escopos que a própria sessão possui (senão 403); a lista completa de escopos aceitos é channels:read, channels:write, messages:send, templates:read, templates:write, webhooks:read, webhooks:write, billing:read e logs:read. O valor completo (hub_pk_...) vem só nesta resposta, em plaintext — não é reemitido, e perdê-lo obriga a criar outra chave.
- Autenticação
- Sessão do painel
- Escopo
- api_keys:write
- Limite
- 120 requisições por minuto por organização e credencial
Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Sim | Nome da chave, de 1 a 100 caracteres. |
| scopes | lista de string | Sim | De 1 a 20 escopos, dentre os listados acima. Pedir um escopo que a sessão não possui responde 403. |
| expires_at | string (ISO 8601 com timezone) | Não | Data de expiração, precisa estar no futuro. Omitido ou null, a chave não expira. |
curl -X POST https://crprohub.com/api/v1/api-keys \
-H "Cookie: <cookie de sessao do painel>" \
-H "Content-Type: application/json" \
-d '{"name":"Integração ERP","scopes":["messages:send","channels:read"]}'{
"data": {
"key": {
"id": "e4f5a6b7-8c9d-4e0f-1a2b-3c4d5e6f7a8b",
"name": "Integração ERP",
"key_prefix": "hub_pk_EXEMPLO_NAO_REAL_...",
"scopes": ["messages:send", "channels:read"],
"expires_at": null,
"last_used_at": null,
"revoked_at": null,
"created_at": "2026-08-21T12:00:00.000Z"
},
"plaintext": "hub_pk_EXEMPLO_NAO_REAL",
"warning": "Guarde esta chave agora. Ela nao podera ser visualizada novamente."
}
}/api/v1/api-keys/{id}Exclui uma chave
Só aceita sessão — uma chave de API autenticando aqui recebe 403 SESSION_REQUIRED, de propósito: uma chave vazada não pode apagar as outras. Remoção definitiva do registro, diferente de /revoke, que mantém o histórico. Um id de chave já removida ou de outra organização responde 404.
- Autenticação
- Sessão do painel
- Escopo
- api_keys:write
- Limite
- 120 requisições por minuto por organização e credencial
Parâmetros de caminho
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | UUID | Sim | Identificador da chave de API. |
curl -X DELETE https://crprohub.com/api/v1/api-keys/API_KEY_UUID \ -H "Cookie: <cookie de sessao do painel>"
{
"data": {
"deleted": true
}
}/api/v1/api-keys/{id}/revokeRevoga uma chave mantendo o registro histórico
Só aceita sessão — uma chave de API autenticando aqui recebe 403 SESSION_REQUIRED, de propósito: uma chave vazada não pode se manter viva revogando as outras nem se proteger de ser revogada. Diferente do DELETE, a chave continua listada em GET /api-keys com revoked_at preenchido, para consulta em auditoria; ela para de autenticar imediatamente.
- Autenticação
- Sessão do painel
- Escopo
- api_keys:write
- Limite
- 120 requisições por minuto por organização e credencial
Parâmetros de caminho
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | UUID | Sim | Identificador da chave de API. |
curl -X POST https://crprohub.com/api/v1/api-keys/API_KEY_UUID/revoke \ -H "Cookie: <cookie de sessao do painel>"
{
"data": {
"revoked": true
}
}