API Overview

The Sync API is a RESTful API at https://api.sync.so/v2 for generating lip-synced videos from video and audio inputs. It exposes 6 endpoints, supports 4 models, and accepts MP4 video with WAV or MP3 audio. Send a video and audio, and the API returns a new video with lip movements matching the audio.

API quick reference

Endpoints6 (generate, upload, get, list, estimate cost, batch)
Models4 — lipsync-1.9, lipsync-2, lipsync-2-pro, react-1
Rate limits60 req/min for POST /v2/generate, 600 req/min for all other endpoints
Concurrency1 (Hobbyist) to 15 (Scale), custom for Enterprise
Supported inputsVideo: MP4 via URL, upload (max 20 MB), or asset ID. Audio: WAV/MP3 via URL, upload, or asset ID
Batch processingUp to 500 generations per batch, min 20, 5 MB max input file, 24-hr turnaround (Scale+ only)
AuthenticationAPI key via x-api-key header

What is the Sync API base URL?

https://api.sync.so

All API requests require authentication via the x-api-key header. See the Authentication guide for setup.

Core Endpoints

EndpointMethodDescription
/v2/generatePOSTCreate a lip sync generation
/v2/generate/uploadPOSTCreate a generation with file uploads
/v2/generate/{id}GETGet generation status and output
/v2/generateGETList your generations
/v2/generate/estimate-costPOSTEstimate generation cost
/v2/generate/batchPOSTCreate a batch of up to 500 generations

Quick Example

1import { SyncClient } from "@sync.so/sdk";
2
3const sync = new SyncClient();
4
5const response = await sync.generations.create({
6 input: [
7 { type: "video", url: "https://your-cdn.com/video.mp4" },
8 { type: "audio", url: "https://your-cdn.com/audio.wav" },
9 ],
10 model: "lipsync-2",
11});
12
13console.log(`Job ID: ${response.id}`);

SDKs

Official client libraries wrap the REST API with typed methods:

  • TypeScript/JavaScriptnpm i @sync.so/sdk (GitHub) | Guide
  • Pythonpip install syncsdk (GitHub) | Guide

What models are available?

ModelBest For
lipsync-2General purpose lip sync — preserves speaker’s unique speaking style
lipsync-2-proPremium quality with enhanced detail for beards, teeth, and facial features
lipsync-1.9.0-betaMaximum speed for simple videos
react-1Expressive lip sync with facial expressions and head movements (up to 15s)

Guides

Frequently Asked Questions

The base URL for all Sync API requests is https://api.sync.so. All endpoints are served over HTTPS. Append the endpoint path to this base URL when making requests, for example https://api.sync.so/v2/generate for creating a lip sync generation.

Include your API key in the x-api-key header with every request. The SDK handles this automatically when you set the SYNC_API_KEY environment variable. Create an API key from the API Keys page in your dashboard. See the Authentication guide for security best practices.

Sync offers official SDKs for Python and TypeScript. Install the Python SDK with pip install syncsdk and the TypeScript SDK with npm i @sync.so/sdk. Both SDKs provide typed methods for creating generations, polling status, estimating costs, and managing assets.