Projects
Build autosave and multi-step render workflows with Open API projects.
Use projects when your integration needs more than a one-off export request.
Typical cases:
- browser or desktop editors with autosave
- multi-step pipelines that upload assets first and render later
- retry-safe workflows where task history should stay attached to one project
When To Use Projects
Prefer /v1/projects when you need to:
- keep
editorStateon the server - update
titleanddescriptionindependently from autosave traffic - upload assets before final render
- create multiple export tasks from the same saved project
If you only need a single render and do not need to save project state, stay with POST /v1/exports.
Projects vs. Stateless Exports
Use POST /v1/projects/{projectId}/exports when you want to render the latest saved project state.
Use POST /v1/exports when you want to submit a full editorState payload and render it immediately without creating a project.
Lifecycle Overview
- Create a project with
POST /v1/projects - Read the full project with
GET /v1/projects/{projectId} - Update metadata with
PATCH /v1/projects/{projectId} - Replace the latest
editorStatewithPOST /v1/projects/{projectId}/sync - Export the saved project with
POST /v1/projects/{projectId}/exports - Delete the project with
DELETE /v1/projects/{projectId}
Metadata vs. Autosave
PATCH /v1/projects/{projectId}updates onlytitleanddescriptionPOST /v1/projects/{projectId}/syncupdates onlyeditorStateandstateVersionGET /v1/projects/{projectId}returns both metadata and the latest persistededitorState
sync is designed for autosave. each call replaces the stored editorState with the provided payload.
Sync Rate Limits
POST /v1/projects/{projectId}/sync is designed for periodic autosave. avoid calling it on every input event.
If the API returns 429 OPEN_API_PROJECT_SYNC_RATE_LIMITED, back off and retry with jitter.
Project Export Tracking
Project-based exports return the same task structure as stateless exports, plus an optional projectId.
That projectId also appears in:
GET /v1/exportsGET /v1/exports/{taskId}- export webhook payloads
Use it to correlate task history back to one project.
Runtime Access
Project routes require runtime OpenAPI access.
If the current account is not eligible for these routes, the API returns 403 OPEN_API_RUNTIME_ACCESS_FORBIDDEN.
Last updated on