API reference

API reference · Account

Make the first shot on us

POST/api/studio/free-shotSigned in session

A sample still and a camera move made into one video shot by the house for a signed in account that has never made a studio or media job: once per wallet, on the sample model at its shortest length with its defaults, nothing held or charged to the account. The job is the account's own (its job list, its take, its stored copy). A failed or stopped shot gives the claim back, three tries a wallet at most. Refused 409 (code free_shot_used or free_shot_not_first), 403 for a frozen or flagged account, 503 (code free_shot_budget) when the house's budget for free shots is spoken for. While the first shot on us is off this door answers the unknown endpoint 404 (code unknown_endpoint). Same origin only.

Request body

application/json, required

Request body fields
FieldTypeWhat it is
stillrequiredstringOne of "coast", "fashion", "product".
camerarequiredstringOne of "push-in", "pull-out", "orbit", "crane-up", "dolly-zoom", "tracking", "handheld", "drone", "whip-pan", "static".
aspect_ratiostringThe film's shape; the model's own default where it does not make it.
project_idstringThe project (stp_ followed by hex) the shot's stored copy is kept with.

Example

{
  "still": "coast",
  "camera": "push-in",
  "aspect_ratio": "string",
  "project_id": "string"
}

Answer 200

The shot, queued.

Fields of the 200 answer
FieldTypeWhat it is
jobobject
job.idstring
job.kindstringOne of "video", "sound", "still".
job.modelstring
job.statusstringOne of "queued", "in_progress", "completed", "failed", "cancelled".
job.progressinteger or null
job.microsintegerThe hold while running, the charge once settled.
job.created_atinteger
job.completed_atinteger or null
job.expires_atinteger or null
job.errorobject or null
job.error.codestring
job.error.messagestring
job.failoverobjectPresent only when the cheapest provider was unreachable or answered a server error at submit and the job went to the next provider of the same model: how many were tried, why, the first hold, and whether the job is now held dearer. No provider is named.
job.failover.triedinteger
job.failover.reasonsarray of string
job.failover.first_hold_microsinteger
job.failover.dearerboolean
job.storedobject or nullOn GET /api/studio/jobs where stored media is on: the stored copy of the output and where it stands.
job.stored.asset_idstring
job.stored.statusstringOne of "ready", "awaiting", "failed".
job.queueobjectOn GET /api/studio/jobs while the job is queued or running: queued at its provider (with how many requests are ahead of it where the provider's status says one) or being made, and the median seconds this model's takes took from submit to landing over the last 7 days, from at least 5 of them (null with fewer). Nothing is estimated without them.
job.queue.stagestringOne of "queued", "running".
job.queue.aheadinteger or null
job.queue.typical_secondsinteger or null
promptstringThe shot's words, in English, without the camera move, which rides camera.
stillstring
camerastring
secondsnumber
aspect_ratiostring or null

Errors

  • 400OpenAI shaped error.
  • 401OpenAI shaped error.
  • 403OpenAI shaped error.
  • 404OpenAI shaped error.
  • 409OpenAI shaped error.
  • 502OpenAI shaped error.
  • 503OpenAI shaped error.

Every error answers in one shape, with its type, code and the field it names. The whole list is in the docs' Errors section.

Antimatter