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

# Overview

> The Pureframe AI REST API — base URL, authentication, and response format.

The Pureframe AI API is a REST API served over HTTPS. All requests and responses use JSON, except file uploads which use `multipart/form-data`.

## Base URL

```
https://api.pureframe.ai
```

All endpoints are versioned under `/v1`.

## Authentication

Pass your API key as a Bearer token in the `Authorization` header:

```
Authorization: Bearer pf_...
```

Get an API key from [platform.pureframe.ai/settings/api-keys](https://platform.pureframe.ai/settings/api-keys). Keys are prefixed with `pf_` and only shown once on creation. Full details in [Authentication](/get-started/authentication).

## Response envelope

Every successful response wraps its payload in a consistent structure:

```json theme={null}
{
  "data": { ... },
  "meta": {
    "request_id": "req_abc123",
    "took_ms": 18,
    "total": 42,
    "page": 1,
    "per_page": 10
  }
}
```

`total`, `page`, and `per_page` are only present on paginated endpoints.

## Error format

Errors return a non-2xx HTTP status and a structured body:

```json theme={null}
{
  "detail": {
    "code": "COLLECTION_NOT_FOUND",
    "message": "Collection not found"
  }
}
```

The `code` field is machine-readable and stable across API versions. See [Errors](/production/errors) for the full list.

## Rate limits

Rate limits are per API key. Exceeding a limit returns `429 Too Many Requests`. See [Rate Limits](/production/rate-limits) for the per-endpoint limits.

## Versioning

The current API version is `v1`. Breaking changes will be announced before deployment and released under a new version prefix.

## Endpoints

Every endpoint below is generated directly from the live OpenAPI spec, grouped by resource.

<Note>
  The **API Keys** group is the exception — those endpoints require a web session with admin role, not an API key, and exist to power the dashboard's key management UI. They're listed here for completeness, not as an integration path. Always create, list, and revoke keys from [Settings → API Keys](https://platform.pureframe.ai/settings/api-keys) — see [API Keys](/get-started/api-keys) for why.
</Note>
