Api referenceExports
Create export task
Idempotency is optional.
- If
Idempotency-Keyis provided, request replay uses header idempotency. - If header is omitted but
clientTaskIdis provided, task deduplication usesclientTaskId. - If both are omitted, every request creates a new task.
- Active cloud exports are limited by the workspace subscription entitlement. Web, Open API, and Indream Agent exports share the same workspace concurrency pool; when exceeded, API returns
422 OPEN_API_EXPORT_CONCURRENCY_LIMIT_EXCEEDED. - Use this route for one-off export. Use
/v1/projectsand/v1/projects/{projectId}/exportswhen you need persistence.
Authorization
BearerAuth AuthorizationBearer <token>
Send an existing generated API key as Authorization: Bearer sk_indream_....
OAuth access tokens are not accepted by the Open API.
Enter the API key manually in the interactive docs playground.
The value is stored only in the current browser and is not injected from server environment variables.
In: header
Header Parameters
Idempotency-Key?string
Optional idempotency key for project creation and export creation requests. When provided, the server replays the first completed response for the same request payload.
Request Body
application/json
clientTaskId?string
Length
length <= 128filename?string
Length
1 <= length <= 255editorState*
stateSchemaVersion*string
fps*integer
Value in
30 | 60compositionWidth?integer
Range
50 <= value <= 1920compositionHeight?integer
Range
50 <= value <= 1920ratio*string
Value in
"16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "custom"scale*number
Range
0.6 <= value <= 8format*string
Value in
"mp4" | "webm"callbackUrl?string
Length
length <= 1024callbackHeaders?
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.indream.ai/v1/exports" \ -H "Content-Type: application/json" \ -d '{ "editorState": { "stateSchemaVersion": "v1", "compositionWidth": 50, "compositionHeight": 50, "timebaseTicksPerSecond": 240000, "tracks": [ { "id": "string", "items": [ "string" ], "hidden": true, "muted": true } ], "assets": { "property1": { "id": "string", "type": "image", "filename": "string", "size": 0, "mimeType": "string", "width": 1, "height": 1 }, "property2": { "id": "string", "type": "image", "filename": "string", "size": 0, "mimeType": "string", "width": 1, "height": 1 } }, "items": { "property1": { "id": "string", "type": "image", "durationTicks": 1, "startTicks": 0, "isDraggingInTimeline": true, "top": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "left": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "width": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "height": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "scaleX": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "scaleY": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "opacity": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "assetId": "string", "keepAspectRatio": true, "borderRadius": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "rotation": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] } }, "property2": { "id": "string", "type": "image", "durationTicks": 1, "startTicks": 0, "isDraggingInTimeline": true, "top": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "left": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "width": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "height": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "scaleX": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "scaleY": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "opacity": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "assetId": "string", "keepAspectRatio": true, "borderRadius": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] }, "rotation": { "value": 0, "keyframes": [ { "timeTicks": 0, "value": 0 } ] } } }, "transitions": { "property1": { "id": "string", "trackId": "string", "fromClipId": "string", "toClipId": "string", "type": "fade", "durationTicks": 1 }, "property2": { "id": "string", "trackId": "string", "fromClipId": "string", "toClipId": "string", "type": "fade", "durationTicks": 1 } } }, "stateSchemaVersion": "v1", "fps": 30, "ratio": "16:9", "scale": 0.6, "format": "mp4" }'{
"data": {
"taskId": "string",
"projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
"createdAt": "2019-08-24T14:15:22Z",
"durationSeconds": 0,
"billedStandardSeconds": 0,
"chargedCredits": "string"
},
"meta": {}
}{
"type": "FORBIDDEN",
"title": "Forbidden",
"status": 403,
"detail": "The current account is not eligible for this Open API route",
"errorCode": "OPEN_API_RUNTIME_ACCESS_FORBIDDEN"
}{
"type": "FORBIDDEN",
"title": "Forbidden",
"status": 403,
"detail": "The current account is not eligible for this Open API route",
"errorCode": "OPEN_API_RUNTIME_ACCESS_FORBIDDEN"
}{
"type": "FORBIDDEN",
"title": "Forbidden",
"status": 403,
"detail": "The current account is not eligible for this Open API route",
"errorCode": "OPEN_API_RUNTIME_ACCESS_FORBIDDEN"
}{
"type": "FORBIDDEN",
"title": "Forbidden",
"status": 403,
"detail": "The current account is not eligible for this Open API route",
"errorCode": "OPEN_API_RUNTIME_ACCESS_FORBIDDEN"
}{
"type": "FORBIDDEN",
"title": "Forbidden",
"status": 403,
"detail": "The current account is not eligible for this Open API route",
"errorCode": "OPEN_API_RUNTIME_ACCESS_FORBIDDEN"
}