Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group’s other products are archived into it, and orders, reviews, promotions and other catalog references move to the master.
All marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished.
Each group commits independently; the response lists every group’s outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets.
Supports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master.
Authorization
Requires catalog:write. This is a catalog operation with no remote marketplace writes.
Limits
2–20 products and up to 10 groups per request. Pin a reviewed preview with expectedGroups to refuse groups that changed since.
Set dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.
True runs the same merge transaction and rolls it back, including database reference/constraint validation. No product changes are saved, no mutation events or duplicate refreshes run, and marketplace listings stay unchanged. Requires catalog:write. Omitted/false performs the reviewed merge. This differs from CLI --dry-run, which only prints a request.
Optional master per SKU group, chosen from productIds; at most one per group. Defaults to the first requested product of each group. The master keeps its content, images, price and stock.
Batch processed. data holds groups[] (with survivingProductId, mergedProductIds, error), ordered per-product items[], succeededCount and failedCount. ok is true only when every group merged.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OmniCommerce","description":"Developer documentation for OmniCommerce REST APIs, MCP tools, and agent integrations.","colors":{"primary":"#0F766E","light":"#2DD4BF","dark":"#115E59"},"logo":{"light":"https://mintcdn.com/omnicommerce/B2cjFTJ7Zt2npdeV/logo/light.svg?fit=max\u0026auto=format\u0026n=B2cjFTJ7Zt2npdeV\u0026q=85\u0026s=e012509da06089923275e6b0415addf9","dark":"https://mintcdn.com/omnicommerce/B2cjFTJ7Zt2npdeV/logo/dark.svg?fit=max\u0026auto=format\u0026n=B2cjFTJ7Zt2npdeV\u0026q=85\u0026s=547bdf6cb0b483a43238304bc7679fa1","href":"https://omnicommerce.sg"},"favicon":"https://mintcdn.com/omnicommerce/B2cjFTJ7Zt2npdeV/favicon.svg?fit=max\u0026auto=format\u0026n=B2cjFTJ7Zt2npdeV\u0026q=85\u0026s=2951c661b72ccdfa6777f7594193113c","api":{"params":{"expanded":"closed"},"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python"],"prefill":false}},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://omnicommerce.sg","label":"App"},{"href":"https://omnicommerce.sg/login","label":"Log In"}],"primary":{"type":"button","label":"API Dashboard","href":"https://omnicommerce.sg/app"}},"footer":{"socials":{"website":"https://omnicommerce.sg"}},"seo":{"metatags":{"og:site_name":"OmniCommerce Docs","twitter:card":"summary_large_image"}},"contextual":{"options":["copy","view","chatgpt","claude","download-spec"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"omnicommerce","hasAudioNarration":false,"actualSubdomain":"omnicommerce","customDomains":["docs.omnicommerce.ai"],"gitSource":{"type":"github","owner":"rmdort","repo":"omnicommerce","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae5b31a302fef4badcdc06b","collectionId":"cc3a4a1e-d6f2-4702-a3e4-fa63b2ec1a6e","liveDeploymentHistoryId":"6ae5b31a302fef4badcdc06b","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae6c408420faf70548cf188","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":203},{"language":"default","tag":"Endpoints","count":181},{"language":"default","tag":"Documentation","count":47},{"language":"default","tag":"Webhooks","count":31},{"language":"default","tag":"Guides","count":25},{"language":"default","tag":"Products","count":25},{"language":"default","tag":"Promotions","count":18},{"language":"default","tag":"Campaigns","count":17},{"language":"default","tag":"Orders","count":15},{"language":"default","tag":"Developer Platform","count":14}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":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":"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":"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":"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":"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":"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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--docs-radius:6px;--docs-content-max:60rem;--docs-example-width:28rem}#navbar img[src*=logo],header img[src$=\"/logo/dark.svg\"],header img[src$=\"/logo/light.svg\"],header nav-logo img{height:32px!important;max-height:32px!important;width:auto!important}article p:not(.callout-title):not(.callout-body),main p:not(.callout-title):not(.callout-body){font-size:calc(1em - 1pt)}"}],"page":{"pagePath":"api-reference/products/merge-duplicate-products","slug":"/api-reference/products/merge-duplicate-products","pageMetadata":{"title":"Merge Duplicate Products","description":"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group's other products are archived into it, and orders, reviews, promotions and other catalog references move to the master.\n\nAll marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished.\n\nEach group commits independently; the response lists every group's outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets.\n\nSupports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master.\n\n### Authorization\n\nRequires `catalog:write`. This is a catalog operation with no remote marketplace writes.\n\n### Limits\n\n2–20 products and up to 10 groups per request. Pin a reviewed preview with `expectedGroups` to refuse groups that changed since.\n\nSet dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/duplicates/merge","href":"/api-reference/products/merge-duplicate-products","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h3: \"h3\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group’s other products are archived into it, and orders, reviews, promotions and other catalog references move to the master.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"All marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Each group commits independently; the response lists every group’s outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Supports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master.\"\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Authorization\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Requires \", _jsx(_components.code, {\n children: \"catalog:write\"\n }), \". This is a catalog operation with no remote marketplace writes.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Limits\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"2–20 products and up to 10 groups per request. Pin a reviewed preview with \", _jsx(_components.code, {\n children: \"expectedGroups\"\n }), \" to refuse groups that changed since.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Set dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Merge Duplicate Products","description":"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group's other products are archived into it, and orders, reviews, promotions and other catalog references move to the master.\n\nAll marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished.\n\nEach group commits independently; the response lists every group's outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets.\n\nSupports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master.\n\n### Authorization\n\nRequires `catalog:write`. This is a catalog operation with no remote marketplace writes.\n\n### Limits\n\n2–20 products and up to 10 groups per request. Pin a reviewed preview with `expectedGroups` to refuse groups that changed since.\n\nSet dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/duplicates/merge","href":"/api-reference/products/merge-duplicate-products","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"post_v1_products_duplicates_merge","summary":"Merge Duplicate Products","description":"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group's other products are archived into it, and orders, reviews, promotions and other catalog references move to the master.\n\nAll marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished.\n\nEach group commits independently; the response lists every group's outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets.\n\nSupports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master.\n\n### Authorization\n\nRequires `catalog:write`. This is a catalog operation with no remote marketplace writes.\n\n### Limits\n\n2–20 products and up to 10 groups per request. Pin a reviewed preview with `expectedGroups` to refuse groups that changed since.\n\nSet dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.","tags":["products"],"security":["40d2455c-653f-4d2f-a036-4652f422a0d5"],"requestBody":"29b6cda1-8ad4-4ffa-b352-835ad275220b","responses":{"200":"a9402b68-dfc8-463b-a435-b7b9774bc49f","400":"07849d13-13a9-4831-b277-d3d18e58d951","401":"07f0fefe-2c82-43ab-b709-aac14cae0393","403":"4375faca-e0d6-46f4-b511-c04b787edf5b","500":"2f3dc187-8d64-4636-9d7f-7b89c4e9f69d"},"method":"post","type":"path","servers":["28c57f35-3d78-4565-8b54-8dad9a05c1aa","22c7c57c-c6fc-446d-8fcd-62c8fbbce2ab"],"path":"/api/v1/products/duplicates/merge","baseUrlOptions":["https://omnicommerce.ai","http://localhost:3000"],"title":"Merge Duplicate Products","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["productIds"],"properties":{"productIds":{"type":"array","minItems":2,"maxItems":20,"items":{"type":"string","minLength":1,"maxLength":255,"uniqueKey":"productIds.items.[INDEX]","typeLabel":"string"},"description":"Ordered standalone catalog product IDs. Products are grouped by exact SKU; each group merges into one master.","isRequired":true,"uniqueKey":"productIds","typeLabel":"string[]"},"dryRun":{"type":"boolean","description":"True runs the same merge transaction and rolls it back, including database reference/constraint validation. No product changes are saved, no mutation events or duplicate refreshes run, and marketplace listings stay unchanged. Requires catalog:write. Omitted/false performs the reviewed merge. This differs from CLI --dry-run, which only prints a request.","uniqueKey":"dryRun","typeLabel":"boolean"},"organizationId":{"type":"string","description":"Required only for session-authenticated calls. API credentials use their own organization.","uniqueKey":"organizationId","typeLabel":"string"},"masterProductIds":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string","minLength":1,"maxLength":255,"uniqueKey":"masterProductIds.items.[INDEX]","typeLabel":"string"},"description":"Optional master per SKU group, chosen from productIds; at most one per group. Defaults to the first requested product of each group. The master keeps its content, images, price and stock.","uniqueKey":"masterProductIds","typeLabel":"string[]"},"expectedGroups":{"type":"array","minItems":1,"maxItems":10,"description":"Optional groups from a preview to pin: membership, master (first product) and SKU. Groups that changed or are omitted are not merged.","items":{"type":"object","additionalProperties":false,"required":["productIds","sku"],"properties":{"productIds":{"type":"array","minItems":2,"maxItems":20,"items":{"type":"string","minLength":1,"maxLength":255,"uniqueKey":"expectedGroups.items.[INDEX].productIds.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"expectedGroups.items.[INDEX].productIds","typeLabel":"string[]"},"sku":{"type":"string","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"expectedGroups.items.[INDEX].sku","typeLabel":"string"}},"uniqueKey":"expectedGroups.items.[INDEX]","typeLabel":"object"},"uniqueKey":"expectedGroups","typeLabel":"object[]"},"explanation":{"type":"string","maxLength":2000,"uniqueKey":"explanation","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"productIds":["4d3c2b1a-0000-4000-8000-000000000001","4d3c2b1a-0000-4000-8000-000000000002"],"masterProductIds":["4d3c2b1a-0000-4000-8000-000000000002"]},"examples":{"Example":{"title":"Example","value":{"productIds":["4d3c2b1a-0000-4000-8000-000000000001","4d3c2b1a-0000-4000-8000-000000000002"],"masterProductIds":["4d3c2b1a-0000-4000-8000-000000000002"]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"a9402b68-dfc8-463b-a435-b7b9774bc49f":{"description":"Batch processed. `data` holds `groups[]` (with `survivingProductId`, `mergedProductIds`, `error`), ordered per-product `items[]`, `succeededCount` and `failedCount`. `ok` is true only when every group merged.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","isRequired":true,"uniqueKey":"ok","typeLabel":"boolean"},"apiVersion":{"type":"string","isRequired":true,"uniqueKey":"apiVersion","typeLabel":"string"},"operationId":{"type":"string","isRequired":true,"uniqueKey":"operationId","typeLabel":"string"},"status":{"type":"string","enum":["accepted","completed","failed"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"data":{"type":"object","properties":{"success":{"type":"boolean","isRequired":true,"uniqueKey":"data.success","typeLabel":"boolean"},"productIds":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"data.productIds.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.productIds","typeLabel":"string[]"},"succeededCount":{"type":"integer","minimum":0,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"data.succeededCount","typeLabel":"integer"},"failedCount":{"type":"integer","minimum":0,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"data.failedCount","typeLabel":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].productId","typeLabel":"string"},"success":{"type":"boolean","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].success","typeLabel":"boolean"},"survivingProductId":{"type":"string","minLength":1,"uniqueKey":"data.\\items.items.[INDEX].survivingProductId","typeLabel":"string"},"disposition":{"type":"string","enum":["survivor","merged"],"uniqueKey":"data.\\items.items.[INDEX].disposition","typeLabel":"enum\u003cstring>"},"error":{"type":"string","minLength":1,"uniqueKey":"data.\\items.items.[INDEX].error","typeLabel":"string"}},"required":["productId","success"],"additionalProperties":false,"uniqueKey":"data.\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.\\items","typeLabel":"object[]"},"dryRun":{"type":"boolean","uniqueKey":"data.dryRun","typeLabel":"boolean"},"survivingProductId":{"type":"string","minLength":1,"uniqueKey":"data.survivingProductId","typeLabel":"string"},"survivingProductIds":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"data.survivingProductIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.survivingProductIds","typeLabel":"string[]"},"mergedProductIds":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"data.mergedProductIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.mergedProductIds","typeLabel":"string[]"},"wouldMergeProductIds":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"data.wouldMergeProductIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.wouldMergeProductIds","typeLabel":"string[]"},"groups":{"type":"array","items":{"type":"object","properties":{"productIds":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"data.groups.items.[INDEX].productIds.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.groups.items.[INDEX].productIds","typeLabel":"string[]"},"success":{"type":"boolean","isRequired":true,"uniqueKey":"data.groups.items.[INDEX].success","typeLabel":"boolean"},"survivingProductId":{"type":"string","minLength":1,"uniqueKey":"data.groups.items.[INDEX].survivingProductId","typeLabel":"string"},"mergedProductIds":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"data.groups.items.[INDEX].mergedProductIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.groups.items.[INDEX].mergedProductIds","typeLabel":"string[]"},"wouldMergeProductIds":{"type":"array","items":{"type":"string","minLength":1,"uniqueKey":"data.groups.items.[INDEX].wouldMergeProductIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.groups.items.[INDEX].wouldMergeProductIds","typeLabel":"string[]"},"error":{"type":"string","minLength":1,"uniqueKey":"data.groups.items.[INDEX].error","typeLabel":"string"}},"required":["productIds","success"],"additionalProperties":false,"uniqueKey":"data.groups.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.groups","typeLabel":"object[]"},"message":{"type":"string","minLength":1,"uniqueKey":"data.message","typeLabel":"string"},"error":{"type":"string","minLength":1,"uniqueKey":"data.error","typeLabel":"string"},"explanation":{"type":"string","minLength":1,"uniqueKey":"data.explanation","typeLabel":"string"}},"required":["success","productIds","succeededCount","failedCount","items"],"additionalProperties":false,"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"warnings.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"warnings","typeLabel":"string[]"},"recommendations":{"type":"array","items":{"type":"string","uniqueKey":"recommendations.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"recommendations","typeLabel":"string[]"},"links":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","uniqueKey":"links.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"links","typeLabel":"object"},"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"required":["ok","apiVersion","operationId","status","data","warnings","recommendations","links"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"ok":true,"apiVersion":"\u003cstring>","operationId":"\u003cstring>","status":"accepted","data":{"success":true,"productIds":["\u003cstring>"],"succeededCount":4503599627370495,"failedCount":4503599627370495,"items":[{"productId":"\u003cstring>","success":true,"survivingProductId":"\u003cstring>","disposition":"survivor","error":"\u003cstring>"}],"dryRun":true,"survivingProductId":"\u003cstring>","survivingProductIds":["\u003cstring>"],"mergedProductIds":["\u003cstring>"],"wouldMergeProductIds":["\u003cstring>"],"groups":[{"productIds":["\u003cstring>"],"success":true,"survivingProductId":"\u003cstring>","mergedProductIds":["\u003cstring>"],"wouldMergeProductIds":["\u003cstring>"],"error":"\u003cstring>"}],"message":"\u003cstring>","error":"\u003cstring>","explanation":"\u003cstring>"},"warnings":["\u003cstring>"],"recommendations":["\u003cstring>"],"links":{},"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"07849d13-13a9-4831-b277-d3d18e58d951":{"description":"Invalid payload.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"07f0fefe-2c82-43ab-b709-aac14cae0393":{"description":"Unauthorized","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"4375faca-e0d6-46f4-b511-c04b787edf5b":{"description":"Credential lacks catalog:write.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"2f3dc187-8d64-4636-9d7f-7b89c4e9f69d":{"description":"Internal Server Error","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"40d2455c-653f-4d2f-a036-4652f422a0d5":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Bearer API key for server-to-server access. Session auth is also supported in first-party UI flows.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"28c57f35-3d78-4565-8b54-8dad9a05c1aa":{"url":"https://omnicommerce.ai","description":"Production"},"22c7c57c-c6fc-446d-8fcd-62c8fbbce2ab":{"url":"http://localhost:3000","description":"Local development"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Bearer API key for server-to-server access. Session auth is also supported in first-party UI flows.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer API key for server-to-server access. Session auth is also supported in first-party UI flows.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"omnicommerce","siteName":"OmniCommerce","title":"Merge Duplicate Products - OmniCommerce","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-01T04:46:13.145Z","originalFileLocation":"api-reference/products/merge-duplicate-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=\"dark\"}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=\"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group\u0026#x27;s other products are archived into it, and orders, reviews, promotions and other catalog references move to the master. All marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished. Each group commits independently; the response lists every group\u0026#x27;s outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets. Supports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master. ### Authorization Requires catalog:write. This is a catalog operation with no remote marketplace writes. ### Limits 2–20 products and up to 10 groups per request. Pin a reviewed preview with expectedGroups to refuse groups that changed since. Set dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OmniCommerce\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/omnicommerce/20sPCJ3GohzNbY_P/_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/omnicommerce/20sPCJ3GohzNbY_P/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/omnicommerce/20sPCJ3GohzNbY_P/_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/omnicommerce/20sPCJ3GohzNbY_P/_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/omnicommerce/20sPCJ3GohzNbY_P/_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/omnicommerce/20sPCJ3GohzNbY_P/_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/omnicommerce/20sPCJ3GohzNbY_P/_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/omnicommerce/20sPCJ3GohzNbY_P/_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/omnicommerce/20sPCJ3GohzNbY_P/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Merge Duplicate Products - OmniCommerce\">\u003cmeta data-mint-head property=\"og:description\" content=\"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group\u0026#x27;s other products are archived into it, and orders, reviews, promotions and other catalog references move to the master. All marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished. Each group commits independently; the response lists every group\u0026#x27;s outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets. Supports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master. ### Authorization Requires catalog:write. This is a catalog operation with no remote marketplace writes. ### Limits 2–20 products and up to 10 groups per request. Pin a reviewed preview with expectedGroups to refuse groups that changed since. Set dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OmniCommerce Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://omnicommerce.mintlify.app/_mintlify/api/og/v2?division=Products\u0026amp;title=Merge+Duplicate+Products\u0026amp;description=Merge+exact-SKU+duplicate+products+into+one+master+product+per+group.+The+master+keeps+its+content%2C+images%2C+price+and+stock%3B+the+group%27s+other+products+are+arch\u0026amp;theme=1a59a306fe3109e355163fa6\u0026amp;signature=da699c5e4d590795cce8653495a10a00cc97d924b3e7254f3317b1a9ba0e60ca\">\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=\"Merge Duplicate Products - OmniCommerce\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group\u0026#x27;s other products are archived into it, and orders, reviews, promotions and other catalog references move to the master. All marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished. Each group commits independently; the response lists every group\u0026#x27;s outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets. Supports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master. ### Authorization Requires catalog:write. This is a catalog operation with no remote marketplace writes. ### Limits 2–20 products and up to 10 groups per request. Pin a reviewed preview with expectedGroups to refuse groups that changed since. Set dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://omnicommerce.mintlify.app/_mintlify/api/og/v2?division=Products\u0026amp;title=Merge+Duplicate+Products\u0026amp;description=Merge+exact-SKU+duplicate+products+into+one+master+product+per+group.+The+master+keeps+its+content%2C+images%2C+price+and+stock%3B+the+group%27s+other+products+are+arch\u0026amp;theme=1a59a306fe3109e355163fa6\u0026amp;signature=da699c5e4d590795cce8653495a10a00cc97d924b3e7254f3317b1a9ba0e60ca\">\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/omnicommerce/20sPCJ3GohzNbY_P/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OmniCommerce\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F766E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/products/merge-duplicate-products.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.omnicommerce.ai/#organization\",\"name\":\"OmniCommerce\",\"url\":\"https://docs.omnicommerce.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/omnicommerce/B2cjFTJ7Zt2npdeV/logo/light.svg?fit=max\u0026auto=format\u0026n=B2cjFTJ7Zt2npdeV\u0026q=85\u0026s=e012509da06089923275e6b0415addf9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.omnicommerce.ai#website\",\"name\":\"OmniCommerce\",\"url\":\"https://docs.omnicommerce.ai\",\"publisher\":{\"@id\":\"https://docs.omnicommerce.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products#webpage\",\"url\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products\",\"name\":\"Merge Duplicate Products\",\"description\":\"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group's other products are archived into it, and orders, reviews, promotions and other catalog references move to the master. All marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished. Each group commits independently; the response lists every group's outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets. Supports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master. ### Authorization Requires catalog:write. This is a catalog operation with no remote marketplace writes. ### Limits 2–20 products and up to 10 groups per request. Pin a reviewed preview with expectedGroups to refuse groups that changed since. Set dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.\",\"dateModified\":\"2026-11-01T04:46:13.145Z\",\"isPartOf\":{\"@id\":\"https://docs.omnicommerce.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.omnicommerce.ai/api-reference/agentic-checkout/discover-a-published-merchant-agent\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Products\",\"item\":\"https://docs.omnicommerce.ai/api-reference/products/export-catalog-items\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Merge Duplicate Products\",\"item\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products#apireference\",\"headline\":\"Merge Duplicate Products\",\"name\":\"Merge Duplicate Products\",\"description\":\"Merge exact-SKU duplicate products into one master product per group. The master keeps its content, images, price and stock; the group's other products are archived into it, and orders, reviews, promotions and other catalog references move to the master. All marketplace listings move to the master, including listings in other stores of the same marketplace. Different listing identities in the same store block the group. No marketplace listing is delisted, rewritten or republished. Each group commits independently; the response lists every group's outcome. Sources with inventory history or immutable order composition snapshots must be reconciled before archiving so returns and stock replays keep their targets. Supports every OmniCommerce marketplace. Variant families, bundles and products in different currencies cannot be merged. A stock-connected product may be kept as master; it cannot be archived into another product. Use preview masterSelections to choose an allowed master. ### Authorization Requires catalog:write. This is a catalog operation with no remote marketplace writes. ### Limits 2–20 products and up to 10 groups per request. Pin a reviewed preview with expectedGroups to refuse groups that changed since. Set dryRun=true to simulate the same transaction and roll it back. The response has data.dryRun=true; succeededCount/failedCount count validation outcomes, mergedProductIds is empty and wouldMergeProductIds lists the planned sources. No product update events or duplicate scan refreshes are emitted. A successful simulation is not a saved merge; real execution validates current data again.\",\"url\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products\",\"mainEntityOfPage\":{\"@id\":\"https://docs.omnicommerce.ai/api-reference/products/merge-duplicate-products#webpage\"},\"dateModified\":\"2026-11-01T04:46:13.145Z\",\"publisher\":{\"@id\":\"https://docs.omnicommerce.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.omnicommerce.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OmniCommerce\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OmniCommerce","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference"}]},{"group":"Endpoints","pages":[{"group":"Agentic Checkout","pages":[{"title":"Discover a published merchant agent","deprecated":null,"version":null,"openapi":"/openapi.json get /api/embed/{deploymentId}/.well-known/agent-card.json","href":"/api-reference/agentic-checkout/discover-a-published-merchant-agent"},{"title":"Call a merchant agent using A2A","deprecated":null,"version":null,"openapi":"/openapi.json post /api/embed/{deploymentId}/a2a","href":"/api-reference/agentic-checkout/call-a-merchant-agent-using-a2a"},{"title":"Manage customer-owned purchase offers","deprecated":null,"version":null,"openapi":"/openapi.json post /api/embed/{deploymentId}/checkout-sessions/{operation}","href":"/api-reference/agentic-checkout/manage-customer-owned-purchase-offers"},{"title":"Create Agentic Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/checkout-sessions","href":"/api-reference/agentic-checkout/create-agentic-checkout-session"},{"title":"Get Agentic Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/checkout-sessions/{sessionId}","href":"/api-reference/agentic-checkout/get-agentic-checkout-session"},{"title":"Replace Agentic Checkout Session Fields","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/checkout-sessions/{sessionId}","href":"/api-reference/agentic-checkout/replace-agentic-checkout-session-fields"},{"title":"Update Agentic Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/checkout-sessions/{sessionId}","href":"/api-reference/agentic-checkout/update-agentic-checkout-session"},{"title":"Cancel Agentic Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/checkout-sessions/{sessionId}/cancel","href":"/api-reference/agentic-checkout/cancel-agentic-checkout-session"},{"title":"Complete Agentic Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/checkout-sessions/{sessionId}/complete","href":"/api-reference/agentic-checkout/complete-agentic-checkout-session"}]},{"group":"Agents","pages":[{"title":"Invoke the Omni agent","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/agents/general/invoke","href":"/api-reference/agents/invoke-the-omni-agent"},{"title":"Start an Omni agent run","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/agents/general/runs","href":"/api-reference/agents/start-an-omni-agent-run"},{"title":"Get an Omni agent run","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/agents/general/runs/{runId}","href":"/api-reference/agents/get-an-omni-agent-run"}]},{"group":"Analytics","pages":[{"title":"Get Ads Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/ads","href":"/api-reference/analytics/get-ads-analytics"},{"title":"Get AI Traffic Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/ai-traffic","href":"/api-reference/analytics/get-ai-traffic-analytics"},{"title":"Get Video and LIVE Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/content","href":"/api-reference/analytics/get-video-and-live-analytics"},{"title":"Get Order Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/orders","href":"/api-reference/analytics/get-order-analytics"},{"title":"Get Growth Overview","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/overview","href":"/api-reference/analytics/get-growth-overview"},{"title":"Get Pricing Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/pricing","href":"/api-reference/analytics/get-pricing-analytics"},{"title":"Get Product Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/products","href":"/api-reference/analytics/get-product-analytics"},{"title":"Get Profit Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/profit","href":"/api-reference/analytics/get-profit-analytics"},{"title":"Get Business Report","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/reports","href":"/api-reference/analytics/get-business-report"},{"title":"Get Store Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/stores","href":"/api-reference/analytics/get-store-analytics"},{"title":"Get Traffic Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analytics/traffic","href":"/api-reference/analytics/get-traffic-analytics"}]},{"group":"AOPs","pages":[{"title":"Get AOP configuration","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/aop/{aopId}/config","href":"/api-reference/aops/get-aop-configuration"},{"title":"Overwrite AOP configuration","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/aop/{aopId}/config","href":"/api-reference/aops/overwrite-aop-configuration"},{"title":"Execute an AOP","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/aop/{aopId}/execute","href":"/api-reference/aops/execute-an-aop"},{"title":"Create AOP","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/aop/create","href":"/api-reference/aops/create-aop"},{"title":"Retry a failed AOP execution","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/aop/retry","href":"/api-reference/aops/retry-a-failed-aop-execution"},{"title":"Get Thread Status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/threads/{thread_id}/status","href":"/api-reference/aops/get-thread-status"}]},{"group":"Branding","pages":[{"title":"List Brand Kits","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/brand-kits","href":"/api-reference/branding/list-brand-kits"},{"title":"Create Brand Kit","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/brand-kits","href":"/api-reference/branding/create-brand-kit"},{"title":"Get Brand Kit","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/brand-kits/{brandKitId}","href":"/api-reference/branding/get-brand-kit"},{"title":"Delete Brand Kit","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/brand-kits/{brandKitId}","href":"/api-reference/branding/delete-brand-kit"},{"title":"Update Brand Kit","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/brand-kits/{brandKitId}","href":"/api-reference/branding/update-brand-kit"}]},{"group":"Developer Platform","pages":[{"title":"Import BrandsGateway Products","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/brandsgateway/import","href":"/api-reference/developer-platform/import-brandsgateway-products"},{"title":"Evaluate SKU Readiness","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/evaluate","href":"/api-reference/developer-platform/evaluate-sku-readiness"},{"title":"Generate Ghost Mannequin Image","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/images/ghost-mannequin","href":"/api-reference/developer-platform/generate-ghost-mannequin-image"},{"title":"Get Developer Job Status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/jobs/{jobId}","href":"/api-reference/developer-platform/get-developer-job-status"},{"title":"Cancel Developer Job","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/jobs/{jobId}/cancel","href":"/api-reference/developer-platform/cancel-developer-job"},{"title":"Recommend Marketplace Product Categories","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/manage-product-category/recommend","href":"/api-reference/developer-platform/recommend-marketplace-product-categories"},{"title":"List Connected Marketplaces","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/marketplaces/connected","href":"/api-reference/developer-platform/list-connected-marketplaces"},{"title":"Run AI Shelf Share Monitor","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/monitor","href":"/api-reference/developer-platform/run-ai-shelf-share-monitor"},{"title":"Sync Product Commercial Fields","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/sync","href":"/api-reference/developer-platform/sync-product-commercial-fields"},{"title":"List Webhook Events","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhook-events","href":"/api-reference/developer-platform/list-webhook-events"},{"title":"List Developer Webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks","href":"/api-reference/developer-platform/list-developer-webhooks"},{"title":"Create Developer Webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks","href":"/api-reference/developer-platform/create-developer-webhook"},{"title":"Get Selected Zalora Import Status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/zalora/import","href":"/api-reference/developer-platform/get-selected-zalora-import-status"},{"title":"Import Selected Zalora Products","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/zalora/import","href":"/api-reference/developer-platform/import-selected-zalora-products"}]},{"group":"Campaigns","pages":[{"title":"List Campaigns","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/campaigns","href":"/api-reference/campaigns/list-campaigns"},{"title":"Create Campaign","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns","href":"/api-reference/campaigns/create-campaign"},{"title":"Get Campaign","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/campaigns/{campaignId}","href":"/api-reference/campaigns/get-campaign"},{"title":"Update Campaign","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/campaigns/{campaignId}","href":"/api-reference/campaigns/update-campaign"},{"title":"Change Campaign Details","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/campaigns/{campaignId}","href":"/api-reference/campaigns/change-campaign-details"},{"title":"Act on Campaign","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns/{campaignId}/actions","href":"/api-reference/campaigns/act-on-campaign"},{"title":"Get Campaign Analytics","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/campaigns/{campaignId}/analytics","href":"/api-reference/campaigns/get-campaign-analytics"},{"title":"Get Campaign Notifications","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/campaigns/{campaignId}/notifications","href":"/api-reference/campaigns/get-campaign-notifications"},{"title":"Set Campaign Notifications","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/campaigns/{campaignId}/notifications","href":"/api-reference/campaigns/set-campaign-notifications"},{"title":"List Campaign Offers","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/campaigns/{campaignId}/offers","href":"/api-reference/campaigns/list-campaign-offers"},{"title":"Act on Campaigns","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns/actions","href":"/api-reference/campaigns/act-on-campaigns"},{"title":"Archive Campaigns","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns/archive","href":"/api-reference/campaigns/archive-campaigns"},{"title":"Delete Campaigns","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns/delete","href":"/api-reference/campaigns/delete-campaigns"},{"title":"Import Campaign Workbooks","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns/import","href":"/api-reference/campaigns/import-campaign-workbooks"},{"title":"Get Campaign Options","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/campaigns/options","href":"/api-reference/campaigns/get-campaign-options"},{"title":"Resolve Campaign Promotion Selection","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns/promotion-options","href":"/api-reference/campaigns/resolve-campaign-promotion-selection"},{"title":"Validate Campaigns","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/campaigns/validate","href":"/api-reference/campaigns/validate-campaigns"}]},{"group":"Products","pages":[{"title":"Export Catalog Items","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/catalog/items","href":"/api-reference/products/export-catalog-items"},{"title":"List Products","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products","href":"/api-reference/products/list-products"},{"title":"Create Product","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products","href":"/api-reference/products/create-product"},{"title":"Get Product","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products/{productId}","href":"/api-reference/products/get-product"},{"title":"Delete Product","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/products/{productId}","href":"/api-reference/products/delete-product"},{"title":"Update Product","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/products/{productId}","href":"/api-reference/products/update-product"},{"title":"Update Product Cost","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/products/{productId}/cost","href":"/api-reference/products/update-product-cost"},{"title":"Delist Product","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/{productId}/delist","href":"/api-reference/products/delist-product"},{"title":"Upload Product Image","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/{productId}/images","href":"/api-reference/products/upload-product-image"},{"title":"Update Product Inventory","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/products/{productId}/inventory","href":"/api-reference/products/update-product-inventory"},{"title":"Get Product Listings","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products/{productId}/listings","href":"/api-reference/products/get-product-listings"},{"title":"Update Product Price","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/products/{productId}/price","href":"/api-reference/products/update-product-price"},{"title":"Publish Product","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/{productId}/publish","href":"/api-reference/products/publish-product"},{"title":"Bulk Import Products from JSON or CSV","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/bulk-import","href":"/api-reference/products/bulk-import-products-from-json-or-csv"},{"title":"Get Import Retry Progress","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products/bulk-import/retries/{retryJobId}","href":"/api-reference/products/get-import-retry-progress"},{"title":"Retry Failed Import or Review Jobs","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/bulk-import/retry","href":"/api-reference/products/retry-failed-import-or-review-jobs"},{"title":"Compare Product Market Prices","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/compare-prices","href":"/api-reference/products/compare-product-market-prices"},{"title":"Get Product Price Comparison","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products/compare-prices/jobs/{jobId}","href":"/api-reference/products/get-product-price-comparison"},{"title":"Batch Update Product Cost","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/cost","href":"/api-reference/products/batch-update-product-cost"},{"title":"Count Products","description":"Count matching catalog parent products using the Products page's canonical filters and authorization, without loading rows, pricing, or location data.\n\nProducts are counted once even when multiple listings match. This does not count variants or verify live marketplace status. status is the catalog lifecycle/derived view. All marketplaces are supported. Use storeKeys for exact marketplace/country/account identity.\n\nAuthenticate with a read-only catalog credential; organization comes only from that credential.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products/count","href":"/api-reference/products/count-products"},{"title":"Merge Duplicate Products","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/duplicates/merge","href":"/api-reference/products/merge-duplicate-products"},{"title":"Preview Duplicate Product Merge","description":"Read-only preview of merging duplicate catalog products into one master product. Uses the same contract and rules as `POST /api/v1/products/duplicates/merge` and the assistant's Fix Listing Duplicates tool.\n\nProducts are grouped by exact SKU. Each group shows its master (first in `productIds`), every product's marketplace listings per store with live status. A blocked group reports its `error`; nothing is changed.\n\nSupports every OmniCommerce marketplace. All marketplace listings are preserved. Different listing identities in the same store block that group; the merge never delists listings.\n\nDiscover candidates with `GET /api/v1/products?status=duplicates\u0026duplicateType=sku\u0026detail=full`. Refresh the saved scan through `POST /api/v1/products/duplicates/scan` when needed. Each group's `masterSelections[]` contains productId, allowed and a seller-facing note, matching the UI's enabled/disabled master choices. A sole allowed choice must be master to retain stock connections. No allowed choices means the group cannot merge. Several allowed choices require deciding which product's content, price and stock to keep; no universal best master is inferred.\n\nA preview can return HTTP 200 with ok=false and still provide usable groups/masterSelections. For stock_source_requires_master, choose an allowed master and preview again. Once every selected group succeeds, pass the reviewed groups' productIds (master first) and sku as expectedGroups to merge. Preview is read-only and does not publish to marketplaces.\n\n### Authorization\n\nRequires `catalog:read`.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/duplicates/merge-preview","href":"/api-reference/products/preview-duplicate-product-merge"},{"title":"Get Duplicate Scan","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products/duplicates/scan","href":"/api-reference/products/get-duplicate-scan"},{"title":"Scan Duplicate Products","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/duplicates/scan","href":"/api-reference/products/scan-duplicate-products"},{"title":"Queue Product Enrichment","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/products/enrich","href":"/api-reference/products/queue-product-enrichment"}]},{"group":"Catalog","pages":[{"title":"List Catalog Operations for Session","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/catalog/operations","href":"/api-reference/catalog/list-catalog-operations-for-session"},{"title":"Start Catalog Operation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/catalog/operations","href":"/api-reference/catalog/start-catalog-operation"},{"title":"Get Catalog Operation Results","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/catalog/operations/results","href":"/api-reference/catalog/get-catalog-operation-results"},{"title":"Get Catalog Operation Status","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/catalog/operations/status","href":"/api-reference/catalog/get-catalog-operation-status"},{"title":"Query Catalog","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/catalog/query","href":"/api-reference/catalog/query-catalog"},{"title":"Start Commerce Verification","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/commerce/state/verify/jobs","href":"/api-reference/catalog/start-commerce-verification"}]},{"group":"Commerce","pages":[{"title":"Await Commerce Jobs","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/commerce/jobs/await","href":"/api-reference/commerce/await-commerce-jobs"},{"title":"Verify Commerce State","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/commerce/state/verify","href":"/api-reference/commerce/verify-commerce-state"}]},{"group":"Public Agent","pages":[{"title":"Compare Public Products","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/compare","href":"/api-reference/public-agent/compare-public-products"},{"title":"List Public Merchants","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/directory","href":"/api-reference/public-agent/list-public-merchants"},{"title":"Get Merchant LLM Feed","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/feed/{domain}/llms.txt","href":"/api-reference/public-agent/get-merchant-llm-feed"},{"title":"Get Public Merchant Manifest","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/merchants/{merchantId}/manifest","href":"/api-reference/public-agent/get-public-merchant-manifest"},{"title":"List Public Merchant Products","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/merchants/{merchantId}/products","href":"/api-reference/public-agent/list-public-merchant-products"},{"title":"Search Within Public Merchant Catalog","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/merchants/{merchantId}/search","href":"/api-reference/public-agent/search-within-public-merchant-catalog"},{"title":"Search Public Merchant Products","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/search","href":"/api-reference/public-agent/search-public-merchant-products"},{"title":"Search Public Merchant Products","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/search","href":"/api-reference/public-agent/search-public-merchant-products-1"}]},{"group":"Knowledge Base","pages":[{"title":"Upload Document","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/documents","href":"/api-reference/documents/upload-document"},{"title":"Get Document","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/documents/{documentId}","href":"/api-reference/documents/get-document"}]},{"group":"Inventory","pages":[{"title":"List Inventory Groups","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/inventory","href":"/api-reference/inventory/list-inventory-groups"}]},{"group":"Looks","pages":[{"title":"List Looks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/looks","href":"/api-reference/looks/list-looks"},{"title":"Create Look","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/looks","href":"/api-reference/looks/create-look"},{"title":"Get Look","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/looks/{lookId}","href":"/api-reference/looks/get-look"}]},{"group":"OAuth","pages":[{"title":"Revoke Access Token","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/oauth/revoke","href":"/api-reference/oauth/revoke-access-token"},{"title":"Get Access Token","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/oauth/token","href":"/api-reference/oauth/get-access-token"}]},{"group":"Orders","pages":[{"title":"List Orders","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders","href":"/api-reference/orders/list-orders"},{"title":"Create Order","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/orders","href":"/api-reference/orders/create-order"},{"title":"Get Order","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders/{orderId}","href":"/api-reference/orders/get-order"},{"title":"Update Order","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/orders/{orderId}","href":"/api-reference/orders/update-order"},{"title":"Get Order Action Options","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders/{orderId}/action-options","href":"/api-reference/orders/get-order-action-options"},{"title":"List Order Actions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders/{orderId}/actions","href":"/api-reference/orders/list-order-actions"},{"title":"Queue Order Action","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/orders/{orderId}/actions","href":"/api-reference/orders/queue-order-action"},{"title":"Check Order Action Options","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders/actions","href":"/api-reference/orders/check-order-action-options"},{"title":"Process Order Actions","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/orders/actions","href":"/api-reference/orders/process-order-actions"},{"title":"Get Order Action Jobs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders/actions/jobs","href":"/api-reference/orders/get-order-action-jobs"},{"title":"Create Picking List","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/orders/picking-list","href":"/api-reference/orders/create-picking-list"}]},{"group":"Organizations","pages":[{"title":"Create Organization","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/organizations","href":"/api-reference/organizations/create-organization"}]},{"group":"Price Books","pages":[{"title":"List Price Book Rules","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/price-books","href":"/api-reference/price-books/list-price-book-rules"},{"title":"Create Price Book Rule","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/price-books","href":"/api-reference/price-books/create-price-book-rule"},{"title":"Get Price Book Rule","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/price-books/{ruleId}","href":"/api-reference/price-books/get-price-book-rule"},{"title":"Delete Price Book Rule","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/price-books/{ruleId}","href":"/api-reference/price-books/delete-price-book-rule"},{"title":"Update Price Book Rule","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/price-books/{ruleId}","href":"/api-reference/price-books/update-price-book-rule"},{"title":"Preview Channel List Price","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/price-books/preview","href":"/api-reference/price-books/preview-channel-list-price"}]},{"group":"Promotions","pages":[{"title":"List Promotions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/promotions","href":"/api-reference/promotions/list-promotions"},{"title":"Create Promotion","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions","href":"/api-reference/promotions/create-promotion"},{"title":"Get Promotion","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/promotions/{promotionId}","href":"/api-reference/promotions/get-promotion"},{"title":"Delete Promotion","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/promotions/{promotionId}","href":"/api-reference/promotions/delete-promotion"},{"title":"Update Promotion","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/promotions/{promotionId}","href":"/api-reference/promotions/update-promotion"},{"title":"Preview Promotion Prices","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/{promotionId}/preview","href":"/api-reference/promotions/preview-promotion-prices"},{"title":"List Promotion Assignments","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/promotions/{promotionId}/products","href":"/api-reference/promotions/list-promotion-assignments"},{"title":"Assign Products to Promotion","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/{promotionId}/products","href":"/api-reference/promotions/assign-products-to-promotion"},{"title":"Unassign Products from Promotion","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/promotions/{promotionId}/products","href":"/api-reference/promotions/unassign-products-from-promotion"},{"title":"Retry Marketplace Delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/{promotionId}/retry","href":"/api-reference/promotions/retry-marketplace-delivery"},{"title":"Create Promotions with Products","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/batch","href":"/api-reference/promotions/create-promotions-with-products"},{"title":"Find Promotion Campaigns","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/promotions/campaign-options","href":"/api-reference/promotions/find-promotion-campaigns"},{"title":"Get Promotion Marketplace Capabilities","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/promotions/capabilities","href":"/api-reference/promotions/get-promotion-marketplace-capabilities"},{"title":"Delete Promotions","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/delete","href":"/api-reference/promotions/delete-promotions"},{"title":"Read Promotion Delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/delivery","href":"/api-reference/promotions/read-promotion-delivery"},{"title":"Find Eligible Promotion Products","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/product-options","href":"/api-reference/promotions/find-eligible-promotion-products"},{"title":"Set Promotion Statuses","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/status","href":"/api-reference/promotions/set-promotion-statuses"},{"title":"Validate Promotions","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/promotions/validate","href":"/api-reference/promotions/validate-promotions"}]},{"group":"Returns","pages":[{"title":"List Returns","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/returns","href":"/api-reference/returns/list-returns"},{"title":"Get Return","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/returns/{returnId}","href":"/api-reference/returns/get-return"},{"title":"Check Return Actions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/returns/actions","href":"/api-reference/returns/check-return-actions"},{"title":"Process Returns","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/returns/actions","href":"/api-reference/returns/process-returns"},{"title":"Get Return Action Jobs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/returns/actions/jobs","href":"/api-reference/returns/get-return-action-jobs"},{"title":"Get Order Returns","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/returns/orders","href":"/api-reference/returns/get-order-returns"}]},{"group":"Reviews","pages":[{"title":"List Reviews","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/reviews","href":"/api-reference/reviews/list-reviews"},{"title":"Get Review","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/reviews/{reviewId}","href":"/api-reference/reviews/get-review"},{"title":"Reply to Review","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/reviews/{reviewId}/reply","href":"/api-reference/reviews/reply-to-review"}]},{"group":"Scripts","pages":[{"title":"List Organization Scripts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/scripts","href":"/api-reference/scripts/list-organization-scripts"},{"title":"Create Script","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scripts","href":"/api-reference/scripts/create-script"},{"title":"Get Script","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/scripts/{scriptId}","href":"/api-reference/scripts/get-script"},{"title":"Archive Script","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/scripts/{scriptId}","href":"/api-reference/scripts/archive-script"},{"title":"Update Script","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/scripts/{scriptId}","href":"/api-reference/scripts/update-script"},{"title":"Activate Script Version","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scripts/{scriptId}/activate","href":"/api-reference/scripts/activate-script-version"},{"title":"Deploy Script","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scripts/{scriptId}/deploy","href":"/api-reference/scripts/deploy-script"},{"title":"List Script Runs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/scripts/{scriptId}/runs","href":"/api-reference/scripts/list-script-runs"},{"title":"Execute Script","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scripts/{scriptId}/runs","href":"/api-reference/scripts/execute-script"},{"title":"Get Script Source","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/scripts/{scriptId}/source","href":"/api-reference/scripts/get-script-source"},{"title":"Read Script Run Results","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scripts/jobs/await","href":"/api-reference/scripts/read-script-run-results"},{"title":"Cancel Script Runs","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scripts/jobs/cancel","href":"/api-reference/scripts/cancel-script-runs"}]},{"group":"Settlements","pages":[{"title":"List Settlements","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/settlements","href":"/api-reference/settlements/list-settlements"},{"title":"Apply Settlements","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/settlements","href":"/api-reference/settlements/apply-settlements"},{"title":"Get Settlement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/settlements/{settlementId}","href":"/api-reference/settlements/get-settlement"}]},{"group":"UCP","pages":[{"title":"Create UCP Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /ucp/v1/checkout-sessions","href":"/api-reference/ucp/create-ucp-checkout-session"},{"title":"Get UCP Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json get /ucp/v1/checkout-sessions/{sessionId}","href":"/api-reference/ucp/get-ucp-checkout-session"},{"title":"Replace UCP Checkout Session Fields","deprecated":null,"version":null,"openapi":"/openapi.json put /ucp/v1/checkout-sessions/{sessionId}","href":"/api-reference/ucp/replace-ucp-checkout-session-fields"},{"title":"Update UCP Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json patch /ucp/v1/checkout-sessions/{sessionId}","href":"/api-reference/ucp/update-ucp-checkout-session"},{"title":"Cancel UCP Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /ucp/v1/checkout-sessions/{sessionId}/cancel","href":"/api-reference/ucp/cancel-ucp-checkout-session"},{"title":"Complete UCP Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /ucp/v1/checkout-sessions/{sessionId}/complete","href":"/api-reference/ucp/complete-ucp-checkout-session"},{"title":"Get UCP Order","deprecated":null,"version":null,"openapi":"/openapi.json get /ucp/v1/orders/{orderId}","href":"/api-reference/ucp/get-ucp-order"}]},{"group":"product webhooks","pages":[]},{"group":"enrichment webhooks","pages":[]},{"group":"look webhooks","pages":[]},{"group":"review webhooks","pages":[]},{"group":"order webhooks","pages":[]},{"group":"settlement webhooks","pages":[]},{"group":"return webhooks","pages":[]},{"group":"account statement webhooks","pages":[]}]},{"group":"Webhooks","pages":[{"group":"Product","pages":[{"title":"Product created","openapi":"openapi.json webhook productCreated","href":"/webhooks/reference/product-created"},{"title":"Product updated","openapi":"openapi.json webhook productUpdated","href":"/webhooks/reference/product-updated"},{"title":"Product deleted","openapi":"openapi.json webhook productDeleted","href":"/webhooks/reference/product-deleted"},{"title":"Product delisted","openapi":"openapi.json webhook productDelisted","href":"/webhooks/reference/product-delisted"},{"title":"Product price changed","openapi":"openapi.json webhook productPriceChanged","href":"/webhooks/reference/product-price-changed"},{"title":"Product inventory changed","openapi":"openapi.json webhook productInventoryChanged","href":"/webhooks/reference/product-inventory-changed"}]},{"group":"Orders","pages":[{"title":"Order created","openapi":"openapi.json webhook orderCreated","href":"/webhooks/reference/order-created"},{"title":"Order updated","openapi":"openapi.json webhook orderUpdated","href":"/webhooks/reference/order-updated"},{"title":"Order status changed","openapi":"openapi.json webhook orderStatusChanged","href":"/webhooks/reference/order-status-changed"},{"title":"Order deleted","openapi":"openapi.json webhook orderDeleted","href":"/webhooks/reference/order-deleted"}]},{"group":"Looks","pages":[{"title":"Look created","openapi":"openapi.json webhook lookCreated","href":"/webhooks/reference/look-created"},{"title":"Look deleted","openapi":"openapi.json webhook lookDeleted","href":"/webhooks/reference/look-deleted"}]},{"group":"Review","pages":[{"title":"Review created","openapi":"openapi.json webhook reviewCreated","href":"/webhooks/reference/review-created"},{"title":"Review updated","openapi":"openapi.json webhook reviewUpdated","href":"/webhooks/reference/review-updated"},{"title":"Review status changed","openapi":"openapi.json webhook reviewStatusChanged","href":"/webhooks/reference/review-status-changed"}]},{"group":"Settlements","pages":[{"title":"Settlement created","openapi":"openapi.json webhook settlementCreated","href":"/webhooks/reference/settlement-created"},{"title":"Settlement updated","openapi":"openapi.json webhook settlementUpdated","href":"/webhooks/reference/settlement-updated"},{"title":"Settlement status changed","openapi":"openapi.json webhook settlementStatusChanged","href":"/webhooks/reference/settlement-status-changed"}]},{"group":"Returns","pages":[{"title":"Return created","openapi":"openapi.json webhook returnCreated","href":"/webhooks/reference/return-created"},{"title":"Return updated","openapi":"openapi.json webhook returnUpdated","href":"/webhooks/reference/return-updated"},{"title":"Return status changed","openapi":"openapi.json webhook returnStatusChanged","href":"/webhooks/reference/return-status-changed"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Merge Duplicate Products - OmniCommerce","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}