Response headers

Every /v1/... response carries a stable set of headers for tracing and player hints.

Always present

HeaderDescription
X-Request-IdEchoes incoming X-Request-Id if it matches ^[\w-]{4,64}$, else fresh req_<8 hex>. Use in support tickets.

On all asset responses

HeaderDescription
X-Motioness-Asset-IdContent-addressed asset id. Stable across calls with same opts.
X-Motioness-Stagequeued, vision, stage1, stage2, merge, or ready at response time.

On 202 (pending) only

HeaderDescription
X-Motioness-Eta-MsServer-estimated remaining time in ms. Static (model, pipeline) table for v1.1.
Retry-AfterSeconds (rounded ETA). Standard HTTP.

On 200 (ready) only

HeaderDescription
X-Motioness-Loopnative (loop_capable model) or crossfade (Free tier post-stitch). Hint for the player.
Server-TimingPer-stage latency breakdown. vision;dur=2200, stage1;dur=4820, merge;dur=900. (Coming in v1.2.)
cache-controlpublic, max-age=31536000, immutable — content-addressed, never stale
cf-cache-statusHIT if served from edge cache, MISS if from R2/D1

On error responses

HeaderDescription
X-Request-IdAlways — quote in support tickets
X-Motioness-Asset-IdSet when the error is asset-scoped (502 last-failed, 429 quota)

Custom request headers Motioness reads

HeaderEffect
X-Request-IdSets the request id (validated against ^[\w-]{4,64}$)
Idempotency-KeySame as ?idem=… query param. Forces a distinct asset from the same source.
Last-Event-IDSSE reconnect cursor. Sent automatically by browser EventSource.

CORS

All proxy responses set Access-Control-Allow-Origin: *. Proxy URLs work cross-origin in <video> and <img>.

Ask a question... ⌘I