Mockup project CRUD and the render endpoint.
List mockup projects on a board
GET /api/moodboards/{id}/mockup-projects
Create
POST /api/moodboards/{id}/mockup-projects
{
"name": "Hero mockup",
"device": "iphone" | "iphone-pro-max" | "ipad" | "ipad-mini" |
"macbook-air" | "macbook-pro" | "imac" |
"double-iphone" | "browser" | "grid" | "no-device"
}
Returns the new project’s full state.
Get
GET /api/moodboards/{id}/mockup-projects/{pid}
Returns:
{
"id": "…",
"name": "…",
"device": "iphone",
"screen_source_url": "/media/…",
"transform": {
"position": { "x": 0, "y": 0, "z": 0 },
"rotation": { "x": 0, "y": 0, "z": 0 },
"scale": { "x": 1, "y": 1, "z": 1 }
},
"dof": {
"enabled": true,
"focus_distance": 10.0,
"aperture": 2
},
"background": { "mode": "gradient", "params": { … } },
"keyframes": [ … ],
"duration_seconds": 6
}
Update
PUT /api/moodboards/{id}/mockup-projects/{pid}
{ … full project state … }
Render
POST /api/mockup/render
{
"board_id": "…",
"project_id": "…",
"format": "mp4" | "webm" | "mov",
"size_preset": "1080p" | "square" | "vertical" | "4k",
"fps": 60,
"transparent_background": false
}
Returns:
{ "job_id": "…", "status": "queued" }
Poll via GET /api/mockup/render/{job_id} — same pattern as the video project render.
Delete
DELETE /api/moodboards/{id}/mockup-projects/{pid}
Leave a Reply