Calendar-dated API version pin. New integrations should pin 2026-05-01 to opt into the newest response shapes. For back-compat the server also accepts requests with no header and resolves them to the current default (today: 2026-04-12); that default advances on each sunset date. Any unsupported value returns 400 unsupported_version.
For an agent handing work to Moda's agent on a user's behalf: the user's own words naming Moda as the ACTOR ("have the Moda agent design it"), quoted verbatim. Recorded on the usage event so the delegation decision is auditable. Not validated and not interpreted — it grounds the decision, it does not gate it. Optional here (the app and existing API integrations start their own tasks and have no user to quote); the agent surfaces that expose delegation as a choice — moda task submit and the connector's task_delegate — require it.
Prefixed conv_ wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, a bare UUID string is also accepted in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is the prefix over a UUID body (conv_00000000-0000-4000-8000-000000000000). All three are permanent, supported inputs; only the canonical form is ever emitted.
Prefixed cvs_ wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, a bare UUID string is also accepted in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is the prefix over a UUID body (cvs_00000000-0000-4000-8000-000000000000). All three are permanent, supported inputs; only the canonical form is ever emitted.
Prefixed cvs_ wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, a bare UUID string is also accepted in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is the prefix over a UUID body (cvs_00000000-0000-4000-8000-000000000000). All three are permanent, supported inputs; only the canonical form is ever emitted.
Prefixed bk_ wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, a bare UUID string is also accepted in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is the prefix over a UUID body (bk_00000000-0000-4000-8000-000000000000). All three are permanent, supported inputs; only the canonical form is ever emitted.
If true, no brand kit is applied — every brand-kit source is suppressed, including the canvas's own kit, the team default, and any explicit brand_kit_id override. Use only when the design must be unbranded; to merely leave the canvas's existing kit alone, omit brand_kit_id instead.
HTTPS URL to receive a webhook POST when the job completes, fails, or is cancelled. See the Webhooks documentation for payload format and signature verification.
Client-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 item is either a URL-shape attachment ({url, name?, type?}) or a file-id-shape attachment ({file_id, role, label?}) referencing a file previously uploaded via POST /v1/uploads. The two shapes are distinguished by their required fields (url vs file_id).
AI model tier: 'pro' (best for complex tasks), 'pro-fast' (the same quality as Pro with faster output and higher credit usage), 'fable-5.1' (Claude Fable 5.1 at low effort; premium plans only), 'fable-5.2' (Claude Fable 5.2 at low effort; premium plans only), 'standard', 'lite', 'kimi-k2.5' (Fireworks-hosted Kimi K2.5), 'kimi-k2.6' (Fireworks-hosted Kimi K2.6), or 'gpt-5.6' (OpenAI GPT-5.6 at high reasoning). Defaults to automatic selection based on task complexity.
List of prefixed cvs_ IDs to use as design inspiration. The agent can see these designs and reference their style, layout, or content.
Prefixed cvs_ wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, a bare UUID string is also accepted in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is the prefix over a UUID body (cvs_00000000-0000-4000-8000-000000000000). All three are permanent, supported inputs; only the canonical form is ever emitted.
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. Rejected with a role='import' attachment — an existing-deck edit keeps the deck's own slide count.
Auto-export preferences applied when the task finishes. The finished design is rendered to result.export (and the completion webhook), so a follow-up POST /v1/canvases/{id}/export for the same canvas hits the cache instead of re-rendering. Omit to use the canvas category default (slides→PPTX, pdf→PDF, others→PNG); pass {enabled: false} to opt out of the auto-export entirely. Multi-page PNG/JPEG bundles into a .zip of per-page files; result.export.format reflects what was actually delivered (png, jpeg, pdf, pptx, or zip).
Show child attributes
Response
Successful Response
Canonical wire-format for every async design operation.
All consumers -- REST, webhooks, SSE, MCP -- serialize through
Task.from_db() so the shape is always consistent.
Number of attempts STARTED (claimed by a worker) — never attempts completed. 0 means the task has never been claimed. The claim itself increments the counter, so a task on its first attempt reports 1 while RUNNING and stays at 1 through that attempt's retry backoff. The retry signal is therefore status == "queued" && attempts_started >= 1 (a queued task that has already burned an attempt), NOT >= 2. Unlike attempt, this is the raw counter and is not floored to 1.
ISO 8601 timestamp of when the FIRST attempt was claimed. null means unknown — either the task has never started, or it predates this field being recorded. started_at remains the CURRENT attempt's start, so on a retried task the two differ and the gap is the real wall-clock age of the work.
Populated when status is succeeded, and partially populated for
some in-flight tasks (a remix surfaces its source canvas before the design
task finishes). Extra keys are permitted so synchronous-completion payloads
pass through without schema churn.
Error info: {message, retryable, attempt}. Present for failed tasks, and also for a NON-terminal task that carries an error from an earlier attempt — on a non-terminal task this always describes the PREVIOUS, already-dead attempt, never the one currently in flight. attempt is the attempts_started value the error is tied to (0 when the failure happened before any claim).
Suggested milliseconds to wait before the next poll. Null for terminal tasks.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Moda","description":"Guides, API reference, and MCP server docs for Moda — the AI design tool for social posts, slide decks, and visual content.","colors":{"primary":"#850AC2","light":"#C155F6","dark":"#420561"},"logo":{"light":"https://mintcdn.com/moda-997c0526/_eKavTfp2ZbkSuMz/images/chameleon.svg?fit=max\u0026auto=format\u0026n=_eKavTfp2ZbkSuMz\u0026q=85\u0026s=d0de9a6ddda2829d62cfe525fbb38722","dark":"https://mintcdn.com/moda-997c0526/_eKavTfp2ZbkSuMz/images/chameleon.svg?fit=max\u0026auto=format\u0026n=_eKavTfp2ZbkSuMz\u0026q=85\u0026s=d0de9a6ddda2829d62cfe525fbb38722","href":"https://moda.app"},"favicon":"https://mintcdn.com/moda-997c0526/_eKavTfp2ZbkSuMz/images/chameleon.svg?fit=max\u0026auto=format\u0026n=_eKavTfp2ZbkSuMz\u0026q=85\u0026s=d0de9a6ddda2829d62cfe525fbb38722","appearance":{"default":"light"},"footer":{"socials":{"x":"https://x.com/trymoda","linkedin":"https://www.linkedin.com/company/trymoda","instagram":"https://www.instagram.com/modacanvas"}},"search":{"prompt":"Search Moda docs"},"seo":{"indexing":"all"},"fonts":{"family":"Inter","weight":400},"integrations":{"posthog":{"apiKey":"phc_5H829H6PUnXGRYUhogPS4rBboCirSiz0SqaEvB5OUco","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Moda app","icon":"arrow-up-right-from-square","href":"https://moda.app"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@moda.app"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moda-997c0526","hasAudioNarration":false,"actualSubdomain":"moda-997c0526","customDomains":["docs.moda.app"],"gitSource":{"type":"github","owner":"nullframe","repo":"studio","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6000d2cb39c06ba022de9","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"API Reference","count":183},{"language":"default","tag":"Help Center","count":28},{"language":"default","tag":"canvas-actions","count":28},{"language":"default","tag":"cloud-computers","count":24},{"language":"default","tag":"media","count":22},{"language":"default","tag":"websites","count":12},{"language":"default","tag":"MCP Server (Legacy)","count":11},{"language":"default","tag":"canvases","count":11},{"language":"default","tag":"drive","count":10},{"language":"default","tag":"voices","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/tasks/start-design-task","slug":"/api-reference/tasks/start-design-task","pageMetadata":{"title":"Start Design Task","description":"Start an AI design task. Returns immediately with a task ID for polling.","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /tasks","href":"/api-reference/tasks/start-design-task","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Start an AI design task. Returns immediately with a task ID for polling.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Start Design Task","description":"Start an AI design task. Returns immediately with a task ID for polling.","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /tasks","href":"/api-reference/tasks/start-design-task","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["tasks"],"summary":"Start Design Task","description":"Start an AI design task. Returns immediately with a task ID for polling.","operationId":"startTask","security":["6078aa4d-3fbe-4fca-81f5-93f5155b0dfe"],"requestBody":"2e728530-ad95-45db-9d95-de06596503af","responses":{"200":"05aac0ec-6e65-470a-bff5-154c9501c7ec","401":"2976d8df-c60c-463b-95e5-b5510adcd0ff","402":"f6f7b7b5-48dd-4aba-8fd7-801f67c9b75a","403":"ab827a2d-43a8-4b9b-bb53-1c70dcd3cf2f","404":"8b9875f7-85fe-4c36-8b59-dfa232b5556d","409":"f3c2f634-7d41-4021-bbf0-4556c8a12638","422":"bf1df75d-cc14-49f1-a0a6-f245e378acb9","429":"c1275c8d-b930-41ce-8e89-1d0b3db237b3","500":"dc77bb73-5b1b-4843-a146-0cf317cd53b9"},"parameters":["cddc07e0-d0c6-4892-9bbc-2f4d360994ec"],"method":"post","type":"path","servers":["900bd1dd-1657-41cc-9e95-57b7af147e04"],"path":"/tasks","baseUrlOptions":["https://api.moda.app/v1"],"title":"Start Design Task","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"cddc07e0-d0c6-4892-9bbc-2f4d360994ec":{"name":"Moda-Version","in":"header","required":false,"description":"Calendar-dated API version pin. New integrations should pin `2026-05-01` to opt into the newest response shapes. For back-compat the server also accepts requests with no header and resolves them to the current default (today: `2026-04-12`); that default advances on each [sunset date](/api-reference/versioning). Any unsupported value returns 400 `unsupported_version`.","example":"2026-05-01","schema":{"type":"string","enum":["2026-04-12","2026-05-01"],"default":"2026-05-01","example":"2026-05-01","isRequired":false,"description":"Calendar-dated API version pin. New integrations should pin `2026-05-01` to opt into the newest response shapes. For back-compat the server also accepts requests with no header and resolves them to the current default (today: `2026-04-12`); that default advances on each [sunset date](/api-reference/versioning). Any unsupported value returns 400 `unsupported_version`.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"prompt":{"type":"string","title":"Prompt","description":"Natural-language description of the design task for the AI agent.","isRequired":true,"uniqueKey":"prompt","typeLabel":"string"},"user_request_quote":{"oneOf":[{"type":"string","title":"User Request Quote","description":"For an agent handing work to Moda's agent on a user's behalf: the user's own words naming Moda as the ACTOR (\"have the Moda agent design it\"), quoted verbatim. Recorded on the usage event so the delegation decision is auditable. Not validated and not interpreted — it grounds the decision, it does not gate it. Optional here (the app and existing API integrations start their own tasks and have no user to quote); the agent surfaces that expose delegation as a choice — ``moda task submit`` and the connector's ``task_delegate`` — require it.","uniqueKey":"user_request_quote.oneOf.0","typeLabel":"string"},{"type":"null","title":"User Request Quote","description":"For an agent handing work to Moda's agent on a user's behalf: the user's own words naming Moda as the ACTOR (\"have the Moda agent design it\"), quoted verbatim. Recorded on the usage event so the delegation decision is auditable. Not validated and not interpreted — it grounds the decision, it does not gate it. Optional here (the app and existing API integrations start their own tasks and have no user to quote); the agent surfaces that expose delegation as a choice — ``moda task submit`` and the connector's ``task_delegate`` — require it.","uniqueKey":"user_request_quote.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_request_quote","typeLabel":"string | null"},"conversation_id":{"oneOf":[{"type":"string","title":"Conversation Id","description":"Prefixed ``conv_`` wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, **a bare UUID string is also accepted** in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is **the prefix over a UUID body** (``conv_00000000-0000-4000-8000-000000000000``). All three are permanent, supported inputs; only the canonical form is ever emitted.","pattern":"^conv_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","example":"conv_01HT9WK8N3M2J4A5Z6P7Q8R9TV","uniqueKey":"conversation_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Conversation Id","description":"Prefixed ``conv_`` ID of an existing conversation to resume. When provided, the AI agent has full context of all previous interactions in the conversation. Omit to start a new conversation. The conversation_id is returned in every job response.","uniqueKey":"conversation_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"conversation_id","typeLabel":"string | null"},"canvas_id":{"oneOf":[{"type":"string","title":"Canvas Id","description":"Prefixed ``cvs_`` wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, **a bare UUID string is also accepted** in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is **the prefix over a UUID body** (``cvs_00000000-0000-4000-8000-000000000000``). All three are permanent, supported inputs; only the canonical form is ever emitted.","pattern":"^cvs_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","example":"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV","uniqueKey":"canvas_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canvas Id","description":"Prefixed ``cvs_`` ID of an existing canvas to edit. Omit to create a new canvas. When omitted and the applied brand kit has a saved slides theme canvas, that canvas's page layouts are used as the layout source for generated slides.","uniqueKey":"canvas_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvas_id","typeLabel":"string | null"},"template_canvas_id":{"oneOf":[{"type":"string","title":"Template Canvas Id","description":"Prefixed ``cvs_`` wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, **a bare UUID string is also accepted** in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is **the prefix over a UUID body** (``cvs_00000000-0000-4000-8000-000000000000``). All three are permanent, supported inputs; only the canonical form is ever emitted.","pattern":"^cvs_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","example":"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV","uniqueKey":"template_canvas_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Template Canvas Id","description":"Prefixed ``cvs_`` ID of a source canvas to remix. A new canvas is created in your team as a copy of the source and the agent runs against the copy. Accepts any canvas you can read from your team — the source does NOT need to be flagged as a template. When provided, the skill the agent runs is selected automatically: same brand kit as the source → content-only remix; different brand kit → full rebrand (colors, fonts, copy, images). Mutually exclusive with ``canvas_id``.","uniqueKey":"template_canvas_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"template_canvas_id","typeLabel":"string | null"},"canvas_name":{"oneOf":[{"type":"string","title":"Canvas Name","description":"Name for the new canvas. Used when creating (``canvas_id`` omitted) or when remixing via ``template_canvas_id`` (overrides the default ``Remix of \u003csource>``).","uniqueKey":"canvas_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canvas Name","description":"Name for the new canvas. Used when creating (``canvas_id`` omitted) or when remixing via ``template_canvas_id`` (overrides the default ``Remix of \u003csource>``).","uniqueKey":"canvas_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvas_name","typeLabel":"string | null"},"brand_kit_id":{"oneOf":[{"type":"string","title":"Brand Kit Id","description":"Prefixed ``bk_`` wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, **a bare UUID string is also accepted** in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is **the prefix over a UUID body** (``bk_00000000-0000-4000-8000-000000000000``). All three are permanent, supported inputs; only the canonical form is ever emitted.","pattern":"^bk_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","example":"bk_01HT9WK8N3M2J4A5Z6P7Q8R9TV","uniqueKey":"brand_kit_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Brand Kit Id","description":"Prefixed ``bk_`` ID of a brand kit to apply. The agent uses these colors, fonts, and guidelines. If omitted, the resolution rule is: when ``canvas_id`` is supplied (or ``conversation_id`` is passed to resume an existing canvas) the canvas's existing brand kit is preserved (the team's default brand kit is used as a fallback only when the canvas has no kit of its own); when creating a new canvas the team's default brand kit applies, or the design runs unbranded if the team has no default. To run without any brand kit (overriding both the canvas's kit and the team default), set skip_brand_kit=true.","uniqueKey":"brand_kit_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand_kit_id","typeLabel":"string | null"},"skip_brand_kit":{"type":"boolean","title":"Skip Brand Kit","description":"If true, no brand kit is applied — every brand-kit source is suppressed, including the canvas's own kit, the team default, and any explicit ``brand_kit_id`` override. Use only when the design must be unbranded; to merely leave the canvas's existing kit alone, omit ``brand_kit_id`` instead.","default":false,"uniqueKey":"skip_brand_kit","typeLabel":"boolean"},"callback_url":{"oneOf":[{"type":"string","title":"Callback Url","description":"HTTPS URL to receive a webhook POST when the job completes, fails, or is cancelled. See the Webhooks documentation for payload format and signature verification.","uniqueKey":"callback_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Callback Url","description":"HTTPS URL to receive a webhook POST when the job completes, fails, or is cancelled. See the Webhooks documentation for payload format and signature verification.","uniqueKey":"callback_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"callback_url","typeLabel":"string | null"},"idempotency_key":{"oneOf":[{"type":"string","title":"Idempotency Key","description":"Client-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.","uniqueKey":"idempotency_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Idempotency Key","description":"Client-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.","uniqueKey":"idempotency_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"idempotency_key","typeLabel":"string | null"},"attachments":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"object","title":"AttachmentInput","required":["url"],"properties":{"url":{"type":"string","title":"Url","description":"Public URL of the image or file.","isRequired":true,"uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.0.url","typeLabel":"string"},"name":{"oneOf":[{"type":"string","title":"Name","description":"Display name for the attachment.","uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"Display name for the attachment.","uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.0.name","typeLabel":"string | null"},"type":{"type":"string","enum":["image","pdf","pptx","url"],"title":"Type","description":"Attachment type: 'image', 'pdf', 'pptx', or 'url'.","default":"image","uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"AttachmentInput · object"},{"type":"object","title":"FileAttachment","description":"Reference to a previously uploaded file by its prefixed ``file_`` id.\n\nPaired with ``AttachmentInput`` under ``StartTaskRequest.attachments`` via\nPydantic smart-union. The caller uploads a file first via ``POST /v1/uploads``\n(or the MCP upload-URL flow) and then passes the resulting ``file_id`` here\nwith a ``role`` that tells the agent how to treat the file.","required":["file_id","role"],"properties":{"file_id":{"type":"string","pattern":"^file_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","title":"File Id","description":"Prefixed ``file_`` ID returned by ``POST /v1/uploads``.","example":"file_01HT9WK8N3M2J4A5Z6P7Q8R9TV","isRequired":true,"uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.1.file_id","typeLabel":"string"},"role":{"type":"string","enum":["source","reference","asset","import"],"title":"Role","description":"How the agent should treat this file: 'source' = extract content from it; 'reference' = emulate its style without reproducing verbatim; 'asset' = use the file directly in outputs (hint only — directly-use behavior evolves with ENG-2549). 'import' = convert a PowerPoint (.pptx) deck into editable slides on the canvas, then design against it. Only valid for PPTX attachments; any other file type is rejected.","example":"source","isRequired":true,"uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.1.role","typeLabel":"enum\u003cstring>"},"label":{"oneOf":[{"type":"string","title":"Label","description":"Optional human-facing label.","example":"Q2 strategy brief","uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.1.label.oneOf.0","typeLabel":"string"},{"type":"null","title":"Label","description":"Optional human-facing label.","example":"Q2 strategy brief","uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.1.label.oneOf.1","typeLabel":"null"}],"uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.1.label","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"attachments.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"FileAttachment · object"}],"uniqueKey":"attachments.oneOf.0.items.[INDEX]","typeLabel":"AttachmentInput · object | FileAttachment · object"},"title":"Attachments","description":"List of reference images or files for the AI agent to use as inspiration. Each item is either a URL-shape attachment (``{url, name?, type?}``) or a file-id-shape attachment (``{file_id, role, label?}``) referencing a file previously uploaded via ``POST /v1/uploads``. The two shapes are distinguished by their required fields (``url`` vs ``file_id``).","uniqueKey":"attachments.oneOf.0","typeLabel":"(AttachmentInput · object | FileAttachment · object)[]"},{"type":"null","title":"Attachments","description":"List of reference images or files for the AI agent to use as inspiration. Each item is either a URL-shape attachment (``{url, name?, type?}``) or a file-id-shape attachment (``{file_id, role, label?}``) referencing a file previously uploaded via ``POST /v1/uploads``. The two shapes are distinguished by their required fields (``url`` vs ``file_id``).","uniqueKey":"attachments.oneOf.1","typeLabel":"null"}],"uniqueKey":"attachments","typeLabel":"(AttachmentInput · object | FileAttachment · object)[] | null"},"format":{"oneOf":[{"type":"object","title":"FormatInput","description":"Canvas format and dimensions. Controls the output size and layout type (e.g. slides, social media, custom).","properties":{"category":{"oneOf":[{"type":"string","title":"Category","description":"Format category: 'slides', 'social', 'carousel', 'pdf', 'diagram', 'ui', 'animation', 'prints', 'web-ads', or 'other'. Controls the layout approach.","enum":["slides","social","carousel","pdf","diagram","ui","animation","prints","web-ads","other"],"uniqueKey":"format.oneOf.0.category.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Category","description":"Format category: 'slides', 'social', 'carousel', 'pdf', 'diagram', 'ui', 'animation', 'prints', 'web-ads', or 'other'. Controls the layout approach.","uniqueKey":"format.oneOf.0.category.oneOf.1","typeLabel":"null"}],"uniqueKey":"format.oneOf.0.category","typeLabel":"enum\u003cstring> | null"},"width":{"oneOf":[{"type":"integer","title":"Width","description":"Canvas width in pixels. Common: 1920x1080 (slides), 1080x1080 (social square), 1080x1920 (social story). Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.width.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Width","description":"Canvas width in pixels. Common: 1920x1080 (slides), 1080x1080 (social square), 1080x1920 (social story). Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.width.oneOf.1","typeLabel":"null"}],"uniqueKey":"format.oneOf.0.width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","title":"Height","description":"Canvas height in pixels. Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.height.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Height","description":"Canvas height in pixels. Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.height.oneOf.1","typeLabel":"null"}],"uniqueKey":"format.oneOf.0.height","typeLabel":"integer | null"},"label":{"oneOf":[{"type":"string","title":"Label","description":"Human-readable format label (e.g. 'Instagram Story', '16:9 Slides'). Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.label.oneOf.0","typeLabel":"string"},{"type":"null","title":"Label","description":"Human-readable format label (e.g. 'Instagram Story', '16:9 Slides'). Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.label.oneOf.1","typeLabel":"null"}],"uniqueKey":"format.oneOf.0.label","typeLabel":"string | null"},"dimensions":{"oneOf":[{"type":"string","title":"Dimensions","description":"Carousel dimensions preset. 'square' = 1080x1080, 'linkedin' = 1080x1350 LinkedIn landscape, 'portrait' = 1080x1920 Instagram story. Only used when ``category='carousel'``. Rejected with a ``role='import'`` attachment — the deck sets its own size.","enum":["square","linkedin","portrait"],"uniqueKey":"format.oneOf.0.dimensions.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Dimensions","description":"Carousel dimensions preset. 'square' = 1080x1080, 'linkedin' = 1080x1350 LinkedIn landscape, 'portrait' = 1080x1920 Instagram story. Only used when ``category='carousel'``. Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.dimensions.oneOf.1","typeLabel":"null"}],"uniqueKey":"format.oneOf.0.dimensions","typeLabel":"enum\u003cstring> | null"},"page_count":{"oneOf":[{"type":"integer","title":"Page Count","description":"Number of carousel pages to generate. When omitted, Moda picks a default target and clamps to your plan limit. Only used when ``category='carousel'``. Rejected with a ``role='import'`` attachment — the deck sets its own size.","minimum":1,"uniqueKey":"format.oneOf.0.page_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Page Count","description":"Number of carousel pages to generate. When omitted, Moda picks a default target and clamps to your plan limit. Only used when ``category='carousel'``. Rejected with a ``role='import'`` attachment — the deck sets its own size.","uniqueKey":"format.oneOf.0.page_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"format.oneOf.0.page_count","typeLabel":"integer | null"}},"uniqueKey":"format.oneOf.0","typeLabel":"FormatInput · object"},{"type":"null","description":"Canvas format and dimensions. Controls the output size and layout type (e.g. slides, social media, custom).","uniqueKey":"format.oneOf.1","typeLabel":"null"}],"uniqueKey":"format","typeLabel":"FormatInput · object | null"},"model_tier":{"oneOf":[{"type":"string","title":"Model Tier","description":"AI model tier: 'pro' (best for complex tasks), 'pro-fast' (the same quality as Pro with faster output and higher credit usage), 'fable-5.1' (Claude Fable 5.1 at low effort; premium plans only), 'fable-5.2' (Claude Fable 5.2 at low effort; premium plans only), 'standard', 'lite', 'kimi-k2.5' (Fireworks-hosted Kimi K2.5), 'kimi-k2.6' (Fireworks-hosted Kimi K2.6), or 'gpt-5.6' (OpenAI GPT-5.6 at high reasoning). Defaults to automatic selection based on task complexity.","enum":["pro","pro-fast","fable-5.1","fable-5.2","standard","lite","kimi-k2.5","kimi-k2.6","gpt-5.6"],"uniqueKey":"model_tier.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Model Tier","description":"AI model tier: 'pro' (best for complex tasks), 'pro-fast' (the same quality as Pro with faster output and higher credit usage), 'fable-5.1' (Claude Fable 5.1 at low effort; premium plans only), 'fable-5.2' (Claude Fable 5.2 at low effort; premium plans only), 'standard', 'lite', 'kimi-k2.5' (Fireworks-hosted Kimi K2.5), 'kimi-k2.6' (Fireworks-hosted Kimi K2.6), or 'gpt-5.6' (OpenAI GPT-5.6 at high reasoning). Defaults to automatic selection based on task complexity.","uniqueKey":"model_tier.oneOf.1","typeLabel":"null"}],"uniqueKey":"model_tier","typeLabel":"enum\u003cstring> | null"},"reference_canvas_ids":{"oneOf":[{"type":"array","items":{"type":"string","pattern":"^cvs_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","description":"Prefixed ``cvs_`` wire ID (Crockford base32 body) — the canonical, recommended form. For back-compat, **a bare UUID string is also accepted** in both path parameters and JSON request bodies (older integrations that stored raw UUIDs keep working), as is **the prefix over a UUID body** (``cvs_00000000-0000-4000-8000-000000000000``). All three are permanent, supported inputs; only the canonical form is ever emitted.","example":"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV","uniqueKey":"reference_canvas_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Reference Canvas Ids","description":"List of prefixed ``cvs_`` IDs to use as design inspiration. The agent can see these designs and reference their style, layout, or content.","uniqueKey":"reference_canvas_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Reference Canvas Ids","description":"List of prefixed ``cvs_`` IDs to use as design inspiration. The agent can see these designs and reference their style, layout, or content.","uniqueKey":"reference_canvas_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"reference_canvas_ids","typeLabel":"string[] | null"},"number_of_slides":{"oneOf":[{"type":"integer","title":"Number Of Slides","description":"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. Rejected with a ``role='import'`` attachment — an existing-deck edit keeps the deck's own slide count.","minimum":1,"uniqueKey":"number_of_slides.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Number Of Slides","description":"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. Rejected with a ``role='import'`` attachment — an existing-deck edit keeps the deck's own slide count.","uniqueKey":"number_of_slides.oneOf.1","typeLabel":"null"}],"uniqueKey":"number_of_slides","typeLabel":"integer | null"},"export_on_complete":{"oneOf":[{"type":"object","title":"ExportOnCompleteOption","description":"Auto-export preferences applied when the task finishes. The finished design is rendered to ``result.export`` (and the completion webhook), so a follow-up ``POST /v1/canvases/{id}/export`` for the same canvas hits the cache instead of re-rendering. Omit to use the canvas category default (``slides``→PPTX, ``pdf``→PDF, others→PNG); pass ``{enabled: false}`` to opt out of the auto-export entirely. Multi-page PNG/JPEG bundles into a ``.zip`` of per-page files; ``result.export.format`` reflects what was actually delivered (``png``, ``jpeg``, ``pdf``, ``pptx``, or ``zip``).","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"When ``true`` (default), the design task auto-exports its finished canvas to ``result.export``. Set to ``false`` to skip the auto-export — useful when you only need the canvas reference and will request a different artifact later.","default":true,"uniqueKey":"export_on_complete.oneOf.0.enabled","typeLabel":"boolean"},"format":{"oneOf":[{"type":"string","title":"Format","description":"Output format for the auto-export. Omit to use the canvas category default (``slides``→``pptx``, ``pdf``→``pdf``, others→``png``). ``animation`` canvases default to video, which the auto-export pipeline does not render — request a still format here to get an auto-export of an animation canvas. Multi-page PNG/JPEG exports are delivered as a ``.zip`` of per-page files; in that case ``result.export.format`` is ``zip`` while the per-page files inside use the requested raster format.","enum":["png","jpeg","pdf","pptx"],"uniqueKey":"export_on_complete.oneOf.0.format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Format","description":"Output format for the auto-export. Omit to use the canvas category default (``slides``→``pptx``, ``pdf``→``pdf``, others→``png``). ``animation`` canvases default to video, which the auto-export pipeline does not render — request a still format here to get an auto-export of an animation canvas. Multi-page PNG/JPEG exports are delivered as a ``.zip`` of per-page files; in that case ``result.export.format`` is ``zip`` while the per-page files inside use the requested raster format.","uniqueKey":"export_on_complete.oneOf.0.format.oneOf.1","typeLabel":"null"}],"uniqueKey":"export_on_complete.oneOf.0.format","typeLabel":"enum\u003cstring> | null"},"pixel_ratio":{"oneOf":[{"type":"integer","title":"Pixel Ratio","description":"Render scale multiplier (1-4). Omit to use the category default (``social``/``carousel`` PNGs render at 1×; PDFs at 3×; everything else at 2×). Pinning this matches the value that ``POST /v1/canvases/{id}/export`` would compute for the same canvas, so a follow-up manual export reuses the cached artifact.","maximum":4,"minimum":1,"uniqueKey":"export_on_complete.oneOf.0.pixel_ratio.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Pixel Ratio","description":"Render scale multiplier (1-4). Omit to use the category default (``social``/``carousel`` PNGs render at 1×; PDFs at 3×; everything else at 2×). Pinning this matches the value that ``POST /v1/canvases/{id}/export`` would compute for the same canvas, so a follow-up manual export reuses the cached artifact.","uniqueKey":"export_on_complete.oneOf.0.pixel_ratio.oneOf.1","typeLabel":"null"}],"uniqueKey":"export_on_complete.oneOf.0.pixel_ratio","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"export_on_complete.oneOf.0","typeLabel":"ExportOnCompleteOption · object"},{"type":"null","description":"Auto-export preferences applied when the task finishes. The finished design is rendered to ``result.export`` (and the completion webhook), so a follow-up ``POST /v1/canvases/{id}/export`` for the same canvas hits the cache instead of re-rendering. Omit to use the canvas category default (``slides``→PPTX, ``pdf``→PDF, others→PNG); pass ``{enabled: false}`` to opt out of the auto-export entirely. Multi-page PNG/JPEG bundles into a ``.zip`` of per-page files; ``result.export.format`` reflects what was actually delivered (``png``, ``jpeg``, ``pdf``, ``pptx``, or ``zip``).","uniqueKey":"export_on_complete.oneOf.1","typeLabel":"null"}],"uniqueKey":"export_on_complete","typeLabel":"ExportOnCompleteOption · object | null"}},"additionalProperties":false,"type":"object","required":["prompt"],"title":"StartTaskRequest","uniqueKey":"","typeLabel":"StartTaskRequest · object"},"examples":{"Example":{"title":"Example","value":{"prompt":"\u003cstring>","user_request_quote":"\u003cstring>","conversation_id":"conv_01HT9WK8N3M2J4A5Z6P7Q8R9TV","canvas_id":"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV","template_canvas_id":"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV","canvas_name":"\u003cstring>","brand_kit_id":"bk_01HT9WK8N3M2J4A5Z6P7Q8R9TV","skip_brand_kit":false,"callback_url":"\u003cstring>","idempotency_key":"\u003cstring>","attachments":[{"url":"\u003cstring>","name":"\u003cstring>","type":"image"}],"format":{"width":123,"height":123,"label":"\u003cstring>","page_count":2},"reference_canvas_ids":["cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV"],"number_of_slides":2,"export_on_complete":{"enabled":true,"pixel_ratio":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"05aac0ec-6e65-470a-bff5-154c9501c7ec":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","pattern":"^task_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","title":"Id","description":"Prefixed ``task_...`` identifier.","example":"task_01HT9WK8N3M2J4A5Z6P7Q8R9TV","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"kind":{"type":"string","enum":["design","export","remix","brand_kit_extract","layerize_assets"],"title":"TaskKind","description":"Discriminator for the kind-specific ``result`` payload.","isRequired":true,"uniqueKey":"kind","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled","expired"],"title":"PublicTaskStatus","description":"Current lifecycle status.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"attempt":{"type":"integer","title":"Attempt","description":"Current attempt number (1-based).","isRequired":true,"uniqueKey":"attempt","typeLabel":"integer"},"max_attempts":{"type":"integer","title":"Max Attempts","description":"Maximum attempts before dead-lettering.","isRequired":true,"uniqueKey":"max_attempts","typeLabel":"integer"},"attempts_started":{"type":"integer","title":"Attempts Started","description":"Number of attempts STARTED (claimed by a worker) — never attempts completed. ``0`` means the task has never been claimed. The claim itself increments the counter, so a task on its first attempt reports ``1`` while RUNNING and stays at ``1`` through that attempt's retry backoff. The retry signal is therefore ``status == \"queued\" \u0026\u0026 attempts_started >= 1`` (a queued task that has already burned an attempt), NOT ``>= 2``. Unlike ``attempt``, this is the raw counter and is not floored to 1.","isRequired":true,"uniqueKey":"attempts_started","typeLabel":"integer"},"links":{"properties":{"self":{"type":"string","title":"Self","description":"Canonical URL of this task resource.","isRequired":true,"uniqueKey":"links.self","typeLabel":"string"},"events":{"oneOf":[{"type":"string","title":"Events","description":"Reserved for a future event-stream URL; currently always ``null``. Moda does not expose a task event stream — poll ``GET /v1/tasks/{id}`` using ``retry_after_ms`` instead.","uniqueKey":"links.events.oneOf.0","typeLabel":"string"},{"type":"null","title":"Events","description":"Reserved for a future event-stream URL; currently always ``null``. Moda does not expose a task event stream — poll ``GET /v1/tasks/{id}`` using ``retry_after_ms`` instead.","uniqueKey":"links.events.oneOf.1","typeLabel":"null"}],"uniqueKey":"links.events","typeLabel":"string | null"},"cancel":{"oneOf":[{"type":"string","title":"Cancel","description":"URL to POST a cancellation request.","uniqueKey":"links.cancel.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cancel","description":"URL to POST a cancellation request.","uniqueKey":"links.cancel.oneOf.1","typeLabel":"null"}],"uniqueKey":"links.cancel","typeLabel":"string | null"},"canvas":{"oneOf":[{"type":"string","title":"Canvas","description":"URL to open the canvas in the Moda editor.","uniqueKey":"links.canvas.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canvas","description":"URL to open the canvas in the Moda editor.","uniqueKey":"links.canvas.oneOf.1","typeLabel":"null"}],"uniqueKey":"links.canvas","typeLabel":"string | null"}},"type":"object","required":["self"],"title":"TaskLinks","description":"HATEOAS links for this task.","isRequired":true,"uniqueKey":"links","typeLabel":"TaskLinks · object"},"created_at":{"oneOf":[{"type":"string","title":"Created At","description":"ISO 8601 timestamp.","uniqueKey":"created_at.oneOf.0","typeLabel":"string"},{"type":"null","title":"Created At","description":"ISO 8601 timestamp.","uniqueKey":"created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_at","typeLabel":"string | null"},"started_at":{"oneOf":[{"type":"string","title":"Started At","description":"ISO 8601 timestamp.","uniqueKey":"started_at.oneOf.0","typeLabel":"string"},{"type":"null","title":"Started At","description":"ISO 8601 timestamp.","uniqueKey":"started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"started_at","typeLabel":"string | null"},"completed_at":{"oneOf":[{"type":"string","title":"Completed At","description":"ISO 8601 timestamp.","uniqueKey":"completed_at.oneOf.0","typeLabel":"string"},{"type":"null","title":"Completed At","description":"ISO 8601 timestamp.","uniqueKey":"completed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"completed_at","typeLabel":"string | null"},"progress":{"oneOf":[{"type":"object","title":"TaskProgress","description":"Live progress for running tasks. Null when not applicable.","properties":{"percent":{"oneOf":[{"type":"integer","title":"Percent","description":"Estimated completion percentage (0-100).","uniqueKey":"progress.oneOf.0.percent.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Percent","description":"Estimated completion percentage (0-100).","uniqueKey":"progress.oneOf.0.percent.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress.oneOf.0.percent","typeLabel":"integer | null"},"step":{"oneOf":[{"type":"string","title":"Step","description":"Machine-readable step name the agent is executing.","uniqueKey":"progress.oneOf.0.step.oneOf.0","typeLabel":"string"},{"type":"null","title":"Step","description":"Machine-readable step name the agent is executing.","uniqueKey":"progress.oneOf.0.step.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress.oneOf.0.step","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","title":"Message","description":"Human-readable progress message.","uniqueKey":"progress.oneOf.0.message.oneOf.0","typeLabel":"string"},{"type":"null","title":"Message","description":"Human-readable progress message.","uniqueKey":"progress.oneOf.0.message.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress.oneOf.0.message","typeLabel":"string | null"}},"uniqueKey":"progress.oneOf.0","typeLabel":"TaskProgress · object"},{"type":"null","description":"Live progress for running tasks. Null when not applicable.","uniqueKey":"progress.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress","typeLabel":"TaskProgress · object | null"},"first_started_at":{"oneOf":[{"type":"string","title":"First Started At","description":"ISO 8601 timestamp of when the FIRST attempt was claimed. ``null`` means unknown — either the task has never started, or it predates this field being recorded. ``started_at`` remains the CURRENT attempt's start, so on a retried task the two differ and the gap is the real wall-clock age of the work.","uniqueKey":"first_started_at.oneOf.0","typeLabel":"string"},{"type":"null","title":"First Started At","description":"ISO 8601 timestamp of when the FIRST attempt was claimed. ``null`` means unknown — either the task has never started, or it predates this field being recorded. ``started_at`` remains the CURRENT attempt's start, so on a retried task the two differ and the gap is the real wall-clock age of the work.","uniqueKey":"first_started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"first_started_at","typeLabel":"string | null"},"input":{"oneOf":[{"type":"object","title":"Input","description":"Sanitized echo of the original request.","additionalProperties":true,"uniqueKey":"input.oneOf.0","typeLabel":"Input · object"},{"type":"null","title":"Input","description":"Sanitized echo of the original request.","uniqueKey":"input.oneOf.1","typeLabel":"null"}],"uniqueKey":"input","typeLabel":"Input · object | null"},"result":{"oneOf":[{"type":"object","title":"TaskResult","description":"Result payload of a design or remix task.\n\nPopulated when ``status`` is ``succeeded``, and partially populated for\nsome in-flight tasks (a remix surfaces its source canvas before the design\ntask finishes). Extra keys are permitted so synchronous-completion payloads\npass through without schema churn.","properties":{"canvas_id":{"oneOf":[{"type":"string","title":"Canvas Id","description":"Prefixed ``cvs_...`` id of the resulting canvas.","uniqueKey":"result.oneOf.0.canvas_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canvas Id","description":"Prefixed ``cvs_...`` id of the resulting canvas.","uniqueKey":"result.oneOf.0.canvas_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.canvas_id","typeLabel":"string | null"},"canvas_url":{"oneOf":[{"type":"string","title":"Canvas Url","description":"URL to open the canvas in the Moda editor.","uniqueKey":"result.oneOf.0.canvas_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canvas Url","description":"URL to open the canvas in the Moda editor.","uniqueKey":"result.oneOf.0.canvas_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.canvas_url","typeLabel":"string | null"},"canvas_name":{"oneOf":[{"type":"string","title":"Canvas Name","description":"Display name of the resulting canvas.","uniqueKey":"result.oneOf.0.canvas_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canvas Name","description":"Display name of the resulting canvas.","uniqueKey":"result.oneOf.0.canvas_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.canvas_name","typeLabel":"string | null"},"conversation_id":{"oneOf":[{"type":"string","title":"Conversation Id","description":"Prefixed ``conv_...`` id — pass to a later task to keep iterating with full context.","uniqueKey":"result.oneOf.0.conversation_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Conversation Id","description":"Prefixed ``conv_...`` id — pass to a later task to keep iterating with full context.","uniqueKey":"result.oneOf.0.conversation_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.conversation_id","typeLabel":"string | null"},"source_canvas_id":{"oneOf":[{"type":"string","title":"Source Canvas Id","description":"Prefixed ``cvs_...`` id of the source canvas, for template-remix tasks.","uniqueKey":"result.oneOf.0.source_canvas_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Canvas Id","description":"Prefixed ``cvs_...`` id of the source canvas, for template-remix tasks.","uniqueKey":"result.oneOf.0.source_canvas_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.source_canvas_id","typeLabel":"string | null"},"source_canvas_url":{"oneOf":[{"type":"string","title":"Source Canvas Url","description":"Editor URL of the source canvas, for template-remix tasks.","uniqueKey":"result.oneOf.0.source_canvas_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Canvas Url","description":"Editor URL of the source canvas, for template-remix tasks.","uniqueKey":"result.oneOf.0.source_canvas_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.source_canvas_url","typeLabel":"string | null"},"theme_canvas_id":{"oneOf":[{"type":"string","title":"Theme Canvas Id","description":"Prefixed ``cvs_...`` id of the theme canvas attached to the resulting canvas, when a brand kit default theme was applied. Null when the deck is unthemed.","uniqueKey":"result.oneOf.0.theme_canvas_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Theme Canvas Id","description":"Prefixed ``cvs_...`` id of the theme canvas attached to the resulting canvas, when a brand kit default theme was applied. Null when the deck is unthemed.","uniqueKey":"result.oneOf.0.theme_canvas_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.theme_canvas_id","typeLabel":"string | null"},"export":{"oneOf":[{"type":"object","title":"TaskExport","description":"The finished design, auto-exported and cached. Populated once the design task has rendered its result — use this artifact instead of calling the export endpoint again for the same canvas.","required":["url","format","status","page_count"],"properties":{"url":{"type":"string","title":"Url","description":"Signed, time-limited URL to download the rendered file.","isRequired":true,"uniqueKey":"result.oneOf.0.export.oneOf.0.url","typeLabel":"string"},"format":{"type":"string","title":"Format","description":"Delivered format — ``png``, ``jpeg``, ``pdf``, ``pptx``, or ``zip``. Multi-page PNG/JPEG exports are bundled into a ``.zip`` of per-page files named after the pages (``01-Cover@2x.png``, ``02-Page-2@2x.png``, …) since a single image container can't carry multiple pages.","isRequired":true,"uniqueKey":"result.oneOf.0.export.oneOf.0.format","typeLabel":"string"},"status":{"type":"string","title":"Status","description":"Render status; ``completed`` when the file is ready at ``url``.","isRequired":true,"uniqueKey":"result.oneOf.0.export.oneOf.0.status","typeLabel":"string"},"page_count":{"type":"integer","title":"Page Count","description":"Number of pages in the exported file.","isRequired":true,"uniqueKey":"result.oneOf.0.export.oneOf.0.page_count","typeLabel":"integer"}},"uniqueKey":"result.oneOf.0.export.oneOf.0","typeLabel":"TaskExport · object"},{"type":"null","description":"The finished design, auto-exported and cached. Populated once the design task has rendered its result — use this artifact instead of calling the export endpoint again for the same canvas.","uniqueKey":"result.oneOf.0.export.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.0.export","typeLabel":"TaskExport · object | null"}},"additionalProperties":true,"uniqueKey":"result.oneOf.0","typeLabel":"TaskResult · object"},{"type":"object","title":"PublicLayerizeAssetsResult","description":"Result payload. Present only for succeeded tasks.","required":["mode","outcome","width","height","layers"],"properties":{"mode":{"type":"string","enum":["full","text"],"title":"Mode","isRequired":true,"uniqueKey":"result.oneOf.1.mode","typeLabel":"enum\u003cstring>"},"outcome":{"type":"string","enum":["complete","partial"],"title":"Outcome","isRequired":true,"uniqueKey":"result.oneOf.1.outcome","typeLabel":"enum\u003cstring>"},"width":{"type":"integer","exclusiveMinimum":0,"title":"Width","isRequired":true,"uniqueKey":"result.oneOf.1.width","typeLabel":"integer"},"height":{"type":"integer","exclusiveMinimum":0,"title":"Height","isRequired":true,"uniqueKey":"result.oneOf.1.height","typeLabel":"integer"},"layers":{"items":{"properties":{"id":{"type":"string","title":"Id","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].id","typeLabel":"string"},"kind":{"type":"string","enum":["background","image","shape","text","composite"],"title":"Kind","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"z_index":{"type":"integer","minimum":0,"title":"Z Index","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].z_index","typeLabel":"integer"},"file_id":{"type":"string","title":"File Id","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].file_id","typeLabel":"string"},"width":{"type":"integer","exclusiveMinimum":0,"title":"Width","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].width","typeLabel":"integer"},"height":{"type":"integer","exclusiveMinimum":0,"title":"Height","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].height","typeLabel":"integer"},"url":{"type":"string","title":"Url","readOnly":true,"isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].url","typeLabel":"string"},"content_type":{"type":"string","const":"image/png","title":"Content Type","default":"image/png","uniqueKey":"result.oneOf.1.layers.items.[INDEX].content_type","typeLabel":"string"},"x":{"type":"integer","const":0,"title":"X","default":0,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].x","typeLabel":"integer"},"y":{"type":"integer","const":0,"title":"Y","default":0,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].y","typeLabel":"integer"},"text":{"oneOf":[{"type":"object","title":"LayerizeText","required":["content","bounds","transform","layout_width","layout_height","paragraphs"],"properties":{"content":{"type":"string","title":"Content","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.content","typeLabel":"string"},"bounds":{"additionalProperties":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.bounds.additionalProperties","typeLabel":"number"},"type":"object","title":"Bounds","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.bounds","typeLabel":"Bounds · object"},"transform":{"type":"object","_tupleOriginal":true,"properties":{"[0]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.transform.[0]","typeLabel":"number"},"[1]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.transform.[1]","typeLabel":"number"},"[2]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.transform.[2]","typeLabel":"number"},"[3]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.transform.[3]","typeLabel":"number"},"[4]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.transform.[4]","typeLabel":"number"},"[5]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.transform.[5]","typeLabel":"number"}},"title":"Transform","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.transform","typeLabel":"Transform · tuple"},"layout_width":{"type":"number","title":"Layout Width","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.layout_width","typeLabel":"number"},"layout_height":{"type":"number","title":"Layout Height","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.layout_height","typeLabel":"number"},"paragraphs":{"items":{"properties":{"alignment":{"oneOf":[{"type":"string","title":"Alignment","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].alignment.oneOf.0","typeLabel":"string"},{"type":"null","title":"Alignment","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].alignment.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].alignment","typeLabel":"string | null"},"line_height":{"oneOf":[{"type":"number","title":"Line Height","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].line_height.oneOf.0","typeLabel":"number"},{"type":"null","title":"Line Height","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].line_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].line_height","typeLabel":"number | null"},"spans":{"items":{"properties":{"text":{"type":"string","title":"Text","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].text","typeLabel":"string"},"font_family":{"oneOf":[{"type":"string","title":"Font Family","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_family.oneOf.0","typeLabel":"string"},{"type":"null","title":"Font Family","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_family.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_family","typeLabel":"string | null"},"font_size":{"oneOf":[{"type":"number","title":"Font Size","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_size.oneOf.0","typeLabel":"number"},{"type":"null","title":"Font Size","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_size","typeLabel":"number | null"},"font_weight":{"oneOf":[{"type":"integer","title":"Font Weight","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_weight.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Font Weight","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_weight","typeLabel":"integer | null"},"font_style":{"oneOf":[{"type":"string","title":"Font Style","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_style.oneOf.0","typeLabel":"string"},{"type":"null","title":"Font Style","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_style.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].font_style","typeLabel":"string | null"},"color":{"oneOf":[{"type":"string","title":"Color","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].color.oneOf.0","typeLabel":"string"},{"type":"null","title":"Color","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].color.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].color","typeLabel":"string | null"},"letter_spacing":{"oneOf":[{"type":"number","title":"Letter Spacing","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].letter_spacing.oneOf.0","typeLabel":"number"},{"type":"null","title":"Letter Spacing","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].letter_spacing.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].letter_spacing","typeLabel":"number | null"},"decoration":{"oneOf":[{"type":"string","title":"Decoration","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].decoration.oneOf.0","typeLabel":"string"},{"type":"null","title":"Decoration","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].decoration.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX].decoration","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","required":["text"],"title":"LayerizeAssetTextSpan","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans.items.[INDEX]","typeLabel":"LayerizeAssetTextSpan · object"},"type":"array","title":"Spans","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX].spans","typeLabel":"LayerizeAssetTextSpan · object[]"}},"additionalProperties":false,"type":"object","title":"LayerizeAssetTextParagraph","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs.items.[INDEX]","typeLabel":"LayerizeAssetTextParagraph · object"},"type":"array","title":"Paragraphs","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.paragraphs","typeLabel":"LayerizeAssetTextParagraph · object[]"},"vertical_align":{"oneOf":[{"type":"string","title":"Vertical Align","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.vertical_align.oneOf.0","typeLabel":"string"},{"type":"null","title":"Vertical Align","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.vertical_align.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0.vertical_align","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.0","typeLabel":"LayerizeText · object"},{"type":"null","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text","typeLabel":"LayerizeText · object | null"},"text_items":{"items":{"properties":{"content":{"type":"string","title":"Content","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].content","typeLabel":"string"},"bounds":{"additionalProperties":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].bounds.additionalProperties","typeLabel":"number"},"type":"object","title":"Bounds","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].bounds","typeLabel":"Bounds · object"},"transform":{"type":"object","_tupleOriginal":true,"properties":{"[0]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].transform.[0]","typeLabel":"number"},"[1]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].transform.[1]","typeLabel":"number"},"[2]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].transform.[2]","typeLabel":"number"},"[3]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].transform.[3]","typeLabel":"number"},"[4]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].transform.[4]","typeLabel":"number"},"[5]":{"type":"number","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].transform.[5]","typeLabel":"number"}},"title":"Transform","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].transform","typeLabel":"Transform · tuple"},"layout_width":{"type":"number","title":"Layout Width","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].layout_width","typeLabel":"number"},"layout_height":{"type":"number","title":"Layout Height","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].layout_height","typeLabel":"number"},"paragraphs":{"items":{"properties":{"alignment":{"oneOf":[{"type":"string","title":"Alignment","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].alignment.oneOf.0","typeLabel":"string"},{"type":"null","title":"Alignment","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].alignment.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].alignment","typeLabel":"string | null"},"line_height":{"oneOf":[{"type":"number","title":"Line Height","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].line_height.oneOf.0","typeLabel":"number"},{"type":"null","title":"Line Height","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].line_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].line_height","typeLabel":"number | null"},"spans":{"items":{"properties":{"text":{"type":"string","title":"Text","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].text","typeLabel":"string"},"font_family":{"oneOf":[{"type":"string","title":"Font Family","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_family.oneOf.0","typeLabel":"string"},{"type":"null","title":"Font Family","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_family.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_family","typeLabel":"string | null"},"font_size":{"oneOf":[{"type":"number","title":"Font Size","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_size.oneOf.0","typeLabel":"number"},{"type":"null","title":"Font Size","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_size","typeLabel":"number | null"},"font_weight":{"oneOf":[{"type":"integer","title":"Font Weight","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_weight.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Font Weight","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_weight","typeLabel":"integer | null"},"font_style":{"oneOf":[{"type":"string","title":"Font Style","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_style.oneOf.0","typeLabel":"string"},{"type":"null","title":"Font Style","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_style.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].font_style","typeLabel":"string | null"},"color":{"oneOf":[{"type":"string","title":"Color","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].color.oneOf.0","typeLabel":"string"},{"type":"null","title":"Color","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].color.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].color","typeLabel":"string | null"},"letter_spacing":{"oneOf":[{"type":"number","title":"Letter Spacing","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].letter_spacing.oneOf.0","typeLabel":"number"},{"type":"null","title":"Letter Spacing","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].letter_spacing.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].letter_spacing","typeLabel":"number | null"},"decoration":{"oneOf":[{"type":"string","title":"Decoration","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].decoration.oneOf.0","typeLabel":"string"},{"type":"null","title":"Decoration","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].decoration.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX].decoration","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","required":["text"],"title":"LayerizeAssetTextSpan","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans.items.[INDEX]","typeLabel":"LayerizeAssetTextSpan · object"},"type":"array","title":"Spans","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX].spans","typeLabel":"LayerizeAssetTextSpan · object[]"}},"additionalProperties":false,"type":"object","title":"LayerizeAssetTextParagraph","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs.items.[INDEX]","typeLabel":"LayerizeAssetTextParagraph · object"},"type":"array","title":"Paragraphs","isRequired":true,"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].paragraphs","typeLabel":"LayerizeAssetTextParagraph · object[]"},"vertical_align":{"oneOf":[{"type":"string","title":"Vertical Align","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].vertical_align.oneOf.0","typeLabel":"string"},{"type":"null","title":"Vertical Align","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].vertical_align.oneOf.1","typeLabel":"null"}],"uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX].vertical_align","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","required":["content","bounds","transform","layout_width","layout_height","paragraphs"],"title":"LayerizeText","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items.items.[INDEX]","typeLabel":"LayerizeText · object"},"type":"array","title":"Text Items","uniqueKey":"result.oneOf.1.layers.items.[INDEX].text_items","typeLabel":"LayerizeText · object[]"}},"additionalProperties":false,"type":"object","required":["id","kind","z_index","file_id","width","height","url"],"title":"PublicLayerizeAssetLayer","uniqueKey":"result.oneOf.1.layers.items.[INDEX]","typeLabel":"PublicLayerizeAssetLayer · object"},"type":"array","title":"Layers","isRequired":true,"uniqueKey":"result.oneOf.1.layers","typeLabel":"PublicLayerizeAssetLayer · object[]"},"schema_version":{"type":"string","const":"1","title":"Schema Version","default":"1","uniqueKey":"result.oneOf.1.schema_version","typeLabel":"string"},"coordinate_system":{"type":"string","const":"pixels_top_left","title":"Coordinate System","default":"pixels_top_left","uniqueKey":"result.oneOf.1.coordinate_system","typeLabel":"string"},"warnings":{"items":{"properties":{"code":{"type":"string","title":"Code","isRequired":true,"uniqueKey":"result.oneOf.1.warnings.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"result.oneOf.1.warnings.items.[INDEX].message","typeLabel":"string"},"layer_ids":{"items":{"type":"string","uniqueKey":"result.oneOf.1.warnings.items.[INDEX].layer_ids.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Layer Ids","uniqueKey":"result.oneOf.1.warnings.items.[INDEX].layer_ids","typeLabel":"string[]"}},"additionalProperties":false,"type":"object","required":["code","message"],"title":"LayerizeWarning","uniqueKey":"result.oneOf.1.warnings.items.[INDEX]","typeLabel":"LayerizeWarning · object"},"type":"array","title":"Warnings","uniqueKey":"result.oneOf.1.warnings","typeLabel":"LayerizeWarning · object[]"}},"additionalProperties":false,"uniqueKey":"result.oneOf.1","typeLabel":"PublicLayerizeAssetsResult · object"},{"type":"null","title":"Result","description":"Result payload. Present only for succeeded tasks.","uniqueKey":"result.oneOf.2","typeLabel":"null"}],"uniqueKey":"result","typeLabel":"TaskResult · object | PublicLayerizeAssetsResult · object | null"},"error":{"oneOf":[{"type":"object","title":"Error","description":"Error info: ``{message, retryable, attempt}``. Present for failed tasks, and also for a NON-terminal task that carries an error from an earlier attempt — on a non-terminal task this always describes the PREVIOUS, already-dead attempt, never the one currently in flight. ``attempt`` is the ``attempts_started`` value the error is tied to (``0`` when the failure happened before any claim).","additionalProperties":true,"uniqueKey":"error.oneOf.0","typeLabel":"Error · object"},{"type":"null","title":"Error","description":"Error info: ``{message, retryable, attempt}``. Present for failed tasks, and also for a NON-terminal task that carries an error from an earlier attempt — on a non-terminal task this always describes the PREVIOUS, already-dead attempt, never the one currently in flight. ``attempt`` is the ``attempts_started`` value the error is tied to (``0`` when the failure happened before any claim).","uniqueKey":"error.oneOf.1","typeLabel":"null"}],"uniqueKey":"error","typeLabel":"Error · object | null"},"credits":{"oneOf":[{"type":"object","title":"CreditUsage","description":"Credit usage. Present only for completed tasks when billing is enabled.","properties":{"credits_used":{"oneOf":[{"type":"integer","title":"Credits Used","description":"Number of credits consumed by this operation. Null if billing is not enabled or the job hasn't completed yet.","uniqueKey":"credits.oneOf.0.credits_used.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Credits Used","description":"Number of credits consumed by this operation. Null if billing is not enabled or the job hasn't completed yet.","uniqueKey":"credits.oneOf.0.credits_used.oneOf.1","typeLabel":"null"}],"uniqueKey":"credits.oneOf.0.credits_used","typeLabel":"integer | null"},"credits_remaining":{"oneOf":[{"type":"integer","title":"Credits Remaining","description":"Credit balance after this operation. Null if billing is not enabled.","uniqueKey":"credits.oneOf.0.credits_remaining.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Credits Remaining","description":"Credit balance after this operation. Null if billing is not enabled.","uniqueKey":"credits.oneOf.0.credits_remaining.oneOf.1","typeLabel":"null"}],"uniqueKey":"credits.oneOf.0.credits_remaining","typeLabel":"integer | null"}},"uniqueKey":"credits.oneOf.0","typeLabel":"CreditUsage · object"},{"type":"null","description":"Credit usage. Present only for completed tasks when billing is enabled.","uniqueKey":"credits.oneOf.1","typeLabel":"null"}],"uniqueKey":"credits","typeLabel":"CreditUsage · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Suggested milliseconds to wait before the next poll. Null for terminal tasks.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Suggested milliseconds to wait before the next poll. Null for terminal tasks.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"}},"type":"object","required":["id","kind","status","attempt","max_attempts","attempts_started","links"],"title":"Task","description":"Canonical wire-format for every async design operation.\n\nAll consumers -- REST, webhooks, SSE, MCP -- serialize through\n``Task.from_db()`` so the shape is always consistent.","uniqueKey":"","typeLabel":"Task · object"},"examples":{"Example":{"title":"Example","value":{"id":"task_01HT9WK8N3M2J4A5Z6P7Q8R9TV","kind":"design","status":"queued","attempt":123,"max_attempts":123,"attempts_started":123,"links":{"self":"\u003cstring>","events":"\u003cstring>","cancel":"\u003cstring>","canvas":"\u003cstring>"},"created_at":"\u003cstring>","started_at":"\u003cstring>","completed_at":"\u003cstring>","progress":{"percent":123,"step":"\u003cstring>","message":"\u003cstring>"},"first_started_at":"\u003cstring>","input":{},"result":{"canvas_id":"\u003cstring>","canvas_url":"\u003cstring>","canvas_name":"\u003cstring>","conversation_id":"\u003cstring>","source_canvas_id":"\u003cstring>","source_canvas_url":"\u003cstring>","theme_canvas_id":"\u003cstring>","export":{"url":"\u003cstring>","format":"\u003cstring>","status":"\u003cstring>","page_count":123}},"error":{},"credits":{"credits_used":123,"credits_remaining":123},"retry_after_ms":123}}},"exampleType":"generated"}},"exampleType":"generated"},"2976d8df-c60c-463b-95e5-b5510adcd0ff":{"description":"Authentication required.","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"},"f6f7b7b5-48dd-4aba-8fd7-801f67c9b75a":{"description":"Insufficient credits for a metered operation.","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"},"ab827a2d-43a8-4b9b-bb53-1c70dcd3cf2f":{"description":"Permission denied for this scope.","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"},"8b9875f7-85fe-4c36-8b59-dfa232b5556d":{"description":"Resource not found.","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"},"f3c2f634-7d41-4021-bbf0-4556c8a12638":{"description":"Conflict (idempotency / resource state).","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"},"bf1df75d-cc14-49f1-a0a6-f245e378acb9":{"description":"Request validation failed.","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"},"c1275c8d-b930-41ce-8e89-1d0b3db237b3":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"},"dc77bb73-5b1b-4843-a146-0cf317cd53b9":{"description":"Internal error.","content":{"application/json":{"schema":{"properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission","not_found","conflict","rate_limited","idempotency_conflict","unprocessable","upstream_error","internal_error"],"title":"ErrorType","description":"Closed set of high-level categories SDKs branch on.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","title":"Code","description":"Stable machine string keyed to doc_url. Never changes once published.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable message, for developers. Not localized, not user-facing.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Permalink to the docs page for this code.","isRequired":true,"uniqueKey":"doc_url","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Correlator for logs/Sentry/audit.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"},"causes":{"oneOf":[{"type":"array","items":{"oneOf":[{}],"uniqueKey":"causes.oneOf.0.items.[INDEX]","typeLabel":"any"},"title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.0","typeLabel":"any[]"},{"type":"null","title":"Causes","description":"Aggregated upstream failures (e.g. per-page export errors).","uniqueKey":"causes.oneOf.1","typeLabel":"null"}],"uniqueKey":"causes","typeLabel":"any[] | null"},"details":{"oneOf":[{"type":"object","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Code-specific detail payload (e.g. validation field list). Callers should pass ``None`` rather than ``{}`` to omit the key from the response.","uniqueKey":"details.oneOf.1","typeLabel":"null"}],"uniqueKey":"details","typeLabel":"Details · object | null"},"retry_after_ms":{"oneOf":[{"type":"integer","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Retry After Ms","description":"Hint for rate-limited or transient errors.","uniqueKey":"retry_after_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"retry_after_ms","typeLabel":"integer | null"},"retryable":{"oneOf":[{"type":"boolean","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Retryable","description":"Explicit retryability for this code, from the error-code registry: ``false`` means retrying the same request cannot succeed (fix the input / resource first); ``true`` means the condition is transient and a retry (with backoff / after the blocker clears) can succeed. For a code whose retryability is context-dependent (the registry declares none), the raising site sets it per response when it knows the cause (e.g. ``source_url_unreachable``: a timeout is retryable, a 404 is not) and omits it otherwise — do not derive it from ``type`` or the HTTP status when this field is present.","uniqueKey":"retryable.oneOf.1","typeLabel":"null"}],"uniqueKey":"retryable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorEnvelope","description":"Canonical error payload, nested under the top-level ``{\"error\": ...}`` key.","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"type":"invalid_request","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","causes":["\u003cunknown>"],"details":{},"retry_after_ms":123,"retryable":true}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6078aa4d-3fbe-4fca-81f5-93f5155b0dfe":{"API Key":{"type":"http","description":"API key from Settings > Developer > REST API","scheme":"bearer","scopes":[],"schemeName":"API Key"}}},"servers":{"900bd1dd-1657-41cc-9e95-57b7af147e04":{"url":"https://api.moda.app/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"API key from Settings > Developer > REST API","scheme":"bearer","scopes":[],"schemeName":"API Key"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key from Settings > Developer > REST API","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"API Key","name":"Authorization"}],"title":"API Key"}]},"originalFileLocation":"openapi/moda-public-api.yaml"},"subdomain":"moda-997c0526","siteName":"Moda","title":"Start Design Task - Moda","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T18:06:14.939Z","originalFileLocation":"api-reference/tasks/start-design-task.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Start an AI design task. Returns immediately with a task ID for polling.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Moda\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Start Design Task - Moda\">\u003cmeta data-mint-head property=\"og:description\" content=\"Start an AI design task. Returns immediately with a task ID for polling.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Moda\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.moda.app/api-reference/tasks/start-design-task\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moda-997c0526.mintlify.site/_mintlify/api/og/v2?division=tasks\u0026amp;title=Start+Design+Task\u0026amp;description=Start+an+AI+design+task.+Returns+immediately+with+a+task+ID+for+polling.\u0026amp;theme=b22501ae2719082997928ddd\u0026amp;signature=d6a380a64eb383b3a41571a2511e078db952d8f632f55069b01aef4ec072d7bc\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Start Design Task - Moda\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Start an AI design task. Returns immediately with a task ID for polling.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moda-997c0526.mintlify.site/_mintlify/api/og/v2?division=tasks\u0026amp;title=Start+Design+Task\u0026amp;description=Start+an+AI+design+task.+Returns+immediately+with+a+task+ID+for+polling.\u0026amp;theme=b22501ae2719082997928ddd\u0026amp;signature=d6a380a64eb383b3a41571a2511e078db952d8f632f55069b01aef4ec072d7bc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/moda-997c0526/hX3OHBAQBvwpegoX/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Moda\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#850AC2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.moda.app/api-reference/tasks/start-design-task\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/tasks/start-design-task.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.moda.app/#organization\",\"name\":\"Moda\",\"url\":\"https://docs.moda.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/moda-997c0526/_eKavTfp2ZbkSuMz/images/chameleon.svg?fit=max\u0026auto=format\u0026n=_eKavTfp2ZbkSuMz\u0026q=85\u0026s=d0de9a6ddda2829d62cfe525fbb38722\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.moda.app#website\",\"name\":\"Moda\",\"url\":\"https://docs.moda.app\",\"publisher\":{\"@id\":\"https://docs.moda.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.moda.app/api-reference/tasks/start-design-task#webpage\",\"url\":\"https://docs.moda.app/api-reference/tasks/start-design-task\",\"name\":\"Start Design Task\",\"description\":\"Start an AI design task. Returns immediately with a task ID for polling.\",\"dateModified\":\"2026-11-12T18:06:14.939Z\",\"isPartOf\":{\"@id\":\"https://docs.moda.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.moda.app/api-reference/tasks/start-design-task#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.moda.app/api-reference/tasks/start-design-task#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"tasks\",\"item\":\"https://docs.moda.app/api-reference/tasks/list-tasks\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start Design Task\",\"item\":\"https://docs.moda.app/api-reference/tasks/start-design-task\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.moda.app/api-reference/tasks/start-design-task#apireference\",\"headline\":\"Start Design Task\",\"name\":\"Start Design Task\",\"description\":\"Start an AI design task. Returns immediately with a task ID for polling.\",\"url\":\"https://docs.moda.app/api-reference/tasks/start-design-task\",\"mainEntityOfPage\":{\"@id\":\"https://docs.moda.app/api-reference/tasks/start-design-task#webpage\"},\"dateModified\":\"2026-11-12T18:06:14.939Z\",\"publisher\":{\"@id\":\"https://docs.moda.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.moda.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Moda\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Moda\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/tasks/start-design-task.md","siteName":"Moda","nav":{"global":{"anchors":[{"anchor":"Moda app","icon":"arrow-up-right-from-square","href":"https://moda.app"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@moda.app"}]},"tabs":[{"tab":"Help Center","icon":"circle-question","pages":[{"title":"Help Center","href":"/help"}]},{"tab":"Moda for Agents","icon":"robot","pages":[{"title":"Moda for Agents","href":"/agents/setup"}]},{"tab":"MCP Server (Legacy)","icon":"box-archive","pages":[{"title":"MCP Server (Legacy)","href":"/mcp/getting-started"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Overview","icon":"book-open","pages":[{"title":"Getting Started","href":"/api-reference"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Versioning","href":"/api-reference/versioning"},{"title":"Usage Limits","href":"/api-reference/usage-limits"},{"title":"Design Task Recipes","href":"/api-reference/design-task-recipes"},{"title":"Large file uploads","href":"/api-reference/large-file-uploads"},{"title":"Webhooks","href":"/api-reference/webhooks"},{"title":"Error codes","href":"/api-reference/errors"},{"title":"Layerize images","href":"/api-reference/layerize"}]},{"group":"canvases","pages":[{"title":"List Canvases","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases","href":"/api-reference/canvases/list-canvases"},{"title":"Search Canvases","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/search","href":"/api-reference/canvases/search-canvases"},{"title":"Get Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_id}","href":"/api-reference/canvases/get-canvas"},{"title":"Update Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml patch /canvases/{canvas_id}","href":"/api-reference/canvases/update-canvas"},{"title":"Get Canvas Tokens","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_id}/tokens","href":"/api-reference/canvases/get-canvas-tokens"},{"title":"List Canvas Pages","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_id}/pages","href":"/api-reference/canvases/list-canvas-pages"},{"title":"Export Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_id}/export","href":"/api-reference/canvases/export-canvas"},{"title":"Get Export Status","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_id}/export-status","href":"/api-reference/canvases/get-export-status"},{"title":"Make a canvas public","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_id}/share","href":"/api-reference/canvases/make-a-canvas-public"},{"title":"Import Pptx","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/import-pptx","href":"/api-reference/canvases/import-pptx"},{"title":"Get Import Pptx Status","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/import-pptx/{job_id}","href":"/api-reference/canvases/get-import-pptx-status"}]},{"group":"canvas-actions","pages":[{"title":"Create Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases","href":"/api-reference/canvas-actions/create-canvas"},{"title":"Delete Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /canvases/{canvas_ref}","href":"/api-reference/canvas-actions/delete-canvas"},{"title":"Read Canvas State","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_ref}/state","href":"/api-reference/canvas-actions/read-canvas-state"},{"title":"Read Canvas State Summary","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_ref}/state/summary","href":"/api-reference/canvas-actions/read-canvas-state-summary"},{"title":"Screenshot Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/screenshot","href":"/api-reference/canvas-actions/screenshot-canvas"},{"title":"Create From Markup","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/markup","href":"/api-reference/canvas-actions/create-from-markup"},{"title":"Read Canvas Edit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_ref}/edit","href":"/api-reference/canvas-actions/read-canvas-edit"},{"title":"Edit Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/edit","href":"/api-reference/canvas-actions/edit-canvas"},{"title":"Delete Canvas Items","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/delete-items","href":"/api-reference/canvas-actions/delete-canvas-items"},{"title":"Create Canvas Pages","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/pages","href":"/api-reference/canvas-actions/create-canvas-pages"},{"title":"Validate Canvas Edit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/edit/validate","href":"/api-reference/canvas-actions/validate-canvas-edit"},{"title":"Apply Canvas Edit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/edit/apply","href":"/api-reference/canvas-actions/apply-canvas-edit"},{"title":"Export Canvas Edit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_ref}/edit/export","href":"/api-reference/canvas-actions/export-canvas-edit"},{"title":"Import Canvas Edit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/edit/import","href":"/api-reference/canvas-actions/import-canvas-edit"},{"title":"List Canvas Animations","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_ref}/animations","href":"/api-reference/canvas-actions/list-canvas-animations"},{"title":"Add Canvas Animations","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/animations","href":"/api-reference/canvas-actions/add-canvas-animations"},{"title":"Update Canvas Animations","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/animations/update","href":"/api-reference/canvas-actions/update-canvas-animations"},{"title":"Remove Canvas Animations","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/animations/remove","href":"/api-reference/canvas-actions/remove-canvas-animations"},{"title":"Import Canvas Pages","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /canvases/{canvas_ref}/import-pages","href":"/api-reference/canvas-actions/import-canvas-pages"},{"title":"Read Canvas Instructions","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_ref}/instructions","href":"/api-reference/canvas-actions/read-canvas-instructions"},{"title":"Read Canvas Comments","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/{canvas_ref}/comments","href":"/api-reference/canvas-actions/read-canvas-comments"},{"title":"Whoami","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /whoami","href":"/api-reference/canvas-actions/whoami"},{"title":"Get Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /brand-kits/{brand_kit_ref}","href":"/api-reference/canvas-actions/get-brand-kit"},{"title":"List Brand Kit Guides","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /brand-kits/{brand_kit_ref}/guides","href":"/api-reference/canvas-actions/list-brand-kit-guides"},{"title":"Get Brand Kit Guide","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /brand-kits/{brand_kit_ref}/guides/{guide_id}","href":"/api-reference/canvas-actions/get-brand-kit-guide"},{"title":"List Templates","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /templates","href":"/api-reference/canvas-actions/list-templates"},{"title":"Search Template Pages","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /templates/pages","href":"/api-reference/canvas-actions/search-template-pages"},{"title":"Search Assets","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /assets/search","href":"/api-reference/canvas-actions/search-assets"}]},{"group":"tasks","pages":[{"title":"List Tasks","description":"List recent design tasks (cursor-paginated, newest first).\n\nReturns at most ``limit`` tasks per page (default 20, cap 100). ``total``\nis the true count under the current ``canvas_id`` / ``status`` filters;\niterate ``next_cursor`` while ``has_more`` is ``true``.","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Start Design Task","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /tasks","href":"/api-reference/tasks/start-design-task"},{"title":"Get Task Status","description":"Get the status of a design task.","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /tasks/{task_id}","href":"/api-reference/tasks/get-task-status"},{"title":"Cancel Task","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /tasks/{task_id}/cancel","href":"/api-reference/tasks/cancel-task"}]},{"group":"organizations","pages":[{"title":"List Organizations","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /organizations","href":"/api-reference/organizations/list-organizations"}]},{"group":"credits","pages":[{"title":"Get Credits","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /credits","href":"/api-reference/credits/get-credits"},{"title":"Check Media Credits","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /credits/check","href":"/api-reference/credits/check-media-credits"}]},{"group":"model-access","pages":[{"title":"Request Model Access","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /model-access/{access_key}/request","href":"/api-reference/model-access/request-model-access"}]},{"group":"brand-kits","pages":[{"title":"List Brand Kits","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /brand-kits","href":"/api-reference/brand-kits/list-brand-kits"},{"title":"Create Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /brand-kits","href":"/api-reference/brand-kits/create-brand-kit"},{"title":"Start Brand Extraction","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /brand-kits/extractions","href":"/api-reference/brand-kits/start-brand-extraction"},{"title":"Get Brand Extraction","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /brand-kits/extractions/{job_id}","href":"/api-reference/brand-kits/get-brand-extraction"},{"title":"List Brand Kit Images","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /brand-kits/{brand_kit_id}/images","href":"/api-reference/brand-kits/list-brand-kit-images"},{"title":"Add Brand Kit Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /brand-kits/{brand_kit_id}/images","href":"/api-reference/brand-kits/add-brand-kit-image"},{"title":"Remove Brand Kit Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /brand-kits/{brand_kit_id}/images/{image_id}","href":"/api-reference/brand-kits/remove-brand-kit-image"},{"title":"Delete Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /brand-kits/{brand_kit_id}","href":"/api-reference/brand-kits/delete-brand-kit"},{"title":"Update Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml patch /brand-kits/{brand_kit_id}","href":"/api-reference/brand-kits/update-brand-kit"}]},{"group":"remix","pages":[{"title":"Remix Canvas","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /remix","href":"/api-reference/remix/remix-canvas"}]},{"group":"share-links","pages":[{"title":"Resolve Share Link","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /share_links/resolve","href":"/api-reference/share-links/resolve-share-link"}]},{"group":"uploads","pages":[{"title":"Get Upload Limits","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /uploads/limits","href":"/api-reference/uploads/get-upload-limits"},{"title":"Upload File","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /uploads","href":"/api-reference/uploads/upload-file"},{"title":"Create Upload Url","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /uploads/url","href":"/api-reference/uploads/create-upload-url"},{"title":"Register Upload","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /uploads/register","href":"/api-reference/uploads/register-upload"},{"title":"Upload From Url","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /uploads/from-url","href":"/api-reference/uploads/upload-from-url"}]},{"group":"voices","pages":[{"title":"Get Voice Capabilities","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voices/capabilities","href":"/api-reference/voices/get-voice-capabilities"},{"title":"List Voices","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voices","href":"/api-reference/voices/list-voices"},{"title":"Find Similar Voices","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voices/similar","href":"/api-reference/voices/find-similar-voices"},{"title":"Get Voice","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voices/{voice_id}","href":"/api-reference/voices/get-voice"},{"title":"List Voice Favorites","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voice-favorites","href":"/api-reference/voices/list-voice-favorites"},{"title":"Put Voice Favorite","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml put /voice-favorites","href":"/api-reference/voices/put-voice-favorite"},{"title":"List Pronunciation Dictionaries","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /pronunciation-dictionaries","href":"/api-reference/voices/list-pronunciation-dictionaries"},{"title":"Create Pronunciation Dictionary","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /pronunciation-dictionaries","href":"/api-reference/voices/create-pronunciation-dictionary"},{"title":"Get Pronunciation Dictionary","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /pronunciation-dictionaries/{dictionary_id}","href":"/api-reference/voices/get-pronunciation-dictionary"},{"title":"Create Pronunciation Dictionary Revision","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /pronunciation-dictionaries/{dictionary_id}/revisions","href":"/api-reference/voices/create-pronunciation-dictionary-revision"}]},{"group":"usage","pages":[{"title":"Get Api Usage","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /usage","href":"/api-reference/usage/get-api-usage"},{"title":"List Api Events","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /events","href":"/api-reference/usage/list-api-events"}]},{"group":"webhooks","pages":[{"title":"List Deliveries","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /webhook_deliveries","href":"/api-reference/webhooks/list-deliveries"},{"title":"Redeliver Webhook","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /webhook_deliveries/{delivery_id}/redeliver","href":"/api-reference/webhooks/redeliver-webhook"}]},{"group":"feedback","pages":[{"title":"Submit Feedback","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /feedback","href":"/api-reference/feedback/submit-feedback"},{"title":"Submit Feedback Bundle","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /feedback/bundle","href":"/api-reference/feedback/submit-feedback-bundle"}]},{"group":"voyager","pages":[{"title":"Notify Review Ready","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/review-ready","href":"/api-reference/voyager/notify-review-ready"},{"title":"Notify Conversation Alert","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/conversation-alert","href":"/api-reference/voyager/notify-conversation-alert"},{"title":"Voyager Auth Config","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voyager/auth/config","href":"/api-reference/voyager/voyager-auth-config"},{"title":"Voyager Auth Register","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/auth/register","href":"/api-reference/voyager/voyager-auth-register"},{"title":"Voyager Auth Revoke","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/auth/revoke","href":"/api-reference/voyager/voyager-auth-revoke"},{"title":"Voyager Me","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voyager/me","href":"/api-reference/voyager/voyager-me"},{"title":"Voyager Save Onboarding Survey","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml put /voyager/me/onboarding-survey","href":"/api-reference/voyager/voyager-save-onboarding-survey"},{"title":"Voyager List Devices","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voyager/devices","href":"/api-reference/voyager/voyager-list-devices"},{"title":"Voyager Revoke Device","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /voyager/devices/{device_ref}","href":"/api-reference/voyager/voyager-revoke-device"},{"title":"Voyager Redeem Promo","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/promo/redeem","href":"/api-reference/voyager/voyager-redeem-promo"}]},{"group":"voyager-games","pages":[{"title":"List Games","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voyager/games","href":"/api-reference/voyager-games/list-games"},{"title":"Create Game","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/games","href":"/api-reference/voyager-games/create-game"},{"title":"Get Game","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /voyager/games/{game_id}","href":"/api-reference/voyager-games/get-game"},{"title":"Rename Game","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml patch /voyager/games/{game_id}","href":"/api-reference/voyager-games/rename-game"},{"title":"Unpublish Game","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/games/{game_id}/unpublish","href":"/api-reference/voyager-games/unpublish-game"},{"title":"Publish Game","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /voyager/games/{game_id}/publish","href":"/api-reference/voyager-games/publish-game"}]},{"group":"media","pages":[{"title":"Layerize Assets","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/layerize-assets","href":"/api-reference/media/layerize-assets"},{"title":"List Models","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /media/models","href":"/api-reference/media/list-models"},{"title":"Generate Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/generate-image","href":"/api-reference/media/generate-image"},{"title":"Edit Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/edit-image","href":"/api-reference/media/edit-image"},{"title":"Generate Audio","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/generate-audio","href":"/api-reference/media/generate-audio"},{"title":"Get Audio Generation Status","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /media/generate-audio/{task_id}","href":"/api-reference/media/get-audio-generation-status"},{"title":"Cancel Audio Generation","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/generate-audio/{task_id}/cancel","href":"/api-reference/media/cancel-audio-generation"},{"title":"Generate 3D","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/generate-3d","href":"/api-reference/media/generate-3d"},{"title":"Get 3D Generation Status","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /media/generate-3d/{task_id}","href":"/api-reference/media/get-3d-generation-status"},{"title":"Generate Video","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/generate-video","href":"/api-reference/media/generate-video"},{"title":"Get Video Generation Status","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /media/generate-video/{task_id}","href":"/api-reference/media/get-video-generation-status"},{"title":"Upscale Video","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/upscale-video","href":"/api-reference/media/upscale-video"},{"title":"Reframe Video","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/reframe-video","href":"/api-reference/media/reframe-video"},{"title":"Video Frames","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/video-frames","href":"/api-reference/media/video-frames"},{"title":"Upscale Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/upscale","href":"/api-reference/media/upscale-image"},{"title":"Vectorize Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/vectorize","href":"/api-reference/media/vectorize-image"},{"title":"Precise Edit Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/precise-edit","href":"/api-reference/media/precise-edit-image"},{"title":"Remove Background","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/remove-background","href":"/api-reference/media/remove-background"},{"title":"Outpaint Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/outpaint","href":"/api-reference/media/outpaint-image"},{"title":"Fetch Logo","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/fetch-logo","href":"/api-reference/media/fetch-logo"},{"title":"Layerize Image","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /media/layerize","href":"/api-reference/media/layerize-image"},{"title":"Get Layerize Status","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /media/layerize/{task_id}","href":"/api-reference/media/get-layerize-status"}]},{"group":"provider-proxy","pages":[{"title":"Provider Proxy","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /provider-proxy","href":"/api-reference/provider-proxy/provider-proxy"},{"title":"Provider Proxy Lookup","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /provider-proxy/lookup","href":"/api-reference/provider-proxy/provider-proxy-lookup"}]},{"group":"inference","pages":[{"title":"Models","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /inference/models","href":"/api-reference/inference/models"},{"title":"Openai Responses","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /inference/openai/responses","href":"/api-reference/inference/openai-responses"},{"title":"Anthropic Messages","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /inference/anthropic/messages","href":"/api-reference/inference/anthropic-messages"},{"title":"Openrouter Chat Completions","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /inference/openrouter/chat/completions","href":"/api-reference/inference/openrouter-chat-completions"},{"title":"Voyager Chat Completions","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /inference/voyager/chat/completions","href":"/api-reference/inference/voyager-chat-completions"},{"title":"Typesafe Systemone","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /inference/typesafe/systemone","href":"/api-reference/inference/typesafe-systemone"}]},{"group":"cloud-computers","pages":[{"title":"List Computers","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/","href":"/api-reference/cloud-computers/list-computers"},{"title":"Create","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/","href":"/api-reference/cloud-computers/create"},{"title":"List Computers","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers","href":"/api-reference/cloud-computers/list-computers-1"},{"title":"Create","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers","href":"/api-reference/cloud-computers/create-1"},{"title":"Offers","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/offers","href":"/api-reference/cloud-computers/offers"},{"title":"Relay List","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/relay/","href":"/api-reference/cloud-computers/relay-list"},{"title":"Relay List","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/relay","href":"/api-reference/cloud-computers/relay-list-1"},{"title":"Verify Host","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/relay/verify-host","href":"/api-reference/cloud-computers/verify-host"},{"title":"Relay Get","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/relay/{computer_id}","href":"/api-reference/cloud-computers/relay-get"},{"title":"Relay Wake","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/relay/{computer_id}/wake","href":"/api-reference/cloud-computers/relay-wake"},{"title":"Relay Update","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/relay/{computer_id}/update","href":"/api-reference/cloud-computers/relay-update"},{"title":"Host Credentials","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/host/{computer_id}/credentials","href":"/api-reference/cloud-computers/host-credentials"},{"title":"Host Heartbeat","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/host/{computer_id}/heartbeat","href":"/api-reference/cloud-computers/host-heartbeat"},{"title":"Host Admit Work","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/host/{computer_id}/admit-work","href":"/api-reference/cloud-computers/host-admit-work"},{"title":"Get Computer","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/{computer_id}","href":"/api-reference/cloud-computers/get-computer"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /cloud-computers/{computer_id}","href":"/api-reference/cloud-computers/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml patch /cloud-computers/{computer_id}","href":"/api-reference/cloud-computers/update"},{"title":"Wake","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/{computer_id}/wake","href":"/api-reference/cloud-computers/wake"},{"title":"Apply Update","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/{computer_id}/update","href":"/api-reference/cloud-computers/apply-update"},{"title":"Sleep","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/{computer_id}/sleep","href":"/api-reference/cloud-computers/sleep"},{"title":"Resize","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/{computer_id}/resize","href":"/api-reference/cloud-computers/resize"},{"title":"Usage","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/{computer_id}/usage","href":"/api-reference/cloud-computers/usage"},{"title":"Files","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /cloud-computers/{computer_id}/files","href":"/api-reference/cloud-computers/files"},{"title":"Download","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /cloud-computers/{computer_id}/downloads","href":"/api-reference/cloud-computers/download"}]},{"group":"drive","pages":[{"title":"List Folders","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /drive/folders","href":"/api-reference/drive/list-folders"},{"title":"Create Folder","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /drive/folders","href":"/api-reference/drive/create-folder"},{"title":"Get Tree","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /drive/tree","href":"/api-reference/drive/get-tree"},{"title":"List Files","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /drive/files","href":"/api-reference/drive/list-files"},{"title":"List Items","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /drive/items","href":"/api-reference/drive/list-items"},{"title":"Get File","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /drive/files/{file_id}","href":"/api-reference/drive/get-file"},{"title":"Download File","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /drive/files/{file_id}/download","href":"/api-reference/drive/download-file"},{"title":"Move Item","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /drive/items/{item_ref}/move","href":"/api-reference/drive/move-item"},{"title":"Delete Item","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /drive/items/{item_ref}","href":"/api-reference/drive/delete-item"},{"title":"Update Item","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml patch /drive/items/{item_ref}","href":"/api-reference/drive/update-item"}]},{"group":"web","pages":[{"title":"Web Search","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /web/search","href":"/api-reference/web/web-search"},{"title":"Web Read","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /web/read","href":"/api-reference/web/web-read"}]},{"group":"websites","pages":[{"title":"List Websites","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /websites","href":"/api-reference/websites/list-websites"},{"title":"Create Website","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /websites","href":"/api-reference/websites/create-website"},{"title":"Get Website","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /websites/{website_id}","href":"/api-reference/websites/get-website"},{"title":"Delete Website","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /websites/{website_id}","href":"/api-reference/websites/delete-website"},{"title":"Update Website Content","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml put /websites/{website_id}/content","href":"/api-reference/websites/update-website-content"},{"title":"List Website Pages","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /websites/{website_id}/pages","href":"/api-reference/websites/list-website-pages"},{"title":"Add Website Page","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /websites/{website_id}/pages","href":"/api-reference/websites/add-website-page"},{"title":"Delete Website Page","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml delete /websites/{website_id}/pages","href":"/api-reference/websites/delete-website-page"},{"title":"Update Website Page Content","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml put /websites/{website_id}/pages/content","href":"/api-reference/websites/update-website-page-content"},{"title":"Screenshot Website","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /websites/{website_id}/screenshot","href":"/api-reference/websites/screenshot-website"},{"title":"Publish Website","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /websites/{website_id}/publish","href":"/api-reference/websites/publish-website"},{"title":"Unpublish Website","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /websites/{website_id}/unpublish","href":"/api-reference/websites/unpublish-website"}]},{"group":"ask-expert","pages":[{"title":"Ask Expert","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml post /ask","href":"/api-reference/ask-expert/ask-expert"}]}]},{"tab":"Canvas Embed SDK","icon":"window","hidden":true,"pages":[{"title":"Canvas Embed SDK","href":"/canvas-embed/overview"}]}]},"basePath":"","title":"Start Design Task - Moda","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CDiBsYGW.js","utils-KF9rPlmF.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C26urKTX.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BdjmJAC1.js","snippetPresets-3IpDBjt3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-D4x_2vvo.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BIWdc5Pa.js","shallow-LQqfiMNd.js","getApiPlaygroundDisplay-DryzlOZG.js","CodeSnippet-tcJujU4r.js","CodeSnippets-BHp0nVLL.js","Page-1CZdsdAn.js","getPastedJson-DU-1ayUv.js","icon-CZK2hPr4.js","MethodPill-DOaqmTFC.js","DuplicateIcon-B5-nUxxl.js","createIcon-CDP_U77G.js","DynamicMarkdown-GHvayGOn.js","SectionHeading-BYvpkmUD.js","axios-vUo_bRtp.js","Markdown-uxhlayGT.js","clsx-B35qUV0p.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BvrGG8gU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CAf0yVYe.js"]}