Validate editor state
Validate editor JSON schema and semantic rules before persistence or export. Semantic checks include keyframe local-time bounds and no-overlap rules within the same track. Unlike persistence and export routes, this endpoint does not require paid runtime access.
Validate editor JSON schema and semantic rules before persistence or export. Semantic checks include keyframe local-time bounds and no-overlap rules within the same track. Unlike persistence and export routes, this endpoint does not require paid runtime access.
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
Request Body
application/json
Response Body
application/json
application/json
application/json
curl -X POST "https://api.indream.ai/v1/editor/validate" \ -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 } } } }'{
"data": {
"valid": true,
"errors": [
{
"code": "string",
"path": "string",
"message": "string"
}
]
},
"meta": {
"capabilitiesVersion": "string"
}
}{
"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"
}