Projects

A project owns a sandboxed Next.js app, its message history, and its file state.

List projects

http
GET /api/v1/projects
json
{ "projects": [{ "id": "…", "name": "snug-comet", "createdAt": "…", "updatedAt": "…" }] }

Create a project

http
POST /api/v1/projects
json
{ "name": "my-app", // optional; auto-generated kebab-case if omitted "prompt": "Build me…", // optional; if present, kicks off an initial agent run "modelId": "claude-opus-4-7", // optional; defaults to Claude Opus 4.7 "images": [{ "url": "https://…", "mimeType": "image/png" }] // optional }

Response:

json
{ "project": { "id": "…", "name": "my-app" }, "runId": "…" // present when prompt was provided }

Send a follow-up prompt

http
POST /api/v1/projects/{id}/messages
json
{ "prompt": "Add dark mode", "modelId": "claude-sonnet-4-6", "images": [] }

Response: { "messageId": "…", "runId": "…" }

List messages

http
GET /api/v1/projects/{id}/messages