Chaves de API
Atualizar Permissões da Chave de API
Substituir o conjunto de permissões de uma chave de API sem alterar o seu segredo.
PUT /api/api-keys/:id/permissions
Substitui o conjunto completo de permissões de uma chave de API pertencente ao usuário autenticado. A resposta tem o mesmo formato de um item de Listar Chaves de API — plaintextKey nunca é incluído. O segredo não muda: a mesma x-api-key autentica com o novo conjunto na próxima requisição. O novo conjunto deve ser um subconjunto das suas permissões vigentes, e api-key:manage não pode ser atribuída.
Auth: Necessária — permissão api-key:manage
Parâmetros de Rota
| Parâmetro | Tipo | Descrição |
|---|---|---|
id | string | UUID da chave de API a ser atualizada |
Corpo da Requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
permissions | string[] | Sim | Nova lista de nomes de permissões (mínimo de 1, sem repetições). Substitui o conjunto atual por completo |
Exemplo
curl -X PUT https://api.reten.ai/api/api-keys/f47ac10b-58cc-4372-a567-0e02b2c3d479/permissions \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>" \
-H "Content-Type: application/json" \
-d '{
"permissions": ["activity:view", "activity-result:submit"]
}'const keyId = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
const response = await fetch(`https://api.reten.ai/api/api-keys/${keyId}/permissions`, {
method: "PUT",
headers: {
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
"Content-Type": "application/json",
},
body: JSON.stringify({ permissions: ["activity:view", "activity-result:submit"] }),
});
const data = await response.json();import requests
key_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
response = requests.put(
f"https://api.reten.ai/api/api-keys/{key_id}/permissions",
headers={
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
},
json={"permissions": ["activity:view", "activity-result:submit"]},
)
data = response.json()Resposta 200 OK
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"name": "CI/CD Pipeline Key",
"keyPrefix": "rtn_sk_a1b2c3d4",
"userId": "550e8400-e29b-41d4-a716-446655440000",
"tenantId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
"isActive": true,
"permissions": ["activity:view", "activity-result:submit"],
"expiresAt": "2026-12-31T23:59:59.000Z",
"lastUsedAt": "2026-02-26T16:45:00.000Z",
"createdAt": "2026-02-26T14:30:00.000Z",
"revokedAt": null
}Respostas de Erro
| Status | Descrição |
|---|---|
400 | Erro de validação — array de permissões vazio, permissões repetidas, um nome de permissão fora do catálogo, ou um id que não é UUID |
400 | A chave de API já foi revogada |
400 | Nenhum contexto de tenant ativo |
401 | Token de autenticação ausente ou inválido |
403 | A chave de API não pertence ao usuário autenticado ou ao tenant — You do not own this API key |
403 | O conjunto solicitado inclui uma permissão que você não possui atualmente — Cannot assign permissions you do not have: … |
403 | O conjunto solicitado inclui api-key:manage — Cannot assign api-key:manage to an API key |
404 | Chave de API não encontrada |