CRPRO HubEntrar no painel

Chaves de API

GET
/api/v1/api-keys

Lista 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
Requisição
curl https://crprohub.com/api/v1/api-keys \
  -H "Cookie: <cookie de sessao do painel>"
Resposta
{
  "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"
      }
    ]
  }
}
POST
/api/v1/api-keys

Cria 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âmetroTipoObrigatórioDescrição
namestringSimNome da chave, de 1 a 100 caracteres.
scopeslista de stringSimDe 1 a 20 escopos, dentre os listados acima. Pedir um escopo que a sessão não possui responde 403.
expires_atstring (ISO 8601 com timezone)NãoData de expiração, precisa estar no futuro. Omitido ou null, a chave não expira.
Requisição
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"]}'
Resposta
{
  "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."
  }
}
DELETE
/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âmetroTipoObrigatórioDescrição
idUUIDSimIdentificador da chave de API.
Requisição
curl -X DELETE https://crprohub.com/api/v1/api-keys/API_KEY_UUID \
  -H "Cookie: <cookie de sessao do painel>"
Resposta
{
  "data": {
    "deleted": true
  }
}
POST
/api/v1/api-keys/{id}/revoke

Revoga 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âmetroTipoObrigatórioDescrição
idUUIDSimIdentificador da chave de API.
Requisição
curl -X POST https://crprohub.com/api/v1/api-keys/API_KEY_UUID/revoke \
  -H "Cookie: <cookie de sessao do painel>"
Resposta
{
  "data": {
    "revoked": true
  }
}