Reference documentation about Synthesia's API.
Access to Synthesia's API is available for Creator plans or above.
Welcome to Synthesia's API documentation. If it's your first time using Synthesia API, follow the 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 personalised videos throughout your customer lifecycle (i.e. automate the creation of sign-up, customer onboarding, and outbound sales videos).
Check out the Zapier - Synthesia 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.
Testing
To send a test request directly from our documentation:
- Add your Synthesia API key to the Authorization header.
You can find your existing API keys, or create a new one, from account settings. - Use the endpoint description to craft your request.
- Click on
Try it!
🚀
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
Synthesia's API has the following rate limits:
Endpoint | Rate limits |
---|---|
Create video | 60 req/min ; 300/hour ; 1000/day |
Update video | 60 req/min ; 300/hour ; 1000/day |
Retrieve a video | 60req/min ; 40000 req/day |
List videos | 60req/min ; 40000 req/day |
If you go above the limits, Synthesia's API responds with a status: 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.