Start a design task
Starts an AI design task. The agent creates or edits a canvas based on your prompt.
By default, returns immediately with a job ID. Set wait: true to block until completion.
Authorization
bearerAuth API key from Settings > Developer > REST API. Format: moda_live_...
In: header
Request Body
application/json
Natural-language description of the design task for the AI agent.
UUID of an existing conversation to resume. When provided, the AI agent has full context of all previous interactions. Omit to start a new conversation. The conversation_id is returned in every job response.
uuidUUID of an existing canvas to edit. Omit to create a new canvas.
uuidName for the new canvas. Only used when creating (canvas_id is omitted).
UUID of a brand kit to apply. The agent uses these colors, fonts, and guidelines. If omitted, the team's default brand kit is used automatically. To run without any brand kit, set skip_brand_kit to true.
uuidIf true, no brand kit is applied — even if the team has a default. Overrides brand_kit_id when both are provided.
falseHTTPS URL to receive a webhook POST when the job completes, fails, or is cancelled. See the Webhooks documentation for payload format and signature verification.
uriClient-generated unique key to prevent duplicate job creation. If a job with this key already exists, its status is returned instead of creating a new one.
List of reference images or files for the AI agent to use as inspiration. Each attachment needs a url and type.
Canvas format and dimensions. Controls the output size and layout type (e.g. slides, social media, custom).
AI model tier: 'pro_max' (most capable), 'pro', 'standard', or 'lite' (fastest). Defaults to automatic selection based on task complexity.
"pro_max" | "pro" | "standard" | "lite"List of canvas UUIDs to use as design inspiration. The agent can see these designs and reference their style, layout, or content.
Optional maximum number of slides for slide-generation jobs. When omitted for slides, Moda defaults to an 8-slide target and clamps to your plan limit.
1 <= valueResponse Body
application/json
curl -X POST "https://api.moda.app/v1/jobs" \ -H "Content-Type: application/json" \ -d '{ "prompt": "string" }'{
"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
"canvas_id": "b62c6beb-2de8-4ee5-ac63-068ebe40140b",
"canvas_url": "http://example.com",
"conversation_id": "cc71b11a-25cd-4c2d-9950-df2cc38e3407",
"status": "queued",
"message": "string",
"task": "string",
"progress_percent": 100,
"current_step": "string",
"error": "string",
"created_at": "2019-08-24T14:15:22Z",
"started_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"is_terminal": true,
"can_export": true,
"retry_after_seconds": 0,
"credits": {
"credits_used": 0,
"credits_remaining": 0
}
}