> 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.

# Localization API Introduction

> **Info**
>
> ### Access to the Localization API is available on every plan.
>
> Your workspace needs enough credit to cover the localized videos. You'll also need an API key with the **Localization (write)** scope. See [Scopes](/docs/scopes).

Welcome to Synthesia's Localization API documentation. Use it to localize your videos into up to 20 languages from your own systems.

> **Warning**
>
> **`/v2/dubbing` is deprecated** in favour of the Localization API, except creating a dubbing project from an uploaded asset. There's no removal date yet. If you're building a new localization integration, use the Localization API. See [Coming from `/v2/dubbing`](#coming-from-v2dubbing).

Leveraging the Localization API allows you to:

* **Localize videos into up to 20 languages per request:** Create a localization from a video URL, choose your target languages, and follow each language until its localized video is ready.
* **Automate localization at scale:** Plug localization into your CMS, LMS, or content pipelines instead of localizing one video at a time.
* **Grow a localization over time:** Add more languages to an existing localization later.

## Read vs Write Operations

| Write Operations                                                                                                | Read Operations                                                                              |
| --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `POST` [Create a localization from a media URL](/docs/api-reference/localization/create-localization-from-media-url) | `GET` [Get a localization](/docs/api-reference/localization/get-localization)                     |
| `PUT` [Add locales to a localization](/docs/api-reference/localization/add-localization-locales)                     | `GET` [List a localization's locales](/docs/api-reference/localization/list-localization-locales) |
|                                                                                                                 | `GET` [List localization languages](/docs/api-reference/localization/list-localization-languages) |

## Before you start

* **Base URL:** `https://developers.synthesia.io/api`, not `api.synthesia.io/v2`.
* **Workspace:** an API key belongs to one workspace and only reaches localizations in that workspace.
* **Lip sync** is on by default and costs extra credit. Set `lipsyncEnabled: false` to localize the audio only.

## Coming from `/v2/dubbing`

* `GET /v2/dubbing/{id}`, `PUT /v2/dubbing/{id}` and creating a dubbing project from `sourceVideoUrl` are deprecated.
* An existing dubbing project's id works on the Localization API with the `l10n_` prefix (`l10n_<id>`), using an API key for the workspace the project was created in.
* `/v2/dubbing` doesn't lip-sync unless you ask; the Localization API does by default.
* Creating a dubbing project from an uploaded asset (`sourceAssetId`) isn't deprecated: the Localization API can't take an upload yet.

## What's next

* [Localization API reference](/docs/api-reference/localization)
* [Scopes](/docs/scopes)
* [Errors](/docs/errors)
* [API updates](/docs/changelog)