A project-first API.
Create an editable project, submit a generation, and read its status. Every private resource is checked against the authenticated owner.
POST /api/projects
{"title":"Launch","templateId":"product-launch","mode":"video","ratio":"16:9"}
POST /api/projects/:id/generate
{"prompt":"Introduce our app in three scenes",
"skillId":"product-launch",
"idempotencyKey":"<UUID>"}
GET /api/jobs
GET /api/projects/:id
PATCH /api/projects/:id
{"revision":1,"document":{...}}Use a new UUID for each intended generation. Reuse the UUID when retrying the same request. A stale revision returns 409; insufficient credits returns 402. Rate limiting returns 429.
Other resources
/api/assets, /api/brand-kits, /api/projects/:id/versions, and /api/jobs/:id/cancel support the studio workflow. Upload assets with multipart form data under the file field.
Design conversations and rendering
Create a conversation with POST /api/design-agent/threads, then send a brief to /threads/:id/messages under the same prefix. Each message reserves 100 credits. Poll the conversation for replies, plans, files and approval requests. Resume the exact pending decisions through /threads/:id/resume; up to three review continuations share the original allowance.
Upload source files through /threads/:id/attachments. Managed render configuration is at GET /api/render/config; create jobs at POST /api/render/jobs using owned file IDs, relative paths and a fresh idempotency key. Rendering reserves 60 credits per started 30 seconds. Completed source and video files use authenticated /api/design-agent/threads/:id/files/:filedownloads, including byte ranges for playback.
Private learning
GET /api/design-agent/learning lists your own learned observations and evidence. Follow nextOffset as the next request's offset. Use DELETE /api/design-agent/learning/:skill/:keyto forget a note. Explicit saved preferences remain at /api/design-agent/memory. These operations use no model credits. Deleting a conversation requires pending turns and renders to be stopped first.