> ## Documentation Index
> Fetch the complete documentation index at: https://brezelscraper.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# API keys

> Create, list, and revoke programmatic access keys for BrezelScraper.

Use these endpoints to manage API keys for scripts, backend jobs, and external automations.

## `GET /api/v1/api-keys`

List all API keys for the authenticated user, including revoked keys.

### Example response

```json theme={null}
[
  {
    "id": "018efdf7-7fe1-7c42-b4e2-123456789abc",
    "name": "Production worker",
    "key_hint_prefix": "bscraper",
    "key_hint_suffix": "9x7Q",
    "usage_count": 42,
    "created_at": "2026-04-10T09:00:00Z",
    "last_used_at": "2026-04-10T10:15:00Z"
  }
]
```

This endpoint returns a plain array because each account is limited to 10 API keys. No pagination is needed.

## `POST /api/v1/api-keys`

Create a new API key.

### Request body

```json theme={null}
{
  "name": "Production worker"
}
```

Rules:

* `name` is required
* Maximum name length is 100 characters
* Maximum active keys per user is 10

### Success response

```json theme={null}
{
  "id": "018efdf7-7fe1-7c42-b4e2-123456789abc",
  "name": "Production worker",
  "key": "bscraper_0123456789ABCDEFGHIJKLMN",
  "key_hint_prefix": "bscraper",
  "key_hint_suffix": "9x7Q"
}
```

The `key` value is returned exactly once. Store it immediately.

### Common failure modes

* `400 Bad Request` if `name` is missing or too long
* `409 Conflict` if you already have 10 active keys

## `DELETE /api/v1/api-keys/{id}`

Revoke one API key by UUID.

Current behavior:

* Success response is `204 No Content`
* Revoked keys stop authenticating immediately
* Unknown or already revoked IDs return `404 Not Found`
