Sync Lipsync 2 API
Sync Labs' zero-shot lip-sync: re-times the mouth of anyone in an existing video to a new voice track.
Sync Lipsync 2 is a video generation model from Sync Labs, available on OttoPort's OpenAI-compatible API as the model ID sync-lipsync-2 at $0.063 / second as of 2026-10-14.
Provider
Sync Labs
Price
$0.063 / second
Model ID
sync-lipsync-2
Type
video generation model
Create with Sync Lipsync 2
videoYour result appears here
Start with the example prompt or make it your own. Your OttoPort account is used securely for generation.
Sync Lipsync 2 API pricing
What OttoPort bills for Sync Lipsync 2, and what that works out to per unit. Rates are read from the same catalog the gateway meters against, and were current on 2026-10-14.
| Per second | $0.063 | |
|---|---|---|
| 5-second clip | $0.315 | |
| 8-second clip | $0.504 | |
| Seconds per $10 | 158 | of generated video |
No subscription and no minimum — OttoPort bills prepaid credits against usage. See the full rate card.
Call Sync Lipsync 2 in three lines
Send "model": "sync-lipsync-2" to POST https://ottoport.ai/api/v1/videos/generations with an OttoPort key. No Sync Labs account, no waitlist, no separate SDK.
curl https://ottoport.ai/api/v1/videos/generations \
-H "Authorization: Bearer $OTTOPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sync-lipsync-2",
"prompt": "cinematic product reveal, slow dolly, black background",
"duration": 5,
"aspect_ratio": "16:9"
}'import requests
job = requests.post(
"https://ottoport.ai/api/v1/videos/generations",
headers={"Authorization": "Bearer " + API_KEY},
json={
"model": "sync-lipsync-2",
"prompt": "cinematic product reveal, slow dolly, black background",
"duration": 5,
"aspect_ratio": "16:9",
},
).json()
# Video is a job: poll it, or pass webhook_url and be told.
print(job["id"], job["status"])const res = await fetch("https://ottoport.ai/api/v1/videos/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "sync-lipsync-2",
prompt: "cinematic product reveal, slow dolly, black background",
duration: 5,
aspect_ratio: "16:9",
}),
});
// Video is a job: poll it, or pass webhook_url and be told.
const job = await res.json();
console.log(job.id, job.status);Before you start
- 1. Create a key at /api-keys.
- 2. Top up credits — the smallest pack is $25.
- 3. Paste the request. It returns a job ID; poll it or pass a webhook_url.
Full reference at /docs, or drive it from an agent with the MCP server and CLI.
Request parameters
The body POST https://ottoport.ai/api/v1/videos/generations accepts for Sync Lipsync 2.
| Field | Type | Required | Notes |
|---|---|---|---|
| model | string | Yes | Always sync-lipsync-2 for Sync Lipsync 2. |
| prompt | string | Yes | Subject, action, and camera movement. |
| duration | integer | No | Seconds of output. This is the billed unit. |
| resolution | string | No | One of: . Tiers above this model's base rate bill at a multiplier. |
| aspect_ratio | string | No | e.g. 16:9 or 9:16. |
| image_url | string | No | The first frame, for image-to-video. |
| webhook_url | string | No | Called when the job settles, so you need not poll. |
| webhook_secret | string | No | Signs the webhook so you can verify it came from OttoPort. |
Sync Lipsync 2 direct vs through OttoPort
Sync Lipsync 2 is the same model either way — what changes is how many accounts, keys, and integrations you carry to reach it.
| Sync Labs direct | Via OttoPort | |
|---|---|---|
| Accounts and keys | A Sync Labs account, plus one more for every other model you add | One OttoPort account and one key for the whole catalog |
| Request shape | Sync Labs's own SDK and response format | OpenAI-compatible — point baseURL at OttoPort and change the model string |
| Switching models | A new integration per provider | Replace sync-lipsync-2 with any other model ID in the catalog |
| Billing | A separate invoice and contract per provider | Prepaid credits, no subscription, one usage ledger |
| Provider outages | Your call fails | Configured backup routes are tried in order on provider failure |
Describe the subject and action.
Add a camera movement.
Specify your output format.
Sync Lipsync 2 API questions
Cost, keys, and model IDs for Sync Lipsync 2 on OttoPort.
How much does the Sync Lipsync 2 API cost?
On OttoPort, Sync Lipsync 2 costs $0.063 / second as of 2026-10-14. For scale, 5-second clip: $0.315. Billing is prepaid usage with no subscription and no minimum, and the current rate is always published at ottoport.ai/pricing.
How do I get a Sync Lipsync 2 API key?
You do not need a Sync Labs key. Create an OttoPort account, generate a key at ottoport.ai/api-keys, and send it as "Authorization: Bearer <key>" to POST https://ottoport.ai/api/v1/videos/generations with "model": "sync-lipsync-2". The same key reaches every other model in the catalog.
What is the model ID for Sync Lipsync 2?
The OttoPort model ID for Sync Lipsync 2 is sync-lipsync-2. Pass it as the model field on POST https://ottoport.ai/api/v1/videos/generations, or list it programmatically from GET https://ottoport.ai/api/v1/models.
Is Sync Lipsync 2 generation synchronous?
No. POST https://ottoport.ai/api/v1/videos/generations returns a job ID immediately. Poll GET https://ottoport.ai/api/v1/videos/generations/{id} for status, or pass webhook_url and webhook_secret and OttoPort will call you when the job settles. You are billed per second of output, so a failed job costs nothing.
Do I need a Sync Labs account to use Sync Lipsync 2?
No. OttoPort connects to Sync Labs on your behalf, so one OttoPort account covers Sync Lipsync 2 and every other model in the catalog — no per-provider contracts, keys, or invoices.
Other video generation models on the same API
Same endpoint, same key — swapping model is a one-string change from sync-lipsync-2.
Gemini Omni 1.1 Flash API
$0.138 / second
Gemini Omni Flash API
$0.156 / second
Wan 3.0 Text to Video API
Alibaba
$0.20 / second
FLUX 3 API
Black Forest Labs
$0.213 / second
Seedance 2.5 API
ByteDance
$0.35 / second
MiniMax H3 API
MiniMax
$0.163 / second
Browse the full catalog — every model with its provider and per-unit price.