# Authentication & Security



All requests to the YouTube Transcript Platform API must be authenticated using a valid API key.

Bearer Token Authentication [#bearer-token-authentication]

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

```http
Authorization: Bearer YOUR_API_KEY
```

<Callout type="warn" title="Keep your API key secret">
  Never expose your API key in client-side code, public repositories, or browser network requests. Use environment variables and server-side proxying.
</Callout>

Requests without a valid `Authorization` header receive a `401 Unauthorized` response:

```json
{
  "error": "Unauthorized: invalid or missing API key",
  "status": 401
}
```

***

API Key Scopes [#api-key-scopes]

Keys can be generated with specific scopes from the [Developer Dashboard](https://ytapi.dev/app/api-keys):

| Scope                | Description                                                              |
| :------------------- | :----------------------------------------------------------------------- |
| `transcripts:read`   | Extract transcripts in all formats, word-level offsets, and AI Markdown. |
| `transcripts:stream` | Stream real-time transcript chunks via SSE / WebSocket.                  |
| `admin`              | Full programmatic access and team management.                            |

***

Rate Limits & Concurrency [#rate-limits--concurrency]

API keys have default rate limits based on your account tier:

| Account             | Rate Limit         | Burst              |
| :------------------ | :----------------- | :----------------- |
| **Free**            | 30 RPM (0.5 req/s) | 2                  |
| **Paid** (any pack) | 300 RPM (5 req/s)  | 10                 |
| **Reserved**        | Above 300 RPM      | Dedicated door set |

<Callout type="info" title="Rate limit exceeded?">
  When you exceed your rate limit, the API returns `429 Too Many Requests` with a `Retry-After` header indicating seconds until reset. See [Credits & Errors](/credits) for all error codes.
</Callout>
