Tools, not models
You address a tool (ugc-video, text-to-photo, lipsync), and the platform picks
the right model and pipeline. Pass model only when you specifically want to override it.
Read the catalog, don’t hardcode it.
GET /v1/models returns every tool, every
model, and the exact inputs and parameters each accepts. When we add a model, your code
can use it without a change on your side. Narrow with ?tool=ugc-video or
?model=<id>.Video
ugc-video · short-clip · scene-video · motion-control · hook-captionsPhoto
text-to-photo · photo-editAudio
text-to-speech · lipsync · change-voice · add-audio · dialogueGenerating as a creator
Passaccount_id and the run inherits that creator’s look, voice and persona, and the
output lands on their wall in the studio. Without it, the run is workspace-scoped and
generic.
Inputs and parameters
object
Slot key → asset id(s) or public
https URL(s). A URL is adopted as an asset
automatically, so there is no upload step when your media is already on the internet.
Which slots a model takes — and which are required — is in its catalog entry.object
Model parameters like
aspect_ratio, duration, resolution. Validated against the
model’s schema.Uploading your own media
Bytes never pass through the API. Three steps, and the asset id is usable the moment thePUT succeeds:
1
Ask for a presigned upload
POST /v1/uploads with content_type and size_bytes. You get upload_url,
headers and the asset_id it will become.2
PUT the bytes
Straight to storage, with the headers you were given.
3
Complete it
POST /v1/uploads/{id}/complete. This starts thumbnailing and transcoding, and hands
you the finished asset.--image ./face.png just works.
Cost
read keys, and priced by the same function that performs the
debit — so an estimate cannot disagree with the charge. Credits are taken at kick-off;
a run that terminally fails, including a moderation rejection, is refunded
automatically.
Polling
GET /v1/generations/{id} every few seconds. On succeeded, output[] holds the
assets:
failed, error carries the reason — a moderation rejection reads differently from a
provider failure — and your credits are already back.
Next
Publish it
Turn finished media into a post on your creator’s social accounts.
Full reference
Every field, with a live playground.