<!-- https://cutedyno.com/docs/api/revoke-api-key -->

# Revoke an API key

`DELETE https://api.cutedyno.com/v1/api-keys/{id}`

Deactivates a key immediately. A key cannot revoke itself.



Required permission: `connections:write`

Required permission: `connections:write`

## Path parameters

- `id` (string, required) — API key id.

## Request

```bash
curl -X DELETE "https://api.cutedyno.com/v1/api-keys/KEY_ID" \
  -H "Authorization: Bearer $CUTEDYNO_API_KEY"
```

```typescript
import { CuteDyno } from '@cutedyno/node';

const cutedyno = new CuteDyno();

const result = await cutedyno.apiKeys.revoke('KEY_ID');
console.log(result);
```

```python
import os
import requests

url = "https://api.cutedyno.com/v1/api-keys/KEY_ID"
headers = {"Authorization": f"Bearer {os.environ['CUTEDYNO_API_KEY']}"}

response = requests.delete(url, headers=headers)
response.raise_for_status()
print(response.json())
```

## Response 200

- `revoked` (boolean, required)
- `id` (string, required)

```json
{
  "revoked": false,
  "id": "a1b2c3d4-0000-4000-8000-000000000000"
}
```

## Errors

- `invalid_request` (400) — The request body or query string failed validation. The message names the offending field.
- `invalid_api_key` (401) — The key does not exist, was revoked, or is malformed. Keys start with cdyn_live_.
- `not_found` (404) — The resource does not exist inside the resolved profile.
- `rate_limit_exceeded` (429) — Too many requests for this key. Honour the Retry-After header before retrying.
- `internal_error` (500) — Something failed on our side. Retry with the same Idempotency-Key; report the requestId if it persists.