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

# Video API Introduction

> **Info**
>
> ### Access to Synthesia's API is available for [Pro plans](https://www.synthesia.io/pricing-options) or above.

Welcome to Synthesia's API documentation. If it's your first time using Synthesia API, follow the [API quickstart](/docs/synthesia-api-quickstart) guide.

Leveraging Synthesia's API allows you to:

* **Integrate Synthesia with your SaaS applications**: Do you have a email app for outbound sales? A booking system? A modern e-learning platform? Enrich your application by adding the ability for your customers to send personalized videos based on different events with Synthesia's API.
* **Automate your video creation process**: Set up automated personalized videos throughout your customer lifecycle (i.e. automate the creation of sign-up, customer onboarding, and outbound sales videos).\
  Check out the [Zapier - Synthesia](/docs/guide-synthesia-zapier)  guide to get started.
* **Generate personalized videos at scale**: Leverage Synthesia video templates with the APIs to generate batches of video. Learn how to by checking the [Create a video from template guide](/docs/guide-create-a-video-from-template).

## Testing

> **Warning**
>
> **Rate Limit for Test Videos** — You're limited to 30 test videos per day.

To send a test request directly from our documentation:

1. Add your Synthesia API key to the Authorization header. You will find your API key under `Developers` > `API keys` in Synthesia Studio. Use a `Legacy (v2)`-scoped key for this API.
2. Use the endpoint description to craft your request.
3. Click on `Try it!` 🚀

![](/docs/_fern-img/7f04bc7ef537b571152e4eba921c103f5680b92cd8b00a8a69199607370383e4.webp)

> **Warning**
>
> ### When you create an API key it will belong to your account, not the workspace.
>
> This means that if you create any webhook subscriptions with your API key, it will be tied to you and not the entire workspace.

## Rate limits

Rate limits vary based on your payment plan:

| API Tier            | Write Operations (per endpoint)              | Read Operations (per endpoint) |
| :------------------ | :------------------------------------------- | :----------------------------- |
| Tier 1 (Enterprise) | 120 req/min \| 600 req/hour \| 3,000 req/day | 120 req/min \| 80k req/day     |
| Tier 2 (Enterprise) | 80 req/min \| 400 req/hour \| 2,000 req/day  | 80 req/min \| 40k req/day      |
| Tier 3 (Pro)        | 60 req/min \| 300 req/hour \| 1,000 req/day  | 60 req/min \| 20k req/day      |

If you go above the limits, your response status will be: `429 Too Many Requests` with the following header parameters:

* `RateLimit-Limit`: Indicates which limit has been breached (e.g. "60" for when the 60 requests per minute limit has been breached).

* `RateLimit-Reset`: Indicates how many seconds you must wait before you can send another request.

## Read vs Write Operations

| Write Operations                                                                             | Read Operations                                                           |
| :------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------ |
| [Create a video](/docs/video-api-reference/videos/create-a-video)                                 | [Retrieve a video](/docs/video-api-reference/videos/retrieve-a-video)          |
| [Update a video](/docs/video-api-reference/videos/update-a-video)                                 | [List videos](/docs/video-api-reference/videos/list-videos)                    |
| [Create a video from a template](/docs/video-api-reference/videos/create-a-video-from-a-template) | [Retrieve a template](/docs/video-api-reference/templates/retrieve-a-template) |
| [Delete a video](/docs/video-api-reference/videos/delete-a-video)                                 | [List templates](/docs/video-api-reference/templates/list-templates)           |
| [Create a webhook](/docs/video-api-reference/webhooks/create-a-webhook)                           | [Retrieve a webhook](/docs/video-api-reference/webhooks/retrieve-a-webhook)    |
| [Delete a webhook](/docs/video-api-reference/webhooks/delete-a-webhook)                           | [List webhooks](/docs/video-api-reference/webhooks/list-webhooks)              |
| [Upload script audio](/docs/upload-api-reference/upload-script-audio)                             |                                                                           |
| [Create an asset](/docs/upload-api-reference/create-an-asset)                                     |                                                                           |

\


# What's next

Get started with Synthesia APIs with the following guides

* [API Quickstart](/docs/synthesia-api-quickstart)
* [Guide: Create a video from template](/docs/guide-create-a-video-from-template)
* [Guide: Synthesia \<> Zapier integration](/docs/guide-synthesia-zapier)