Skip to content

Docs

API reference

Provisional. The endpoint set and the response schema below are stable in shape. Field-level detail lands with the API. Treat this as a sketch, not a contract.

POST /v1/jobs

Create an analysis job. Multipart with a media file, or JSON with a presigned media URL. Returns a job id and a status.

GET /v1/jobs/:id

Fetch a job. While it runs, the status is queued or processing and a progress field names the current stage. When it finishes, the status is completed and the result is populated.

The result object

One versioned JSON object. Every report records the model version that produced it and the SHA-256 of the input.

result
{
  "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..."
  }
}

Webhooks

On the Team plan, register a URL and receive the completed job as a POST instead of polling. Delivery is retried on failure, with a signed payload.

Errors

Standard HTTP status codes. A 4xx response carries a machine-readable code and a human-readable message. Rate limits return 429 with a Retry-After header.

This page is a shell. The full, versioned reference is generated from the API schema and ships with the backend.

SyncLens