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

# API keys

> Give integrations only the access they need.

Create a key in **Settings → API & integrations** and send it with each request:

```http theme={null}
Authorization: Bearer itk_…
```

The secret is shown once. Keep it on your server or in the client's secret
storage, outside URLs, source control, analytics, and public client bundles.

| Permission          | Allows                            |
| ------------------- | --------------------------------- |
| `recordings:create` | Create recordings                 |
| `recordings:read`   | Read and search the library       |
| `recordings:write`  | Edit recording text and pin state |
| `recordings:delete` | Delete recordings                 |
| `settings:read`     | Read devices and their settings   |
| `settings:write`    | Update recording input settings   |
| `events:read`       | Read recording notifications      |

These permissions apply to the account library. Create and edit permissions alone
do not grant read access. Start with only what your integration needs.

Keys expire after 90 days by default. You can choose 1–365 days, with up to 50
active keys per account. The limit is 120 requests per minute per key. A `429`
response includes `Retry-After`; wait that many seconds before retrying.
Revocation takes effect on subsequent requests.

## Manage access

Use Settings, or use a signed-in account session with `POST /api-keys`,
`GET /api-keys`, and `DELETE /api-keys/{id}`. Creation takes a name, permissions,
and optional expiry. Italic assigns the integration identity automatically.
The response contains key metadata and a one-time `secret`.

An API key cannot create other keys or manage webhook destinations.
These actions require the account owner's session. Existing keys also work with
v2; they do not need to be recreated.
