Skip to navigation

sync-api skill

Build sync. into apps with the REST API or the Python and TypeScript SDKs.

Install this skill with npx skills add synchronicity-labs/skills --skill sync-api, or get every skill with the Claude Code plugin. See Agent skills.

What it does

sync-api helps your coding agent build sync. into your own app, backend, script or pipeline. It writes server-side code that uploads media, creates generations with idempotency keys, verifies webhooks, polls as a fallback, and handles errors and concurrency limits, using the REST API or the official Python (syncsdk) and TypeScript (@sync.so/sdk) SDKs.

When to reach for it

What you’re doingReach for
Writing or reviewing code that calls the sync. APIsync-api
Debugging a 429, a webhook or a duplicate chargesync-api
Making one video in this chatlipsync, talking-photo, translate-and-dub
Running a CSV of jobs oncebatch-lipsync

Try

  • “Add an endpoint to my Express app that lipsyncs a video URL to an audio URL with sync.”
  • “Write a Python script that dubs every video in ./in into Spanish”
  • “Add a Next.js route that verifies sync. webhooks”
  • “Our worker keeps getting 429 concurrency_limit_reached. What’s the right fix?”

What you need

Common questions

POST /v2/generate accepts an Idempotency-Key. Created once per job and reused on every retry, it turns a retry after a timeout into a replay of the original generation instead of a second paid one. See Idempotent Requests.

Webhooks, verified with the Sync-Signature header, for production. A periodic poll catches deliveries your endpoint missed.

The SDKs can lag the API. The skill calls that endpoint over HTTP instead of forcing the types.

Wait the time the response gives you, retry with the same idempotency key, and keep at most your plan’s concurrency limit of jobs in flight with a queue on your side. See Concurrency & Rate Limits.

It’s working if

  • The API key lives on the server, never in browser or mobile code.
  • Every create carries an idempotency key that was stored before the call.
  • The webhook handler checks the signature against the raw body before parsing it.