Search canvases by name or content (relevance-ranked, offset-paginated).
A search lane has no cheap true total, so the response carries an explicit
has_more instead — when true, request the next page with
offset = offset + limit. Results are capped at limit per page
(default 20, cap 100).
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.
Results to skip — pass offset + limit to page through.
Required range: x >= 0
Response
Successful Response
Relevance-ranked canvas search response.
A search lane has no cheap true total (ranking + full-text matching make
COUNT(*) as expensive as the search itself), so total is omitted;
has_more is always present and explicit — a page is never allowed to
silently look complete. Page through with offset.
true when more matches exist beyond this page — request the next page via offset.
{"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/canvases/search-canvases","slug":"/api-reference/canvases/search-canvases","pageMetadata":{"title":"Search Canvases","description":"Search canvases by name or content (relevance-ranked, offset-paginated).\n\nA search lane has no cheap true total, so the response carries an explicit\n``has_more`` instead — when ``true``, request the next page with\n``offset = offset + limit``. Results are capped at ``limit`` per page\n(default 20, cap 100).","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/search","href":"/api-reference/canvases/search-canvases","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Search canvases by name or content (relevance-ranked, offset-paginated).\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A search lane has no cheap true total, so the response carries an explicit\\n\", _jsx(_components.code, {\n children: \"has_more\"\n }), \" instead — when \", _jsx(_components.code, {\n children: \"true\"\n }), \", request the next page with\\n\", _jsx(_components.code, {\n children: \"offset = offset + limit\"\n }), \". Results are capped at \", _jsx(_components.code, {\n children: \"limit\"\n }), \" per page\\n(default 20, cap 100).\"]\n })]\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":"Search Canvases","description":"Search canvases by name or content (relevance-ranked, offset-paginated).\n\nA search lane has no cheap true total, so the response carries an explicit\n``has_more`` instead — when ``true``, request the next page with\n``offset = offset + limit``. Results are capped at ``limit`` per page\n(default 20, cap 100).","deprecated":null,"version":null,"openapi":"/openapi/moda-public-api.yaml get /canvases/search","href":"/api-reference/canvases/search-canvases","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["canvases"],"summary":"Search Canvases","description":"Search canvases by name or content (relevance-ranked, offset-paginated).\n\nA search lane has no cheap true total, so the response carries an explicit\n``has_more`` instead — when ``true``, request the next page with\n``offset = offset + limit``. Results are capped at ``limit`` per page\n(default 20, cap 100).","operationId":"searchCanvases","security":["5067dd5c-a286-4e19-a036-6327965e4778"],"parameters":["dce4c57e-eda8-417e-99d9-4cbd5e50df0f","3617844f-38f3-432c-87da-2b262fff409e","ea6e245d-74bb-480f-a03c-9cafb142c6f9","5fc1140a-3d99-41eb-a249-e84cd7efcd90"],"responses":{"200":"2089f7b2-0270-4ac9-9b1e-086372047e7b","401":"b9720583-538a-4b54-bce6-42700d1cb604","402":"8b8464f7-196c-4010-b556-c84d738fd210","403":"6e5ad6cb-a541-40fe-9ca4-3294d85780d1","404":"ccf22305-58b8-4ff3-897d-6a7c4e3aa96f","409":"98bc53ae-6ce1-48a5-b0d7-c19f0b360768","422":"ea54f4a9-51f2-4e11-828d-5ced6ef20c04","429":"c75b8ffe-4d71-4452-be09-fdb639e04763","500":"b2d39ab7-0334-4606-aa1c-b53f5f019d19"},"method":"get","type":"path","servers":["900bd1dd-1657-41cc-9e95-57b7af147e04"],"path":"/canvases/search","baseUrlOptions":["https://api.moda.app/v1"],"title":"Search Canvases","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"dce4c57e-eda8-417e-99d9-4cbd5e50df0f":{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Search query","title":"Q","isRequired":true,"uniqueKey":"","typeLabel":"string"},"description":"Search query"},"3617844f-38f3-432c-87da-2b262fff409e":{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max results per page. Defaults to 20, caps at 100.","default":20,"title":"Limit","isRequired":false,"uniqueKey":"","typeLabel":"integer"},"description":"Max results per page. Defaults to 20, caps at 100."},"ea6e245d-74bb-480f-a03c-9cafb142c6f9":{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Results to skip — pass ``offset + limit`` to page through.","default":0,"title":"Offset","isRequired":false,"uniqueKey":"","typeLabel":"integer"},"description":"Results to skip — pass ``offset + limit`` to page through."},"5fc1140a-3d99-41eb-a249-e84cd7efcd90":{"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>"}}},"responses":{"2089f7b2-0270-4ac9-9b1e-086372047e7b":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"canvases":{"items":{"properties":{"id":{"type":"string","pattern":"^cvs_[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$","title":"Id","description":"Unique canvas identifier (prefixed ``cvs_...``).","example":"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV","isRequired":true,"uniqueKey":"canvases.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Display name of the canvas.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].name","typeLabel":"string"},"url":{"type":"string","title":"Url","description":"Full URL to open the canvas in the Moda editor.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].url","typeLabel":"string"},"category":{"oneOf":[{"type":"string","title":"Category","description":"Canvas format category — one of ``slides``, ``social``, ``carousel``, ``pdf``, ``diagram``, ``ui``, ``animation``, ``prints``, ``web-ads``, ``other``, or ``null`` when unset. Use this to distinguish slide decks from social posts etc. in list UIs.","uniqueKey":"canvases.items.[INDEX].category.oneOf.0","typeLabel":"string"},{"type":"null","title":"Category","description":"Canvas format category — one of ``slides``, ``social``, ``carousel``, ``pdf``, ``diagram``, ``ui``, ``animation``, ``prints``, ``web-ads``, ``other``, or ``null`` when unset. Use this to distinguish slide decks from social posts etc. in list UIs.","uniqueKey":"canvases.items.[INDEX].category.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvases.items.[INDEX].category","typeLabel":"string | null"},"visibility":{"oneOf":[{"type":"string","title":"Visibility","description":"Canvas visibility — ``team`` (visible to everyone on the team) or ``private`` (only the creator and explicit shares).","uniqueKey":"canvases.items.[INDEX].visibility.oneOf.0","typeLabel":"string"},{"type":"null","title":"Visibility","description":"Canvas visibility — ``team`` (visible to everyone on the team) or ``private`` (only the creator and explicit shares).","uniqueKey":"canvases.items.[INDEX].visibility.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvases.items.[INDEX].visibility","typeLabel":"string | null"},"created_at":{"oneOf":[{"type":"string","title":"Created At","description":"ISO 8601 timestamp when the canvas was created.","uniqueKey":"canvases.items.[INDEX].created_at.oneOf.0","typeLabel":"string"},{"type":"null","title":"Created At","description":"ISO 8601 timestamp when the canvas was created.","uniqueKey":"canvases.items.[INDEX].created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvases.items.[INDEX].created_at","typeLabel":"string | null"},"updated_at":{"oneOf":[{"type":"string","title":"Updated At","description":"ISO 8601 timestamp of the last modification.","uniqueKey":"canvases.items.[INDEX].updated_at.oneOf.0","typeLabel":"string"},{"type":"null","title":"Updated At","description":"ISO 8601 timestamp of the last modification.","uniqueKey":"canvases.items.[INDEX].updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvases.items.[INDEX].updated_at","typeLabel":"string | null"},"created_by":{"oneOf":[{"type":"object","title":"CreatorInfo","description":"Canvas creator (id, name, email). ``null`` when the creator user has been deleted or the relationship failed to load.","required":["id","name","email"],"properties":{"id":{"type":"string","title":"Id","description":"User ID of the creator.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].created_by.oneOf.0.id","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Display name of the creator.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].created_by.oneOf.0.name","typeLabel":"string"},"email":{"type":"string","title":"Email","description":"Email address of the creator.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].created_by.oneOf.0.email","typeLabel":"string"}},"uniqueKey":"canvases.items.[INDEX].created_by.oneOf.0","typeLabel":"CreatorInfo · object"},{"type":"null","description":"Canvas creator (id, name, email). ``null`` when the creator user has been deleted or the relationship failed to load.","uniqueKey":"canvases.items.[INDEX].created_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvases.items.[INDEX].created_by","typeLabel":"CreatorInfo · object | null"},"template_type":{"oneOf":[{"type":"string","title":"Template Type","description":"'template', 'theme', or null.","uniqueKey":"canvases.items.[INDEX].template_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Template Type","description":"'template', 'theme', or null.","uniqueKey":"canvases.items.[INDEX].template_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvases.items.[INDEX].template_type","typeLabel":"string | null"},"folder":{"oneOf":[{"type":"object","title":"CanvasFolderRef","description":"The drive folder the canvas is filed in; ``null`` when unfiled (at the team root).","required":["id","path","restricted"],"properties":{"id":{"oneOf":[{"type":"string","title":"Id","description":"Folder id (prefixed ``fld_...``) — the same id the drive tree returns. ``null`` when restricted.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Id","description":"Folder id (prefixed ``fld_...``) — the same id the drive tree returns. ``null`` when restricted.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0.id","typeLabel":"string | null"},"path":{"oneOf":[{"type":"string","title":"Path","description":"Folder path, e.g. ``/Sales/Ethos``. ``null`` when restricted.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0.path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Path","description":"Folder path, e.g. ``/Sales/Ethos``. ``null`` when restricted.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0.path.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0.path","typeLabel":"string | null"},"restricted":{"type":"boolean","title":"Restricted","description":"``true`` when the canvas is filed in a folder the caller cannot see (another member's private folder); its id and path are withheld.","isRequired":true,"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0.restricted","typeLabel":"boolean"}},"uniqueKey":"canvases.items.[INDEX].folder.oneOf.0","typeLabel":"CanvasFolderRef · object"},{"type":"null","description":"The drive folder the canvas is filed in; ``null`` when unfiled (at the team root).","uniqueKey":"canvases.items.[INDEX].folder.oneOf.1","typeLabel":"null"}],"uniqueKey":"canvases.items.[INDEX].folder","typeLabel":"CanvasFolderRef · object | null"}},"type":"object","required":["id","name","url"],"title":"CanvasItem","uniqueKey":"canvases.items.[INDEX]","typeLabel":"CanvasItem · object"},"type":"array","title":"Canvases","description":"Canvases matching the search query, ranked by relevance.","isRequired":true,"uniqueKey":"canvases","typeLabel":"CanvasItem · object[]"},"returned":{"type":"integer","title":"Returned","description":"Number of canvases in this page (always ``len(canvases)``).","default":0,"uniqueKey":"returned","typeLabel":"integer"},"limit":{"type":"integer","title":"Limit","description":"The effective page-size limit this response was computed with.","default":20,"uniqueKey":"limit","typeLabel":"integer"},"offset":{"type":"integer","title":"Offset","description":"Offset this page started at. Pass ``offset + limit`` to continue.","default":0,"uniqueKey":"offset","typeLabel":"integer"},"has_more":{"type":"boolean","title":"Has More","description":"``true`` when more matches exist beyond this page — request the next page via ``offset``.","default":false,"uniqueKey":"has_more","typeLabel":"boolean"}},"type":"object","required":["canvases"],"title":"SearchCanvasesResponse","description":"Relevance-ranked canvas search response.\n\nA search lane has no cheap true total (ranking + full-text matching make\n``COUNT(*)`` as expensive as the search itself), so ``total`` is omitted;\n``has_more`` is always present and explicit — a page is never allowed to\nsilently look complete. Page through with ``offset``.","uniqueKey":"","typeLabel":"SearchCanvasesResponse · object"},"examples":{"Example":{"title":"Example","value":{"canvases":[{"id":"cvs_01HT9WK8N3M2J4A5Z6P7Q8R9TV","name":"\u003cstring>","url":"\u003cstring>","category":"\u003cstring>","visibility":"\u003cstring>","created_at":"\u003cstring>","updated_at":"\u003cstring>","created_by":{"id":"\u003cstring>","name":"\u003cstring>","email":"\u003cstring>"},"template_type":"\u003cstring>","folder":{"id":"\u003cstring>","path":"\u003cstring>","restricted":true}}],"returned":0,"limit":20,"offset":0,"has_more":false}}},"exampleType":"generated"}},"exampleType":"generated"},"b9720583-538a-4b54-bce6-42700d1cb604":{"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"},"8b8464f7-196c-4010-b556-c84d738fd210":{"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"},"6e5ad6cb-a541-40fe-9ca4-3294d85780d1":{"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"},"ccf22305-58b8-4ff3-897d-6a7c4e3aa96f":{"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"},"98bc53ae-6ce1-48a5-b0d7-c19f0b360768":{"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"},"ea54f4a9-51f2-4e11-828d-5ced6ef20c04":{"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"},"c75b8ffe-4d71-4452-be09-fdb639e04763":{"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"},"b2d39ab7-0334-4606-aa1c-b53f5f019d19":{"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":{"5067dd5c-a286-4e19-a036-6327965e4778":{"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":"Search Canvases - Moda","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T18:06:14.813Z","originalFileLocation":"api-reference/canvases/search-canvases.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=\"Search canvases by name or content (relevance-ranked, offset-paginated). A search lane has no cheap true total, so the response carries an explicit has_more instead — when true, request the next page with offset = offset + limit. Results are capped at limit per page (default 20, cap 100).\">\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=\"Search Canvases - Moda\">\u003cmeta data-mint-head property=\"og:description\" content=\"Search canvases by name or content (relevance-ranked, offset-paginated). A search lane has no cheap true total, so the response carries an explicit has_more instead — when true, request the next page with offset = offset + limit. Results are capped at limit per page (default 20, cap 100).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Moda\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.moda.app/api-reference/canvases/search-canvases\">\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=canvases\u0026amp;title=Search+Canvases\u0026amp;description=Search+canvases+by+name+or+content+%28relevance-ranked%2C+offset-paginated%29.%0A%0AA+search+lane+has+no+cheap+true+total%2C+so+the+response+carries+an+explicit%0A%60%60has_more%60\u0026amp;theme=b22501ae2719082997928ddd\u0026amp;signature=58ec0453e811510074a21b63557bf649762b47476912e2230009110599a352e5\">\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=\"Search Canvases - Moda\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Search canvases by name or content (relevance-ranked, offset-paginated). A search lane has no cheap true total, so the response carries an explicit has_more instead — when true, request the next page with offset = offset + limit. Results are capped at limit per page (default 20, cap 100).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moda-997c0526.mintlify.site/_mintlify/api/og/v2?division=canvases\u0026amp;title=Search+Canvases\u0026amp;description=Search+canvases+by+name+or+content+%28relevance-ranked%2C+offset-paginated%29.%0A%0AA+search+lane+has+no+cheap+true+total%2C+so+the+response+carries+an+explicit%0A%60%60has_more%60\u0026amp;theme=b22501ae2719082997928ddd\u0026amp;signature=58ec0453e811510074a21b63557bf649762b47476912e2230009110599a352e5\">\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/canvases/search-canvases\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/canvases/search-canvases.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/canvases/search-canvases#webpage\",\"url\":\"https://docs.moda.app/api-reference/canvases/search-canvases\",\"name\":\"Search Canvases\",\"description\":\"Search canvases by name or content (relevance-ranked, offset-paginated). A search lane has no cheap true total, so the response carries an explicit has_more instead — when true, request the next page with offset = offset + limit. Results are capped at limit per page (default 20, cap 100).\",\"dateModified\":\"2026-11-12T18:06:14.813Z\",\"isPartOf\":{\"@id\":\"https://docs.moda.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.moda.app/api-reference/canvases/search-canvases#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.moda.app/api-reference/canvases/search-canvases#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"canvases\",\"item\":\"https://docs.moda.app/api-reference/canvases/list-canvases\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Search Canvases\",\"item\":\"https://docs.moda.app/api-reference/canvases/search-canvases\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.moda.app/api-reference/canvases/search-canvases#apireference\",\"headline\":\"Search Canvases\",\"name\":\"Search Canvases\",\"description\":\"Search canvases by name or content (relevance-ranked, offset-paginated). A search lane has no cheap true total, so the response carries an explicit has_more instead — when true, request the next page with offset = offset + limit. Results are capped at limit per page (default 20, cap 100).\",\"url\":\"https://docs.moda.app/api-reference/canvases/search-canvases\",\"mainEntityOfPage\":{\"@id\":\"https://docs.moda.app/api-reference/canvases/search-canvases#webpage\"},\"dateModified\":\"2026-11-12T18:06:14.813Z\",\"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/canvases/search-canvases.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","description":"List canvases accessible to the API key's team (cursor pagination).\n\nReturns at most ``limit`` canvases per page (default 20, cap 100). No\ncheap true ``total`` exists on this lane (the doc-kind filter reads\nun-indexed JSONB, so an exact count would scan every canvas document) —\n``has_more`` is always explicit instead: iterate ``next_cursor`` while it\nis ``true`` to fetch everything.","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","description":"Get the semantic design spec + structured canvas metadata.","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","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","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":"Search Canvases - 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"]}