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
| HTTP | Status | Meaning | Client action |
|---|---|---|---|
| 202 | running | Production or preparation is still active. | Read the same request again later. |
| 200 | succeeded | Final result and billing/media metadata are available. | Archive the media. |
| 409 | failed | The logical request reached a terminal failure. | Do not poll forever; inspect the error. |
| 503 | manual_review | Platform 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 }
}
}