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

> Begin your journey with Synthesia’s API by generating your first AI video. This quickstart guide provides step-by-step instructions on creating API keys, crafting synthetic videos, and downloading them efficiently.

## Create your API key

To use Synthesia API, start by creating your API key:

1. Select `Developers` in the sidebar, then the `API keys` tab.
2. Select `New API key`.
3. Enter a name, choose the `Legacy (v2)` scope, and set an expiration.
4. Select `Create API key`, then copy the key right away—it's only shown once.

> **Note**
>
> Video API requests need a `Legacy (v2)`-scoped key, not an `Interactive Avatars`-scoped one. See [Developers](https://docs.synthesia.io/docs/developers) for more on key scopes.

> **Note**
>
> When you create an API key it belongs 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.

## Using your API key

Enter the copied API key in the Authorization header of any endpoint to have it available. Click on `Try it!` in order to test the endpoint.

![](/docs/_fern-img/51464c16e5a4dd76977e7e03fe9b09c6e9d976dd991fffdb11d114d64b615cbd.webp)

## Create your first video

In the Synthesia API documentation enter the API key you copied from above in the [Create a video endpoint section](/docs/video-api-reference/videos/create-a-video) and enter the following value for the endpoint parameters (leave all other parameters to default value):

| Parameter    | Value                                                                          |
| :----------- | :----------------------------------------------------------------------------- |
| `test`       | `true`                                                                         |
| `title`      | `My first Synthetic video`                                                     |
| `scriptText` | `Hello, World! This is my first synthetic video, made with the Synthesia API!` |
| `avatar`     | `anna_costume1_cameraA`                                                        |
| `background` | `green_screen`                                                                 |

Once done press the `Try it!`, if successful you should receive a 201-status code that looks like this:

![](/docs/_fern-img/69e9c56b8b0d91553ed47b8573c4da874f9ce580cc45d8a8231b767f7a0d5662.webp)

**Note**: Store the video ID returned, it is required for the rest of the quick start, in the image above the id is: `00db5057-ad78-49ab-9e1d-00f1cd891273`

Go into your Synthesia account under the My video section to confirm the newly created video:

![](/docs/_fern-img/c3dae666cfd68a0045de1856a0f4e244c0673aff2768bdbe0ecbf550065ebb86.webp)\


## Download the video

As soon as you create a video, Synthesia begins processing it. This can take from 3 to 5 minutes. Poll the [Retrieve a video endpoint](/docs/video-api-reference/videos/retrieve-a-video) to see the video status:

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

\


When the video is ready for playback, the video `status` changes to `complete`, the response includes then a time-limited download link in the `download` attribute, use this link to download the video as an `.mp4` with:

**`curl`**

```curl curl
curl ${DOWNLOAD_URL} --output my_first_synthetic_video.mp4
```

And done! You have created your first video and downloaded it. Note that rather than polling Synthesia API, it is possible to configure a webhook to which Synthesia sends a notification when a video completes successfully. Refer to the [Synthesia webhook API documentation](/docs/webhooks) to learn how to leverage it.