Create export task
Idempotency is optional. - If `Idempotency-Key` is provided, request replay uses header idempotency. - If header is omitted but `clientTaskId` is provided, task deduplication uses `clientTaskId`. - If both are omitted, every request creates a new task. - Active Open API export tasks are limited to 2 per user. When exceeded, API returns `422 OPEN_API_EXPORT_CONCURRENCY_LIMIT_EXCEEDED`. - Use this route for one-off export. Use `/v1/projects` and `/v1/projects/{projectId}/exports` when you need persistence.
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 Open API export tasks are limited to 2 per user. 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
ApiKeyAuth Enter your 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
Optional idempotency key for create/finalize style POST requests. When provided, the server replays the first completed response for the same request payload.
Request Body
application/json
length <= 128length <= 3230 | 6050 <= value <= 192050 <= value <= 1920"16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "custom"0.6 <= value <= 8"mp4" | "webm"length <= 1024Response 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": { "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 } } }, "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",
"chargedCreditPool": "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"
}