> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.synthesia.io/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.synthesia.io/docs/_mcp/server.

# API key scopes

A key's scopes are set when you create it. You can edit them later in Studio.

Video API endpoints (`api.synthesia.io/v2`) need a key with the `legacy` scope, shown in Studio as **Legacy (v2)**; a key without it gets a 403 from the Video API.

Endpoints under `developers.synthesia.io/api` need the scopes below. Each one names its scope on its reference page; a key without it gets a 403 [`insufficient_scope`](errors#insufficient_scope) error. `legacy` doesn't satisfy any of them.

A `:write` scope also satisfies the same resource's `:read` scope.

| Scope | In Studio | Grants | Required by |
| --- | --- | --- | --- |
| `interactive_avatars:write` | Interactive Avatars (write) | Create, update and delete interactive avatar sessions and avatars in the workspace. | [`POST /api/interactive-avatars/sessions`](createinteractiveavatarsession), [`POST /api/interactive-avatars/avatars`](createinteractiveavatar) |

These endpoints need no scope with an API key: [`GET /api/billing/credits`](getbillingcredits).