Does Synthesia Syren have an API? A backend route with Sume Formats
Synthesia's Syren beta launched Oct 9 as an in-app button; its launch post mentions no API. How to call a saved video recipe from your server with Sume.

Synthesia's launch post for Syren, published October 9, 2026, does not mention an API. It describes a beta that you open from a Syren button in the left-hand navigation of the Synthesia app. If you need to start video generation from your own server, Sume's Format API is a route that exists today: POST /v1/formats/{handle}/{slug}/runs starts a saved video recipe, and you read the finished media back by webhook or poll.
This page compares the two shapes. It does not claim that Synthesia has no API for anything; it only reports what the Syren announcement says.
What does the Syren announcement say?
Synthesia says you describe a video or share a document and Syren builds motion graphics, avatars and voiceover. It launched in beta for self-serve, free and all Enterprise customers, with launch credits so every customer can make a first video.
| Item | Launch post |
|---|---|
| Date | October 9, 2026 |
| Access | Syren button in the Synthesia app; beta |
| Inputs | Prompt or preset; branded documents, images, videos, PowerPoints, YouTube links |
| Length and shape | Up to three minutes, horizontal or vertical |
| Avatars | 240+ avatars in 140+ languages |
| API | Not mentioned |
What is a Sume Format run?
A Format is a saved production recipe: a house style, an output contract and a playbook for one kind of video. A run executes it once, unattended, in a fresh sandbox with Sume's generation tools. The run is not a chat; approvals a chat-authored recipe would ask for are pre-granted inside the run's spend cap.
You call a Format you own at {handle}/{slug}, or one of the ready-made Formats by Sume at sume/{slug}, such as sume-product-commercial or sume-slideshow. The body carries a free-form input object and an instruction. Read GET /v1/formats/sume/{slug} first to see its declared input and output kind.
How do I start one from my server?
Send an Idempotency-Key on every create, and set generation_spend_cap_credits so one run cannot exceed a ceiling you chose. A fresh run returns 202; a replay of the same key and body returns 200 with the original receipt and no second charge.
Runs that make video take minutes. The docs say long-form host video usually completes in 15 to 30 minutes, so design for the asynchronous path from the first call.
import json, os, time, urllib.request
BASE = "https://api.sume.com/v1"
HEADERS = {
"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Content-Type": "application/json",
}
def call(method, url, body=None, extra=None):
data = json.dumps(body).encode() if body is not None else None
req = urllib.request.Request(url, data, {**HEADERS, **(extra or {})}, method=method)
with urllib.request.urlopen(req) as res:
return json.load(res)["data"]
run = call(
"POST", f"{BASE}/formats/acme/product-promo/runs",
{"instruction": "Vertical 9:16, 30 seconds, upbeat.",
"input": {"product_url": "https://shop.example.com/p/8823"},
"generation_spend_cap_credits": 300},
{"Idempotency-Key": "order-8823-v1"},
)
while run["status"] not in ("completed", "failed", "canceled", "skipped"):
time.sleep(30)
run = call("GET", f"{BASE}/format-runs/{run['id']}")
print(run["status"], run.get("primary_output_url"))How do I get the result back?
A completed receipt carries primary_output_url, an artifacts[] list and an output object. Media URLs are durable media.sume.com HTTPS URLs that do not expire, and they are public to anyone who holds the link, so proxy or copy them if customers must not see each other's files.
In production, register communication.webhook_url and verify the sume-v1 signature on the raw body. Keep polling as a backup. skipped and canceled runs send no webhook, so read those from the create or cancel response.
What stays different from an app button?
Syren builds the video while you watch and lets you ask in chat to change the script or avatar. A Format run is one unattended turn, so a change means a new run with an edited instruction and a new idempotency key. Keys must carry the formats:read and formats:write scopes, and service-account keys cannot create Format runs.
Pick Syren when a person wants to iterate in an app. Pick a Format when your own product or job queue must start the video.
Sources
Related posts
More in Formats
- UGC-style gift set ad: one sume-close-camera-ugc run with a credit cap
Yes: sume-close-camera-ugc is in the Sume Format catalog. Read its io profile, then one POST makes a close-camera gift-set ad with a spend cap and a webhook.
- Ready-made Formats for product video: the Sume Format catalog
Sume ships ready-made Formats for product and UGC-style video and images, each callable from your backend with one HTTP request at the reserved sume handle.
- What is a Sume Format? Turn an agent thread into one API call
A Sume Format is a saved video recipe your backend calls by handle and slug. One POST runs it in a fresh sandbox and returns media plus optional typed JSON.
- Sume Format bulk runs: queue up to 100 renders in one request
A Sume bulk request queues 1 to 100 ordinary Format runs on the server and keeps 1 to 16 in flight. Poll one queue URL; read each child as a normal run.
Written by Sume