API REFERENCE
The Familiar API
Dub any video from inside your own product: voice + lip-sync in one model, 30 languages.
01.What you can build
- A language toggle on your platform: every upload dubbed into the languages your audience watches.
- A back catalog dubbed on upload: point the pipeline at the archive and thousands of videos run unattended.
- Ad & campaign localization: one master spot into every market, each translation held for brand approval.
- Premium catalogs: films and series through manual review, up to 4K with a true 5.1 or stereo mix.
- Live broadcasts in every language (coming soon): streams dubbed with everyone on camera in their own voice.
- Live commerce (coming soon): shopping streams selling in the buyer's language.
- Faith services & live events (coming soon): a feed per language over WHEP, RTMP, or SRT.
- Creator tools inside your product: your users manage Do Not Translate lists and context from your UI.
02.Base URL
https://api.thefamiliarlab.com/v1
Every request is HTTPS + JSON (uploads are multipart/form-data) and carries your key in the Authorization header -- see Authentication.
03.Quickstart: dub a video into three languages
One request creates the dub; a webhook (or polling) tells you when each language is ready.
/v1/dubscurl -X POST https://api.thefamiliarlab.com/v1/dubs \ -H "Authorization: Bearer $FAMILIAR_API_KEY" \ -F "source_url=https://cdn.yourapp.com/upload.mp4" \ -F "target_langs=es,pt,ja"
{
"dub_id": "dub_31xk9m",
"status": "queued",
"source_lang": null,
"target_langs": ["es", "pt", "ja"],
"review": "auto"
}curl https://api.thefamiliarlab.com/v1/dubs/dub_31xk9m \ -H "Authorization: Bearer $FAMILIAR_API_KEY"
curl -L https://api.thefamiliarlab.com/v1/dubs/dub_31xk9m/output/es \ -H "Authorization: Bearer $FAMILIAR_API_KEY" \ -o dubbed-es.mp4
By default the dub renders immediately. Pass review=manual to pause after translation for your creative directors: pick between options, edit any line, render. The flow is in Transcript & review.
04.How a dub moves
| STATUS | WHAT'S HAPPENING |
|---|---|
queued | Accepted and waiting for a worker. |
transcribing | Speech-to-text with word timestamps; speakers separated. |
translating | Each line translated; your Do Not Translate list and context applied. |
in_review | review=manual only (and every subtitle job); transcript editable until you render. |
rendering | Voice + lip-sync generated together, per language. |
complete | Every language rendered; outputs downloadable. |
failed | Error in the status payload. |
Each target language also carries its own status inside outputs[], so a dub can be rendering overall while Spanish is already complete -- see Create a dub.
05.Languages: 99 in, 30 out
Footage comes in from any of 99 source languages; dubs come out in 30 output languages, any to any, in three quality tiers (best first). Output codes are lowercase ISO (en es pt zh yue ja ko fr de ar id ru it vi th nl el uk no sv da ca hr sr bg sk lt lv be kk); the list, each tier, and the planned live set (experimental) are served at GET /v1/languages -- Languages.
06.Versioning & stability
The version rides the path: everything here is /v1. Within a version, changes are additive only, so tolerate fields and events you don't recognize.
- Additive (no notice needed): new fields, new endpoints, new event types, new languages.
- Breaking (new version): renamed or removed fields, changed semantics; ships as
/v2, with/v1kept through a migration window agreed with your point of contact. - Deprecations: announced in the Changelog and to your integration contact before anything is removed.
07.SDKs
The API is plain HTTPS + JSON -- every example in these docs is runnable curl. Official Python and Node.js SDKs are in progress (SDKs).
08.Access
The API is enterprise-only: private access under a Studio contract, with volume pricing, raised limits, ProRes masters on request, and a named point of contact. Book a call and your key is issued with the contract.