Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.
Synchronize your entire product catalog with a product block. This endpoint creates new products, updates existing ones, and deletes products not in the request - providing a complete catalog sync.⚠️ Important: Products not included in the request will be deleted from the block.
Before: Block has products A, B, C
Request: Send products B (updated), D (new)
After: Block has products B (updated), D (new)
Deleted: Products A and C
In the description you only need to add words that help the AI do a semantic search, avoide placing here prices, links or other type of data that is not natural language
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Welcome 👋","colors":{"primary":"#2563EB","light":"#93C5FD","dark":"#1E3A8A"},"logo":"https://mintcdn.com/vambe-f69d5806/_YFOlf0qgMJ8Che1/images/fb1a23e-small-Vambe_Logo_Panda-White4x.png?fit=max\u0026auto=format\u0026n=_YFOlf0qgMJ8Che1\u0026q=85\u0026s=c84b8be7abfa14dd8e1674a247b9cc0b","favicon":"https://mintcdn.com/vambe-f69d5806/_YFOlf0qgMJ8Che1/df9628f-small-2NorthAm_Ops.png?fit=max\u0026auto=format\u0026n=_YFOlf0qgMJ8Che1\u0026q=85\u0026s=5d02cd83d033a951fa6d8bce17f58e33","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python"]}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vambe-f69d5806","hasAudioNarration":false,"actualSubdomain":"vambe-f69d5806","customDomains":["docs.vambe.me"],"gitSource":{"type":"github","owner":"vambeai","repo":"vambeai-backend","deployBranch":"main","contentDirectory":"public/documentation","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af62e1d015ac6c4e84aff07","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"Messaging API","count":44},{"language":"default","tag":"CRM \u0026 Contacts","count":24},{"language":"default","tag":"Custom Ecommerce Apps","count":22},{"language":"default","tag":"Contact Management","count":16},{"language":"default","tag":"Webhooks","count":16},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"App management API","count":11},{"language":"default","tag":"Instagram Comment Automations","count":9},{"language":"default","tag":"Appointments","count":8},{"language":"default","tag":"Booking API","count":8}]},"assistantConfig":{},"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":[{"filePath":"style.css","content":"img.sidebar-group-icon[src$=\"/icons/notepad-text-dashed.svg\"]{background-color:currentColor!important;object-position:-9999px 0;-webkit-mask:url(\"/images/icons/notepad-text-dashed.svg\") center / contain no-repeat;mask:url(\"/images/icons/notepad-text-dashed.svg\") center / contain no-repeat}"}],"page":{"pagePath":"reference/product/upsert-products","slug":"/reference/product/upsert-products","pageMetadata":{"openapi":"post /api/public/product/upsert/{promptBlockId}","title":"Upsert products","description":"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.","href":"/reference/product/upsert-products"},"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: \"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.\"\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={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Danger,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Danger)_missingMdxReference(`Danger`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`Synchronize your entire product catalog with a product block. This endpoint creates new products, updates existing ones, and `,_jsx(_components.strong,{children:`deletes products not in the request`}),` - providing a complete catalog sync.`]}),`\n`,_jsxs(_components.p,{children:[`⚠️ `,_jsx(_components.strong,{children:`Important`}),`: Products not included in the request will be deleted from the block.`]}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use Cases`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Full Catalog Sync`}),`: Replace entire catalog with current inventory`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Nightly Sync`}),`: Complete synchronization from e-commerce platform`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Inventory Management`}),`: Ensure only available products are in catalog`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Clean Sync`}),`: Remove discontinued products automatically`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`x-api-key: your_api_key_here`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameters`,children:`Path Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_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:`promptBlockId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Product block ID to synchronize`})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request Body`}),`\n`,_jsx(_components.p,{children:`Array of product objects (no limit):`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_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,{children:`Product name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Natural language description for AI (max 8192)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`price`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Product price (positive number)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`currency`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Currency code`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`PRODUCT or SERVICE`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`external_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Your unique identifier`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`file_url`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Product image URL`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sku`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Product SKU. Falls back to `,_jsx(_components.code,{children:`sku`}),` key in metadata`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`metadata`})}),_jsx(_components.td,{children:`array`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Additional product data as key-value pairs`})]})]})]}),`\n`,_jsx(Danger,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`⚠️ DELETES PRODUCTS`}),`: Any products in the block that are NOT in this\nrequest will be permanently deleted.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`example-request`,children:`Example Request`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,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:`21`,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:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.vambe.me/api/public/product/upsert/block-abc123'`}),_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:` --header`}),_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:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'x-api-key: your_api_key_here'`}),_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:` --data-raw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '[`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"Laptop Pro\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"description\": \"High-performance laptop for professionals. 16GB RAM, 512GB SSD, Intel i7 processor. Perfect for development and creative work.\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"price\": 1299.99,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"USD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\": \"PRODUCT\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"external_id\": \"laptop-pro-001\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"file_url\": \"https://shop.com/laptop.jpg\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"sku\": \"LAPTOP-PRO-001\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"metadata\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"key\": \"brand\", \"value\": \"TechBrand\" },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"key\": \"ram\", \"value\": \"16GB\" },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"key\": \"storage\", \"value\": \"512GB\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]'`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`behavior`,children:`Behavior`}),`\n`,_jsx(Heading,{level:`3`,id:`what-happens`,children:`What Happens`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Creates`}),`: Products with new `,_jsx(_components.code,{children:`external_id`}),` are created`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Updates`}),`: Products with existing `,_jsx(_components.code,{children:`external_id`}),` are updated`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Deletes`}),`: Products in block but NOT in request are deleted`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AI Embeddings`}),`: All products are re-indexed for AI search`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`example-scenario`,children:`Example Scenario`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Before`}),`: Block has products A, B, C\n`,_jsx(_components.strong,{children:`Request`}),`: Send products B (updated), D (new)\n`,_jsx(_components.strong,{children:`After`}),`: Block has products B (updated), D (new)\n`,_jsx(_components.strong,{children:`Deleted`}),`: Products A and C`]}),`\n`,_jsx(Heading,{level:`2`,id:`error-responses`,children:`Error Responses`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status Code`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Bad Request - Invalid data`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:`Unauthorized`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:`Forbidden`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`404`}),_jsx(_components.td,{children:`Product block not found`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsx(_components.td,{children:`Internal Server Error`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-endpoints`,children:`Related Endpoints`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/product/create-products`,children:`POST /api/public/product/create/`}),` - Add without deleting`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/product/delete-products`,children:`POST /api/public/product/delete/`}),` - Delete specific products`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/reference/product/get-product-blocks`,children:`GET /api/public/product/product-blocks`}),` - List blocks`]}),`\n`]})]})}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":{"openapi":"post /api/public/product/upsert/{promptBlockId}","title":"Upsert products","description":"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.","href":"/reference/product/upsert-products"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Use Cases","slug":"use-cases","depth":2,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"Path Parameters","slug":"path-parameters","depth":2,"children":[]},{"title":"Request Body","slug":"request-body","depth":2,"children":[]},{"title":"Example Request","slug":"example-request","depth":2,"children":[]},{"title":"Behavior","slug":"behavior","depth":2,"children":[{"title":"What Happens","slug":"what-happens","depth":3,"children":[]},{"title":"Example Scenario","slug":"example-scenario","depth":3,"children":[]}]},{"title":"Error Responses","slug":"error-responses","depth":2,"children":[]},{"title":"Related Endpoints","slug":"related-endpoints","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"PublicProductController_upsertProducts","summary":"Upsert products","description":"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.","parameters":["251e2838-0edc-4c3d-9292-7aa5cff37cc0","51e689c7-3269-4353-9d0f-115b8cc1e4f8"],"requestBody":"623710f0-6dcd-47ab-af81-7e0c916318b3","responses":{"201":"03635956-7c21-44b4-8149-53ec3cde5701","400":"e6e2eb86-7864-45ea-abff-b4e2e3373880","401":"f2d92978-3f22-4772-ab02-74c9bce7a709","403":"c8706336-97a3-4704-8e19-57f42dd7ad6e"},"tags":["Product"],"method":"post","type":"path","servers":["02ff634b-bead-4bab-a088-7dd8b9769625"],"security":[],"path":"/api/public/product/upsert/{promptBlockId}","baseUrlOptions":["https://api.vambe.me"],"title":"Upsert products","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"251e2838-0edc-4c3d-9292-7aa5cff37cc0":{"name":"promptBlockId","required":true,"in":"path","description":"The prompt block ID to upsert the products","schema":{"type":"string","isRequired":true,"description":"The prompt block ID to upsert the products","uniqueKey":"","typeLabel":"string"}},"51e689c7-3269-4353-9d0f-115b8cc1e4f8":{"name":"x-api-key","in":"header","description":"API key needed to authorize the request","required":true,"schema":{"type":"string","isRequired":true,"description":"API key needed to authorize the request","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"description":"The payload to send with the products","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"items.[INDEX].name","typeLabel":"string"},"description":{"description":"In the description you only need to add words that help the AI do a semantic search, avoide placing here prices, links or other type of data that is not natural language","type":"string","minLength":1,"maxLength":8192,"isRequired":true,"uniqueKey":"items.[INDEX].description","typeLabel":"string"},"type":{"type":"string","enum":["shopify","vambe","woocommerce","axis","vtex","jumpseller","odoo","tiendanube","magento","mercado_libre","custom_app","prestashop"],"x-enumNames":["Shopify","Vambe","WooCommerce","Axis","Vtex","Jumpseller","Odoo","TiendaNube","Magento","MercadoLibre","CustomApp","Prestashop"],"isRequired":true,"uniqueKey":"items.[INDEX].type","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","enum":["CLP","USD","MXN","BRL","UF","ARS","COP","UYU","PEN","EUR","HNL","BOB","PYG","GTQ","NIO","PAB","CRC","DOP","VES","BZD","SRD","GYD"],"x-enumNames":["CLP","USD","MXN","BRL","UF","ARS","COP","UYU","PEN","EUR","HNL","BOB","PYG","GTQ","NIO","PAB","CRC","DOP","VES","BZD","SRD","GYD"],"isRequired":true,"uniqueKey":"items.[INDEX].currency","typeLabel":"enum\u003cstring>"},"price":{"type":"number","minimum":0,"exclusiveMinimum":false,"isRequired":true,"uniqueKey":"items.[INDEX].price","typeLabel":"number"},"external_id":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].external_id","typeLabel":"string"},"metadata":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"items.[INDEX].metadata.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"items.[INDEX].metadata.items.[INDEX].value","typeLabel":"string"}},"required":["key","value"],"uniqueKey":"items.[INDEX].metadata.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"items.[INDEX].metadata","typeLabel":"object[]"},"file_url":{"type":"string","uniqueKey":"items.[INDEX].file_url","typeLabel":"string"},"sku":{"type":"string","uniqueKey":"items.[INDEX].sku","typeLabel":"string"}},"required":["name","description","type","currency","price","external_id","metadata"],"uniqueKey":"items.[INDEX]","typeLabel":"object"},"uniqueKey":"","typeLabel":"object[]"},"examples":{"Example":{"title":"Example","value":[{"name":"\u003cstring>","description":"\u003cstring>","price":1,"external_id":"\u003cstring>","metadata":[{"key":"\u003cstring>","value":"\u003cstring>"}],"file_url":"\u003cstring>","sku":"\u003cstring>"}]}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"03635956-7c21-44b4-8149-53ec3cde5701":{"description":"Products upserted successfully.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"e6e2eb86-7864-45ea-abff-b4e2e3373880":{"description":"Bad request.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"f2d92978-3f22-4772-ab02-74c9bce7a709":{"description":"Unauthorized.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"c8706336-97a3-4704-8e19-57f42dd7ad6e":{"description":"Forbidden.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{"02ff634b-bead-4bab-a088-7dd8b9769625":{"url":"https://api.vambe.me","description":"Production Server"}}},"originalFileLocation":"openapi.json"},"subdomain":"vambe-f69d5806","siteName":"Welcome 👋","title":"Upsert products - Welcome 👋","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T13:35:29.152Z","originalFileLocation":"reference/product/upsert-products.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=\"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Welcome 👋\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_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/vambe-f69d5806/FNR-14vKPkm5-pk-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Upsert products - Welcome 👋\">\u003cmeta data-mint-head property=\"og:description\" content=\"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Welcome 👋\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vambe.me/reference/product/upsert-products\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vambe-f69d5806.mintlify.site/_mintlify/api/og/v2?division=Product+Catalog\u0026amp;title=Upsert+products\u0026amp;description=Upsert+products+and+their+embeddings%2C+this+endpoint+creates+and+updates+all+products+that+are+in+the+list+and+delete+all+products+that+are+not+in+the+list.\u0026amp;theme=9b7d6b35278e9470f56611a6\u0026amp;signature=117b040d79edb7850202a317585a3c892f7a7baf4d1eeef6b067b8cb29e179d2\">\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=\"Upsert products - Welcome 👋\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vambe-f69d5806.mintlify.site/_mintlify/api/og/v2?division=Product+Catalog\u0026amp;title=Upsert+products\u0026amp;description=Upsert+products+and+their+embeddings%2C+this+endpoint+creates+and+updates+all+products+that+are+in+the+list+and+delete+all+products+that+are+not+in+the+list.\u0026amp;theme=9b7d6b35278e9470f56611a6\u0026amp;signature=117b040d79edb7850202a317585a3c892f7a7baf4d1eeef6b067b8cb29e179d2\">\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/vambe-f69d5806/FNR-14vKPkm5-pk-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Welcome 👋\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563EB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vambe.me/reference/product/upsert-products\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/product/upsert-products.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vambe.me/#organization\",\"name\":\"Welcome 👋\",\"url\":\"https://docs.vambe.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vambe-f69d5806/_YFOlf0qgMJ8Che1/images/fb1a23e-small-Vambe_Logo_Panda-White4x.png?fit=max\u0026auto=format\u0026n=_YFOlf0qgMJ8Che1\u0026q=85\u0026s=c84b8be7abfa14dd8e1674a247b9cc0b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vambe.me#website\",\"name\":\"Welcome 👋\",\"url\":\"https://docs.vambe.me\",\"publisher\":{\"@id\":\"https://docs.vambe.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vambe.me/reference/product/upsert-products#webpage\",\"url\":\"https://docs.vambe.me/reference/product/upsert-products\",\"name\":\"Upsert products\",\"description\":\"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.\",\"dateModified\":\"2026-11-12T13:35:29.152Z\",\"isPartOf\":{\"@id\":\"https://docs.vambe.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vambe.me/reference/product/upsert-products#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vambe.me/reference/product/upsert-products#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Product Catalog\",\"item\":\"https://docs.vambe.me/reference/product/get-product-blocks\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upsert products\",\"item\":\"https://docs.vambe.me/reference/product/upsert-products\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vambe.me/reference/product/upsert-products#apireference\",\"headline\":\"Upsert products\",\"name\":\"Upsert products\",\"description\":\"Upsert products and their embeddings, this endpoint creates and updates all products that are in the list and delete all products that are not in the list.\",\"url\":\"https://docs.vambe.me/reference/product/upsert-products\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vambe.me/reference/product/upsert-products#webpage\"},\"dateModified\":\"2026-11-12T13:35:29.152Z\",\"publisher\":{\"@id\":\"https://docs.vambe.me/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vambe.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Welcome 👋\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Welcome 👋\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/reference/product/upsert-products.md","siteName":"Welcome 👋","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/docs/quickstart"}]},{"tab":"Messaging API","icon":"messages","pages":[{"title":"Messaging API","href":"/reference/campaigns/create-campaign"}]},{"tab":"CRM \u0026 Contacts","icon":"users","pages":[{"title":"CRM \u0026 Contacts","href":"/reference/contact/get-contacts-by-days"}]},{"tab":"Analytics \u0026 Reports","icon":"chart-line","pages":[{"title":"Analytics \u0026 Reports","href":"/reference/utm-events/create-custom-utm-event"}]},{"tab":"Knowledge Base","icon":"book-open","pages":[{"title":"Knowledge Base","href":"/reference/knowledge-base/get-folders"}]},{"tab":"Ecommerce","icon":"box","groups":[{"group":"Product Catalog","icon":"box","expanded":false,"pages":[{"openapi":"get /api/public/product/product-blocks","title":"Get product blocks to upsert products","href":"/reference/product/get-product-blocks"},{"openapi":"get /api/public/order/{id}/product","title":null,"href":"/reference/product/get-order-products"},{"openapi":"post /api/public/product/create/{promptBlockId}","title":"Create products","href":"/reference/product/create-products"},{"openapi":"post /api/public/product/delete/{promptBlockId}","title":"Delete products","description":"Delete products by their external IDs. This endpoint only deletes products.","href":"/reference/product/delete-products"},{"openapi":"post /api/public/product/upsert/{promptBlockId}","title":"Upsert products","href":"/reference/product/upsert-products"}]}]},{"tab":"Appointments","icon":"calendar","pages":[{"title":"Appointments","href":"/reference/booking-url/get-api-public-booking-url-urlname"}]},{"tab":"Events","icon":"bolt","pages":[{"title":"Events","href":"/reference/events-api/ingest-a-customer-event"}]},{"tab":"Webhooks","icon":"webhook","pages":[{"title":"Webhooks","href":"/reference/webhooks/get-all-webhooks-for-the-authenticated-user"}]},{"tab":"Tasks","icon":"list-check","pages":[{"title":"Tasks","href":"/reference/tasks/get-tasks"}]},{"tab":"Custom Ecommerce Apps","icon":"puzzle-piece","pages":[{"title":"Custom Ecommerce Apps","href":"/docs/app-platform/introduction"}]}]},"basePath":"","title":"Upsert products - Welcome 👋","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}