Ruwana Developer Documentation

Submit once, then follow the same logical request.

Ruwana uses idempotent production requests. Image production currently completes through the original request path; PRO, Video, Motion and Avatar can return a durable running request that you read through the shared request-status route.

Image

LAB Creative, Product and Polish return the completed production response through the original endpoint when successful. The shared request-status route is not currently the public Image polling surface.

PRO, Video, Motion & Avatar

Longer workflows can return HTTP 202 with a requestId, status: "running" and statusUrl. Read that same request until it becomes terminal.

Read a durable request

curl https://platform.ruwana.studio/v1/requests/$REQUEST_ID \
  -H "Authorization: Bearer $RUWANA_API_KEY"

Current public state semantics

HTTPStatusMeaningClient action
202runningProduction or preparation is still active.Read the same request again later.
200succeededFinal result and billing/media metadata are available.Archive the media.
409failedThe logical request reached a terminal failure.Do not poll forever; inspect the error.
503manual_reviewPlatform stopped automatic progression because execution/finalization was ambiguous.Do not create a blind duplicate request.

Example running response shape

Product-specific fields vary, but PRO, Video, Motion and Avatar expose the same durable identity pattern.

{
  "ok": true,
  "requestId": "req_...",
  "status": "running",
  "statusUrl": "/v1/requests/req_...",
  "billing": {
    "currency": "USD",
    "quoted": { "microusd": "...", "usd": 0.0 }
  }
}