projectId and an
Idempotency-Key, receive a jobId, and poll GET /v1/jobs/{jobId} until it is
done. See Jobs & polling.
Choose an operation
Discover video options
GET /v1/video/options returns everything POST /v1/video/render and the 3D
operations accept right now: narration providers, models and voices; lesson
workflows, teaching capabilities and templates; chess formats and audiences;
renderer readiness; short-form platforms; and artifact kinds. Read it instead of
hard-coding these values. It is free.
Edit your own footage
Give Sigmora your raw clips and a brief, and it produces an edited long-form cut and, if you ask, short-form clips — removing false starts, tightening pacing and packaging the result.1
Add the footage to the project
Import each clip from a public HTTPS URL with Before editing, poll
POST /v1/assets/import, or
upload files from disk with the upload operations (POST /v1/assets/upload/prepare,
then POST /v1/assets/upload/complete). Each returns an asset; its
contentId is the clip id the editor takes.GET /v1/assets/{assetId}/ingest?projectId=... until
ready is true; its contentId is the value to pass in clipIds.2
Submit the edit
shootId is any stable id you choose to group the clips of one shoot.
clipIds are the assets’ contentId values. Set shortsCount for short-form
outputs, and reviewCuts: true to approve the cuts before anything renders.x-sigmora-quote-only) includes it.3
Collect the outputs
Poll the job ids with
GET /v1/jobs/{jobId}. Without reviewCuts, the edit
renders straight through to done. With it, the parent job stops at
awaiting_review — continue below.Review the cuts before rendering
A review-mode edit stops atawaiting_review with a proposal: the cuts it wants
to make, the topics it found, and the moments that would stand alone as shorts.
Nothing renders until the cut is approved.
- Page through the proposal with
GET /v1/jobs/{jobId}/proposal, usingafterandpage.nextAfter(see Pagination). - Approve the cuts you want with
POST /v1/video/edit/approve. You can also drop whole topics, or pick specific topics and moments to cut as shorts.
appliedCutIds takes only ids from the stored proposal; an empty list keeps all
the footage. The approval starts the renders and returns their job ids to poll.
Generate 3D
Describe an object, or send a photo of one, and receive an animated 3D render. Both operations are asynchronous and need GPU capacity — checkavailable in
GET /v1/capabilities first; when they cannot run, the call is refused with
503 capability_unavailable before you are charged.
POST /v1/3d/from-image takes assetUrl — a public or signed URL of the photo —
instead of prompt. Presets are turntable, orbit, dolly_in, float_bob
and beauty. When the job is done, download the result from
artifacts.download with your API key, following the redirect (see
Jobs & polling).
Draft renders
Setdraft: true on POST /v1/video/render for a low-cost 480p review copy.
When you are happy, finalize it with POST /v1/jobs/{jobId}/finalize and the
draft’s projectId: the same video renders at full quality as a new job, and
reuses the draft’s script and narration. Each accepted render is charged; the
same Idempotency-Key returns the same final job and is never charged twice.
A job that is not a draft answers 409 conflict.
offlineSlots: true fills visuals without external image providers, for fully
deterministic output. It cannot be combined with renderer: "blender".
Release checks
Before narration, each render’s script is reviewed against its source for accuracy, fidelity, audience fit and pacing. If the review blocks the script, the job ends asqa_failed before any narration or render cost — read
job.artifacts.scriptReview to see the evidence, fix the input, and submit
again rather than retrying unchanged.
Retries and ownership
- Send a stable
Idempotency-Keywith everyPOST, and reuse it only with the same body. - Accepted async work may answer
200or202. Branch on the body — thejobIdandstatus— not on that difference. - A job from another workspace answers
404 not_found. - A temporary outage reading a job answers
503 upstream_unavailable; retry. It is never reported as a missing job.
More video workflows
Chess videos
Render a full analysis of a Lichess game.
Content intelligence
Analyze a reference video and turn it into a production brief.