Every MCP tool as a REST endpoint: same capabilities, permissions and limits.
The tools endpoints give the API everything the EcomWize MCP server can do. Each MCP tool is one REST call, with the same arguments, the same permissions and the same rate limits. Whatever works in Claude, ChatGPT or Cursor works over the API.
Returns { "tools": [ { "name", "description", "inputSchema", "annotations" } ] } with only the tools your key may use. Read-only keys get the read tools.
Limits are shared per workspace across the API and MCP: 120 read calls, 30 edit or publish calls and 10 AI calls per minute.
Page writes are safe to run while someone edits in the builder: a write that would overwrite newer changes is refused, and every write saves a version you can restore from History.
Read a page: settings, brand kit, linked product, and every section with its id, name, editable text slots (t0, t1…) and image slots (i0, i1…). Returns sections_hash for safe writes. Call get_section_code for a section’s full code.
Create a draft page: blank, or a copy of a template (keeps the template design). Optionally attach a brand kit and a store product. To have AI write it for a product, use generate_page instead.
Add a section: a library design (library_key, every plan) or your own code (source + optional css, name; Max plan). Placed at the end unless after_section_id or position is given. Code is sanitized, rendered and compiled before saving; errors come back to fix.
Argument
Type
Required
Description
page_id
string
Yes
Page id (from list_pages).
library_key
string
No
source
string
No
css
string
No
name
string
No
after_section_id
string
No
Insert after this section, or “start”.
expected_hash
string
No
sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.
Max plan only. Change a section’s code: either the full new source, or patches (exact find/replace, first match each). Optional css and name. Validated (sanitize, Liquid render, Tailwind) before saving; a version is kept so it can be restored.
Argument
Type
Required
Description
page_id
string
Yes
Page id (from list_pages).
section_id
string
Yes
Section id (from get_page).
source
string
No
patches
array of object
No
css
string
No
name
string
No
expected_hash
string
No
sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.
Create a brand kit by hand: name plus design fields (see get_brand_kit for names, e.g. brand_primary, btn_color, font_family_heading) and optional context (store_name, tagline, niche, audience, about).
AI writes a complete page for a product in about 30 seconds: from the section library for the page type, or by filling a template. Creates the page unless page_id (an empty page) is given. Costs 50 credits, plus 10 per image when generate_images is true.
AI creates a brand kit from a description (“calm, premium skincare, sage green”) or from a website URL (reads its real colors and fonts). Saves it in the workspace. Costs 1 credit.
Publish (or republish) a page to its connected Shopify store. Returns the live URL.
Argument
Type
Required
Description
page_id
string
Yes
Page id (from list_pages).
store_id
string
No
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"EcomWize Help Center","colors":{"primary":"#6E51EC","light":"#FFFFFF","dark":"#171717"},"logo":{"light":"https://mintcdn.com/ecomwize/JsWC_FijBx-b2Uw0/logo/ecomwize-light.svg?fit=max\u0026auto=format\u0026n=JsWC_FijBx-b2Uw0\u0026q=85\u0026s=c6d1c4eb7eb59fcf49fd19cd4c85a068","dark":"https://mintcdn.com/ecomwize/JsWC_FijBx-b2Uw0/logo/ecomwize-dark.svg?fit=max\u0026auto=format\u0026n=JsWC_FijBx-b2Uw0\u0026q=85\u0026s=c4cb8da51e7c7e024ac1516c083d721c","href":"https://ecomwize.io"},"favicon":"https://mintcdn.com/ecomwize/JsWC_FijBx-b2Uw0/favicon.png?fit=max\u0026auto=format\u0026n=JsWC_FijBx-b2Uw0\u0026q=85\u0026s=617e069ac9c012d6e6a5368f587860a9","api":{"playground":{}},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Open EcomWize","href":"https://app.ecomwize.io"}},"footer":{"socials":{"x":"https://x.com/EcomWize","linkedin":"https://www.linkedin.com/company/ecomwize-io","youtube":"https://www.youtube.com/@EcomWize","website":"https://ecomwize.io"}},"fonts":{"family":"Inter"},"contextual":{"options":["copy","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Go to EcomWize","icon":"arrow-up-right-from-square","href":"https://app.ecomwize.io"},{"anchor":"Feature Requests","icon":"lightbulb","href":"https://ecomwize.featurebase.app"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ecomwize","hasAudioNarration":false,"actualSubdomain":"ecomwize","customDomains":["docs.ecomwize.io"],"gitSource":{"type":"github","owner":"ecomwize","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae20758494007f25510650b","collectionId":"709b8901-110e-4f78-ae25-9782df02b557","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae20758494007f25510650b"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae20758494007f25510650b","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Guides","count":30},{"language":"default","tag":"MCP \u0026 API","count":9},{"language":"default","tag":"Builder","count":8},{"language":"default","tag":"Endpoints","count":5},{"language":"default","tag":"Create pages","count":5},{"language":"default","tag":"Get started","count":4},{"language":"default","tag":"Plans and billing","count":3},{"language":"default","tag":"Publish","count":3},{"language":"default","tag":"API","count":2},{"language":"default","tag":"Brand and images","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar img{width:132px;height:auto}#page-title,#sidebar-group>h5,.card h2,.card h3,.eyebrow,h1,h2,h3,h4,h5,h6{font-weight:400!important}.card .prose,.card [data-component-part=card-content],[data-component-part=card-content] p{font-size:14px!important;line-height:1.5!important}"}],"page":{"pagePath":"api/tools","slug":"/api/tools","pageMetadata":{"title":"Tools","description":"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.","icon":"https://assets.ecomwize.io/docs/icons/screwdriver-wrench.svg","href":"/api/tools"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The tools endpoints give the API everything the EcomWize MCP server can do. Each MCP tool is one REST call, with the same arguments, the same permissions and the same rate limits. Whatever works in Claude, ChatGPT or Cursor works over the API.`}),`\n`,_jsx(Heading,{level:`2`,id:`list-the-tools-you-can-call`,children:`List the tools you can call`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://app.ecomwize.io/api/v1/tools`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer ew_live_YOUR_KEY\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Returns `,_jsx(_components.code,{children:`{ \"tools\": [ { \"name\", \"description\", \"inputSchema\", \"annotations\" } ] }`}),` with only the tools your key may use. Read-only keys get the read tools.`]}),`\n`,_jsx(Heading,{level:`2`,id:`call-a-tool`,children:`Call a tool`}),`\n`,_jsx(_components.p,{children:`Send the tool arguments as a JSON object:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://app.ecomwize.io/api/v1/tools/get_page`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer ew_live_YOUR_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"page_id\": \"PAGE_ID\"}'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A successful call returns `,_jsx(_components.code,{children:`{ \"result\": ... }`}),`. Errors return `,_jsx(_components.code,{children:`{ \"error\", \"message\", \"status\" }`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:`Invalid arguments, or the tool could not run (the message says why)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`Missing or invalid API key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:`Your key lacks the permission this tool needs (use a full access key)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:`Unknown tool name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`413`})}),_jsx(_components.td,{children:`Body larger than 512KB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`429`})}),_jsx(_components.td,{children:`Rate limit reached, try again in a minute`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`rate-limits`,children:`Rate limits`}),`\n`,_jsx(_components.p,{children:`Limits are shared per workspace across the API and MCP: 120 read calls, 30 edit or publish calls and 10 AI calls per minute.`}),`\n`,_jsx(Note,{children:`Page writes are safe to run while someone edits in the builder: a write that would overwrite newer changes is refused, and every write saves a version you can restore from History.`}),`\n`,_jsx(Heading,{level:`2`,id:`read-tools`,children:`Read tools`}),`\n`,_jsx(_components.p,{children:`Look up pages, section code, the section library, templates, brand kits, stores and products. Needs any key.`}),`\n`,_jsx(Heading,{level:`3`,id:`list_pages`,children:_jsx(_components.code,{children:`list_pages`})}),`\n`,_jsx(_components.p,{children:`List the workspace pages (newest first): id, title, status, page kind, section count, whether it is a code page, and the builder link.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`store_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Only pages of this connected store.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`limit`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Max pages (default 50, max 200).`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`get_page`,children:_jsx(_components.code,{children:`get_page`})}),`\n`,_jsx(_components.p,{children:`Read a page: settings, brand kit, linked product, and every section with its id, name, editable text slots (t0, t1…) and image slots (i0, i1…). Returns sections_hash for safe writes. Call get_section_code for a section’s full code.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`get_section_code`,children:_jsx(_components.code,{children:`get_section_code`})}),`\n`,_jsx(_components.p,{children:`Max plan only. The full Liquid + HTML + Tailwind code (and optional scoped CSS) of one section. Edit it, then send it back with update_section.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Section id (from get_page).`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`list_section_library`,children:_jsx(_components.code,{children:`list_section_library`})}),`\n`,_jsx(_components.p,{children:`The proven section designs (hero, benefits, reviews, FAQ, product buy box…): key, name, category, description. Add one with add_section.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`category`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Optional category filter, e.g. hero, testimonial, faq.`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`get_library_section`,children:_jsx(_components.code,{children:`get_library_section`})}),`\n`,_jsx(_components.p,{children:`Max plan only. The code of a library section, to adapt before adding it with add_section (code).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`key`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Library key from list_section_library, e.g. hero01.`})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`list_templates`,children:_jsx(_components.code,{children:`list_templates`})}),`\n`,_jsx(_components.p,{children:`Ready-made page templates (landing pages, product pages, listicles…): id, name, category. Use with create_page or generate_page.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`category`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`list_brand_kits`,children:_jsx(_components.code,{children:`list_brand_kits`})}),`\n`,_jsx(_components.p,{children:`The workspace brand kits (colors, fonts, buttons + brand context) and the public preset looks.`}),`\n`,_jsx(_components.p,{children:`No arguments.`}),`\n`,_jsx(Heading,{level:`3`,id:`get_brand_kit`,children:_jsx(_components.code,{children:`get_brand_kit`})}),`\n`,_jsx(_components.p,{children:`All fields of one brand kit (design tokens and brand context).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`brand_kit_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`list_stores`,children:_jsx(_components.code,{children:`list_stores`})}),`\n`,_jsx(_components.p,{children:`Connected Shopify stores (id, domain, name).`}),`\n`,_jsx(_components.p,{children:`No arguments.`}),`\n`,_jsx(Heading,{level:`3`,id:`list_products`,children:_jsx(_components.code,{children:`list_products`})}),`\n`,_jsx(_components.p,{children:`Products of a connected Shopify store (id, title, handle, image, price).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`store_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`query`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Optional title filter.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`edit-tools`,children:`Edit tools`}),`\n`,_jsx(_components.p,{children:`Change pages, sections, settings and brand kits. No credits. Needs a key with full access.`}),`\n`,_jsx(Heading,{level:`3`,id:`create_page`,children:_jsx(_components.code,{children:`create_page`})}),`\n`,_jsx(_components.p,{children:`Create a draft page: blank, or a copy of a template (keeps the template design). Optionally attach a brand kit and a store product. To have AI write it for a product, use generate_page instead.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`title`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`template_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`brand_kit_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`store_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Shopify product id of that store.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`handle`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`add_section`,children:_jsx(_components.code,{children:`add_section`})}),`\n`,_jsx(_components.p,{children:`Add a section: a library design (library_key, every plan) or your own code (source + optional css, name; Max plan). Placed at the end unless after_section_id or position is given. Code is sanitized, rendered and compiled before saving; errors come back to fix.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`library_key`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`source`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`css`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`after_section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Insert after this section, or “start”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expected_hash`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`update_section`,children:_jsx(_components.code,{children:`update_section`})}),`\n`,_jsx(_components.p,{children:`Max plan only. Change a section’s code: either the full new source, or patches (exact find/replace, first match each). Optional css and name. Validated (sanitize, Liquid render, Tailwind) before saving; a version is kept so it can be restored.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Section id (from get_page).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`source`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`patches`})}),_jsx(_components.td,{children:`array of object`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`css`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expected_hash`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`edit_text`,children:_jsx(_components.code,{children:`edit_text`})}),`\n`,_jsx(_components.p,{children:`Replace text in a section by slot key (t0, t1… from get_page). Plain text only (HTML is escaped). Safest way to rewrite copy.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Section id (from get_page).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`texts`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`e.g. { “t0”: “New headline”, “t2”: “New button” }`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expected_hash`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`replace_image`,children:_jsx(_components.code,{children:`replace_image`})}),`\n`,_jsx(_components.p,{children:`Swap images in a section by slot key (i0, i1… from get_page) with public https image URLs.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Section id (from get_page).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`images`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`e.g. { “i0”: { “url”: “https://…”, “alt”: ”…” } }`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expected_hash`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`remove_section`,children:_jsx(_components.code,{children:`remove_section`})}),`\n`,_jsx(_components.p,{children:`Delete a section (a version is kept, restorable from the builder History).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Section id (from get_page).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expected_hash`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`move_section`,children:_jsx(_components.code,{children:`move_section`})}),`\n`,_jsx(_components.p,{children:`Move a section to a new position (0 = first) or right after another section.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Section id (from get_page).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`position`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`after_section_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expected_hash`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`sections_hash from your last get_page / write. If the page changed since (e.g. edited in the builder), the write is refused so nothing is overwritten.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`update_page_settings`,children:_jsx(_components.code,{children:`update_page_settings`})}),`\n`,_jsx(_components.p,{children:`Page title, URL handle, SEO description and page background color.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`title`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`handle`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`meta_description`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_background`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Hex color, e.g. #FFF8F2`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`set_brand_kit`,children:_jsx(_components.code,{children:`set_brand_kit`})}),`\n`,_jsx(_components.p,{children:`Style a page with a brand kit (its colors, fonts and buttons apply to every section).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`brand_kit_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`create_brand_kit`,children:_jsx(_components.code,{children:`create_brand_kit`})}),`\n`,_jsx(_components.p,{children:`Create a brand kit by hand: name plus design fields (see get_brand_kit for names, e.g. brand_primary, btn_color, font_family_heading) and optional context (store_name, tagline, niche, audience, about).`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`fields`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`context`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`update_brand_kit`,children:_jsx(_components.code,{children:`update_brand_kit`})}),`\n`,_jsx(_components.p,{children:`Change fields of one of the workspace brand kits.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`brand_kit_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`fields`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`context`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`fill_page_sections`,children:_jsx(_components.code,{children:`fill_page_sections`})}),`\n`,_jsx(_components.p,{children:`Classic pages only (sections that are not code). Update content fields keyed section_1, section_2… For code pages use edit_text / update_section.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sections`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`duplicate_page`,children:_jsx(_components.code,{children:`duplicate_page`})}),`\n`,_jsx(_components.p,{children:`Duplicate a page (any kind) as a new draft, within the plan page limit.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`title`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`generate-with-ai-tools`,children:`Generate with AI tools`}),`\n`,_jsx(_components.p,{children:`AI work that spends your workspace credits. Needs a key with full access.`}),`\n`,_jsx(Heading,{level:`3`,id:`generate_page`,children:_jsx(_components.code,{children:`generate_page`})}),`\n`,_jsx(_components.p,{children:`AI writes a complete page for a product in about 30 seconds: from the section library for the page type, or by filling a template. Creates the page unless page_id (an empty page) is given. Costs 50 credits, plus 10 per image when generate_images is true.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`prompt`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`What to build, for whom, the angle and tone.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_type`})}),_jsxs(_components.td,{children:[`string: `,_jsx(_components.code,{children:`landing page`}),`, `,_jsx(_components.code,{children:`product page`}),`, `,_jsx(_components.code,{children:`listicle`}),`, `,_jsx(_components.code,{children:`advertorial`}),`, `,_jsx(_components.code,{children:`homepage`}),`, `,_jsx(_components.code,{children:`quiz`})]}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`title`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`template_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`keep_template_style`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`With template_id: keep the template design (default true) or restyle it to the brand kit.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`brand_kit_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`store_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`generate_images`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`generate_brand_kit`,children:_jsx(_components.code,{children:`generate_brand_kit`})}),`\n`,_jsx(_components.p,{children:`AI creates a brand kit from a description (“calm, premium skincare, sage green”) or from a website URL (reads its real colors and fonts). Saves it in the workspace. Costs 1 credit.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`url`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`publish-tools`,children:`Publish tools`}),`\n`,_jsx(_components.p,{children:`Publish pages to your connected Shopify store. Needs a key with full access.`}),`\n`,_jsx(Heading,{level:`3`,id:`publish_page`,children:_jsx(_components.code,{children:`publish_page`})}),`\n`,_jsx(_components.p,{children:`Publish (or republish) a page to its connected Shopify store. Returns the live URL.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Page id (from list_pages).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`store_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Tools","description":"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.","icon":"https://assets.ecomwize.io/docs/icons/screwdriver-wrench.svg","href":"/api/tools"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"List the tools you can call","slug":"list-the-tools-you-can-call","depth":2,"children":[]},{"title":"Call a tool","slug":"call-a-tool","depth":2,"children":[]},{"title":"Rate limits","slug":"rate-limits","depth":2,"children":[]},{"title":"Read tools","slug":"read-tools","depth":2,"children":[{"title":"list_pages","slug":"list_pages","depth":3,"children":[]},{"title":"get_page","slug":"get_page","depth":3,"children":[]},{"title":"get_section_code","slug":"get_section_code","depth":3,"children":[]},{"title":"list_section_library","slug":"list_section_library","depth":3,"children":[]},{"title":"get_library_section","slug":"get_library_section","depth":3,"children":[]},{"title":"list_templates","slug":"list_templates","depth":3,"children":[]},{"title":"list_brand_kits","slug":"list_brand_kits","depth":3,"children":[]},{"title":"get_brand_kit","slug":"get_brand_kit","depth":3,"children":[]},{"title":"list_stores","slug":"list_stores","depth":3,"children":[]},{"title":"list_products","slug":"list_products","depth":3,"children":[]}]},{"title":"Edit tools","slug":"edit-tools","depth":2,"children":[{"title":"create_page","slug":"create_page","depth":3,"children":[]},{"title":"add_section","slug":"add_section","depth":3,"children":[]},{"title":"update_section","slug":"update_section","depth":3,"children":[]},{"title":"edit_text","slug":"edit_text","depth":3,"children":[]},{"title":"replace_image","slug":"replace_image","depth":3,"children":[]},{"title":"remove_section","slug":"remove_section","depth":3,"children":[]},{"title":"move_section","slug":"move_section","depth":3,"children":[]},{"title":"update_page_settings","slug":"update_page_settings","depth":3,"children":[]},{"title":"set_brand_kit","slug":"set_brand_kit","depth":3,"children":[]},{"title":"create_brand_kit","slug":"create_brand_kit","depth":3,"children":[]},{"title":"update_brand_kit","slug":"update_brand_kit","depth":3,"children":[]},{"title":"fill_page_sections","slug":"fill_page_sections","depth":3,"children":[]},{"title":"duplicate_page","slug":"duplicate_page","depth":3,"children":[]}]},{"title":"Generate with AI tools","slug":"generate-with-ai-tools","depth":2,"children":[{"title":"generate_page","slug":"generate_page","depth":3,"children":[]},{"title":"generate_brand_kit","slug":"generate_brand_kit","depth":3,"children":[]}]},{"title":"Publish tools","slug":"publish-tools","depth":2,"children":[{"title":"publish_page","slug":"publish_page","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ecomwize","siteName":"EcomWize Help Center","title":"Tools - EcomWize Help Center","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T14:32:05.803Z","originalFileLocation":"api/tools.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=\"system\"}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=\"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.\">\u003cmeta data-mint-head name=\"application-name\" content=\"EcomWize Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ecomwize/xp_js11rtnyO3wqS/_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/ecomwize/xp_js11rtnyO3wqS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ecomwize/xp_js11rtnyO3wqS/_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/ecomwize/xp_js11rtnyO3wqS/_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/ecomwize/xp_js11rtnyO3wqS/_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/ecomwize/xp_js11rtnyO3wqS/_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/ecomwize/xp_js11rtnyO3wqS/_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/ecomwize/xp_js11rtnyO3wqS/_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/ecomwize/xp_js11rtnyO3wqS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Tools - EcomWize Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"EcomWize Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ecomwize.io/api/tools\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ecomwize.mintlify.app/_mintlify/api/og/v2?division=Endpoints\u0026amp;title=Tools\u0026amp;description=Every+MCP+tool+as+a+REST+endpoint%3A+same+capabilities%2C+permissions+and+limits.\u0026amp;theme=83d4b1b48725df4986b1c491\u0026amp;signature=08ecbdc1e4376e28a569484724bf909f0e6de74e11996be05057a23446c029ff\">\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=\"Tools - EcomWize Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ecomwize.mintlify.app/_mintlify/api/og/v2?division=Endpoints\u0026amp;title=Tools\u0026amp;description=Every+MCP+tool+as+a+REST+endpoint%3A+same+capabilities%2C+permissions+and+limits.\u0026amp;theme=83d4b1b48725df4986b1c491\u0026amp;signature=08ecbdc1e4376e28a569484724bf909f0e6de74e11996be05057a23446c029ff\">\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/ecomwize/xp_js11rtnyO3wqS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"EcomWize Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6E51EC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ecomwize.io/api/tools\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/tools.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ecomwize.io/#organization\",\"name\":\"EcomWize Help Center\",\"url\":\"https://docs.ecomwize.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ecomwize/JsWC_FijBx-b2Uw0/logo/ecomwize-light.svg?fit=max\u0026auto=format\u0026n=JsWC_FijBx-b2Uw0\u0026q=85\u0026s=c6d1c4eb7eb59fcf49fd19cd4c85a068\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ecomwize.io#website\",\"name\":\"EcomWize Help Center\",\"url\":\"https://docs.ecomwize.io\",\"publisher\":{\"@id\":\"https://docs.ecomwize.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ecomwize.io/api/tools#webpage\",\"url\":\"https://docs.ecomwize.io/api/tools\",\"name\":\"Tools\",\"description\":\"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.\",\"dateModified\":\"2026-10-28T14:32:05.803Z\",\"isPartOf\":{\"@id\":\"https://docs.ecomwize.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ecomwize.io/api/tools#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ecomwize.io/api/tools#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"EcomWize Help Center\",\"item\":\"https://docs.ecomwize.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tools\",\"item\":\"https://docs.ecomwize.io/api/tools\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.ecomwize.io/api/tools#article\",\"headline\":\"Tools\",\"name\":\"Tools\",\"description\":\"Every MCP tool as a REST endpoint: same capabilities, permissions and limits.\",\"url\":\"https://docs.ecomwize.io/api/tools\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ecomwize.io/api/tools#webpage\"},\"dateModified\":\"2026-10-28T14:32:05.803Z\",\"publisher\":{\"@id\":\"https://docs.ecomwize.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ecomwize.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"EcomWize Help Center\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"EcomWize Help Center","nav":{"global":{"anchors":[{"anchor":"Go to EcomWize","icon":"arrow-up-right-from-square","href":"https://app.ecomwize.io"},{"anchor":"Feature Requests","icon":"lightbulb","href":"https://ecomwize.featurebase.app"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"MCP \u0026 API","groups":[{"group":"MCP","pages":[{"title":"Connect AI tools (MCP)","icon":"https://assets.ecomwize.io/docs/icons/plug.svg","href":"/integrations/mcp"}]},{"group":"API","pages":[{"title":"API overview","icon":"https://assets.ecomwize.io/docs/icons/code.svg","href":"/api/overview"},{"title":"Authentication","description":"Create and manage API keys to authenticate your requests.","icon":"https://assets.ecomwize.io/docs/icons/key.svg","href":"/api/authentication"}]},{"group":"Endpoints","pages":[{"title":"Tools","icon":"https://assets.ecomwize.io/docs/icons/screwdriver-wrench.svg","href":"/api/tools"},{"title":"List pages","api":"GET /v1/pages","description":"Retrieve a list of all your pages with their IDs, titles, and status.","href":"/api/list-pages"},{"title":"Get page","api":"GET /v1/pages/{page_id}","href":"/api/get-page"},{"title":"Fill page","api":"POST /v1/pages/{page_id}/fill","href":"/api/fill-page"},{"title":"Duplicate and fill","api":"POST /v1/pages/{page_id}/duplicate-and-fill","href":"/api/duplicate-and-fill"}]},{"group":"Reference","pages":[{"title":"Errors","icon":"https://assets.ecomwize.io/docs/icons/triangle-exclamation.svg","href":"/api/errors"}]}]}]},"title":"Tools - EcomWize Help Center","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":[],"chunks":[]}