Docs
Quickstart
SyncLens is a REST API. Send a media file, poll the job, read the result. This page is enough to get a first result back. The full reference follows the API.
Authenticate
Every request carries a bearer token. Create a key in the dashboard under API keys. The full key is shown once, so store it when you create it.
Authorization: Bearer $SYNCLENS_KEYSubmit a job
Post the media file as multipart form data. The response carries a job id and a status of queued or processing.
curl -s https://api.synclens.io/v1/jobs \
-H "Authorization: Bearer $SYNCLENS_KEY" \
-F "media=@interview.mp4"Read the result
Poll the job until its status is completed, or subscribe to a webhook on the Team plan. The result is one versioned JSON object.
{
"job_id": "job_9f2c...",
"status": "completed",
"result": {
"class": "FakeVideo-RealAudio",
"confidence": { "band": "moderate", "p": 0.71 },
"probabilities": {
"RealVideo-RealAudio": 0.06,
"FakeVideo-FakeAudio": 0.18,
"FakeVideo-RealAudio": 0.71,
"RealVideo-FakeAudio": 0.05
},
"segments": [
{ "start_ms": 0, "end_ms": 5000, "class": "RealVideo-RealAudio", "sync": 0.92 },
{ "start_ms": 5000, "end_ms": 10000, "class": "FakeVideo-RealAudio", "sync": 0.34 }
],
"model_version": "v1.0",
"input_sha256": "b1946ac9..."
}
}The four classes
Every result scores all four combinations of a real or synthetic video track and a real or synthetic audio track.
The class field is the dominant result. The probabilities object carries a number for each of the four. The confidence object carries a band and a probability. Per-segment entries repeat the same shape at roughly five-second resolution, each with a sync score between zero and one.
Large files
For large media, request a presigned upload URL and PUT the bytes straight to storage. The API never receives the file itself. This path is documented in the full reference.
The full reference is coming. For now, start with the quickstart above and the four-class response shape. The endpoint list on the API reference page is provisional.