[{"data":1,"prerenderedAt":934},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fmcp\u002Ftools":331,"docs-\u002Fdocs\u002Fmcp\u002Ftools-surround":931},[4],{"title":5,"path":6,"stem":7,"children":8,"page":46},"Docs","\u002Fdocs","docs",[9,47,72,90,132,198,241,252,276,301],{"title":10,"description":11,"icon":12,"path":13,"stem":14,"children":15,"page":46},"Getting started","What Zaproo Search is, a quickstart, and wiring search into a storefront.","i-lucide-rocket","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[16,22,28,34,40],{"title":17,"path":18,"stem":19,"description":20,"icon":21},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F1.introduction","What Zaproo Search is, the five things you work with, and how a product catalog becomes a search box on your shop.","i-lucide-book-open-text",{"title":23,"path":24,"stem":25,"description":26,"icon":27},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F1.getting-started\u002F2.quickstart","Set up search for your shop in the cabinet, from a new account to a first search, with the API and MCP as other ways to do the same.","i-lucide-zap",{"title":29,"path":30,"stem":31,"description":32,"icon":33},"Integrate a storefront","\u002Fdocs\u002Fgetting-started\u002Fstorefront","docs\u002F1.getting-started\u002F3.storefront","Build a search results page with facets and an autocomplete box on top of the search and suggest routes.","i-lucide-store",{"title":35,"path":36,"stem":37,"description":38,"icon":39},"JavaScript SDK","\u002Fdocs\u002Fgetting-started\u002Fjavascript-sdk","docs\u002F1.getting-started\u002F4.javascript-sdk","Search, autocomplete and event tracking from a storefront with one small client that runs in the browser, on your server and in edge functions.","i-lucide-braces",{"title":41,"path":42,"stem":43,"description":44,"icon":45},"AI shopping assistant","\u002Fdocs\u002Fgetting-started\u002Fai-assistant","docs\u002F1.getting-started\u002F5.ai-assistant","A chat widget for your storefront that finds products and answers questions from your indexes.","i-lucide-sparkles",false,{"title":48,"description":49,"icon":50,"path":51,"stem":52,"children":53,"page":46},"Account and team","Sign-in, sessions, organizations, members, roles and projects.","i-lucide-users","\u002Fdocs\u002Faccount","docs\u002F2.account",[54,60,66],{"title":55,"path":56,"stem":57,"description":58,"icon":59},"Account and sign-in","\u002Fdocs\u002Faccount\u002Fsign-in","docs\u002F2.account\u002F1.sign-in","Create an account, verify your email, stay signed in, manage signed-in devices and change or reset your password.","i-lucide-log-in",{"title":61,"path":62,"stem":63,"description":64,"icon":65},"Organizations, members and roles","\u002Fdocs\u002Faccount\u002Forganizations","docs\u002F2.account\u002F2.organizations","What an organization holds, how to add members, and what owners, admins and members may do.","i-lucide-building-2",{"title":67,"path":68,"stem":69,"description":70,"icon":71},"Projects","\u002Fdocs\u002Faccount\u002Fprojects","docs\u002F2.account\u002F3.projects","Group the indices and API keys of one shop or one environment, and keep staging apart from production.","i-lucide-folder-kanban",{"title":73,"description":74,"icon":75,"path":76,"stem":77,"children":78,"page":46},"API keys and security","Secret and public keys, scopes, allowed origins, rate limits and errors.","i-lucide-key-round","\u002Fdocs\u002Fkeys","docs\u002F3.keys",[79,84],{"title":80,"path":81,"stem":82,"description":83,"icon":75},"API keys","\u002Fdocs\u002Fkeys\u002Fapi-keys","docs\u002F3.keys\u002F1.api-keys","Secret and public keys, full and read access, index scope, allowed origins, expiry, and how to revoke a key.",{"title":85,"path":86,"stem":87,"description":88,"icon":89},"Rate limits and errors","\u002Fdocs\u002Fkeys\u002Frate-limits","docs\u002F3.keys\u002F2.rate-limits","How many requests each route accepts per minute, what a 429 looks like, the error format and every error code with its HTTP status.","i-lucide-gauge",{"title":91,"description":92,"icon":93,"path":94,"stem":95,"children":96,"page":46},"Indexing","Indices, languages, mappings, documents, tasks, full catalog sync and reindexing.","i-lucide-database","\u002Fdocs\u002Findexing","docs\u002F4.indexing",[97,102,108,114,120,126],{"title":98,"path":99,"stem":100,"description":101,"icon":93},"Indices and languages","\u002Fdocs\u002Findexing\u002Findices","docs\u002F4.indexing\u002F1.indices","Create an index, pick its language, read its status, and change the language later with a reindex.",{"title":103,"path":104,"stem":105,"description":106,"icon":107},"Mapping and fields","\u002Fdocs\u002Findexing\u002Fmapping","docs\u002F4.indexing\u002F2.mapping","Field types, the five flags that decide what a field is used for, text analysis options, unmapped fields, and which changes need a reindex.","i-lucide-table-properties",{"title":109,"path":110,"stem":111,"description":112,"icon":113},"Documents and tasks","\u002Fdocs\u002Findexing\u002Fdocuments","docs\u002F4.indexing\u002F3.documents","Upload, browse and delete documents in the cabinet or through the API, follow each write as a task, and retry safely with Idempotency-Key.","i-lucide-file-json",{"title":115,"path":116,"stem":117,"description":118,"icon":119},"Full catalog sync","\u002Fdocs\u002Findexing\u002Ffull-sync","docs\u002F4.indexing\u002F4.full-sync","Replace the whole catalog with a replace session, so products missing from your export disappear from search, without downtime.","i-lucide-refresh-cw",{"title":121,"path":122,"stem":123,"description":124,"icon":125},"Reindex and versions","\u002Fdocs\u002Findexing\u002Fversions","docs\u002F4.indexing\u002F5.versions","Rebuild an index with its saved mapping and swap it in without downtime, follow or cancel the rebuild, and read activeVersion and buildingVersion.","i-lucide-git-compare-arrows",{"title":127,"path":128,"stem":129,"description":130,"icon":131},"Data source","\u002Fdocs\u002Findexing\u002Fdata-source","docs\u002F4.indexing\u002F6.data-source","Let Zaproo download your product feed on a schedule, map it to documents, write only what changed and delete what left the feed.","i-lucide-rss",{"title":133,"description":134,"icon":135,"path":136,"stem":137,"children":138,"page":46},"Integrations","Connect your shop. Magento 2, product feeds and the API work today; more platforms are coming.","i-lucide-plug-zap","\u002Fdocs\u002Fintegrations","docs\u002F4.integrations",[139,145,151,156,162,168,173,178,183,188,193],{"title":140,"path":141,"stem":142,"description":143,"icon":144},"Integrations overview","\u002Fdocs\u002Fintegrations\u002Foverview","docs\u002F4.integrations\u002F01.overview","The ways to get your catalog into Zaproo Search, which one to pick, and how a connected shop shows up in the cabinet.","i-lucide-layout-grid",{"title":146,"path":147,"stem":148,"description":149,"icon":150},"Magento 2","\u002Fdocs\u002Fintegrations\u002Fmagento","docs\u002F4.integrations\u002F02.magento","Install the Zaproo Search module for Magento 2, connect each store view to its own index, and keep the catalog in sync.","i-lucide-shopping-cart",{"title":152,"path":153,"stem":154,"description":155,"icon":131},"Product feed","\u002Fdocs\u002Fintegrations\u002Fproduct-feed","docs\u002F4.integrations\u002F03.product-feed","Connect any shop that can publish its catalog as a feed. You set it up in the cabinet, and Zaproo downloads the feed on a schedule and writes only what changed.",{"title":157,"path":158,"stem":159,"description":160,"icon":161},"REST API and MCP","\u002Fdocs\u002Fintegrations\u002Frest-api-and-mcp","docs\u002F4.integrations\u002F04.rest-api-and-mcp","Send documents from your own code with the REST API, or let an AI agent manage the index over MCP.","i-lucide-code",{"title":163,"path":164,"stem":165,"description":166,"icon":167},"Shopify","\u002Fdocs\u002Fintegrations\u002Fshopify","docs\u002F4.integrations\u002F05.shopify","A Zaproo Search integration for Shopify is coming soon. Until then, connect the shop through a product feed or the REST API.","i-lucide-shopping-bag",{"title":169,"path":170,"stem":171,"description":172,"icon":167},"WooCommerce","\u002Fdocs\u002Fintegrations\u002Fwoocommerce","docs\u002F4.integrations\u002F06.woocommerce","A Zaproo Search integration for WooCommerce is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":174,"path":175,"stem":176,"description":177,"icon":167},"Shopware","\u002Fdocs\u002Fintegrations\u002Fshopware","docs\u002F4.integrations\u002F07.shopware","A Zaproo Search integration for Shopware is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":179,"path":180,"stem":181,"description":182,"icon":167},"BigCommerce","\u002Fdocs\u002Fintegrations\u002Fbigcommerce","docs\u002F4.integrations\u002F08.bigcommerce","A Zaproo Search integration for BigCommerce is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":184,"path":185,"stem":186,"description":187,"icon":167},"PrestaShop","\u002Fdocs\u002Fintegrations\u002Fprestashop","docs\u002F4.integrations\u002F09.prestashop","A Zaproo Search integration for PrestaShop is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":189,"path":190,"stem":191,"description":192,"icon":167},"commercetools","\u002Fdocs\u002Fintegrations\u002Fcommercetools","docs\u002F4.integrations\u002F10.commercetools","A Zaproo Search integration for commercetools is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":194,"path":195,"stem":196,"description":197,"icon":167},"Salesforce Commerce Cloud","\u002Fdocs\u002Fintegrations\u002Fsalesforce-commerce-cloud","docs\u002F4.integrations\u002F11.salesforce-commerce-cloud","A Zaproo Search integration for Salesforce Commerce Cloud is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":199,"description":200,"icon":201,"path":202,"stem":203,"children":204,"page":46},"Search and relevance","The search API, search profiles, facets, synonyms and ranking rules.","i-lucide-search","\u002Fdocs\u002Fsearch","docs\u002F5.search",[205,211,217,223,229,235],{"title":206,"path":207,"stem":208,"description":209,"icon":210},"Search API","\u002Fdocs\u002Fsearch\u002Fsearch-api","docs\u002F5.search\u002F1.search-api","Try a search in the playground, then the search request and response for developers, with every filter form, sorting, paging, highlighting and the inline profile.","i-lucide-search-code",{"title":212,"path":213,"stem":214,"description":215,"icon":216},"Search profiles","\u002Fdocs\u002Fsearch\u002Fprofiles","docs\u002F5.search\u002F2.profiles","Every setting of a search profile, what it does to results, and the mistakes to avoid.","i-lucide-sliders-horizontal",{"title":218,"path":219,"stem":220,"description":221,"icon":222},"Facets","\u002Fdocs\u002Fsearch\u002Ffacets","docs\u002F5.search\u002F3.facets","The filter panels next to the results, the four facet types, index facets and profile facets, and how a shopper's clicks change the counts.","i-lucide-list-filter",{"title":224,"path":225,"stem":226,"description":227,"icon":228},"Synonyms","\u002Fdocs\u002Fsearch\u002Fsynonyms","docs\u002F5.search\u002F4.synonyms","Let different words find the same products, with equivalent and one-way rules, bulk import and export in the Solr format, and no reindex.","i-lucide-arrow-left-right",{"title":230,"path":231,"stem":232,"description":233,"icon":234},"Ranking rules","\u002Fdocs\u002Fsearch\u002Frules","docs\u002F5.search\u002F5.rules","Change the results for chosen searches. Put products first, hide them, lift or lower a brand, narrow the results or weigh fields differently, on a schedule and per profile.","i-lucide-list-ordered",{"title":236,"path":237,"stem":238,"description":239,"icon":240},"Language groups","\u002Fdocs\u002Fsearch\u002Flanguage-groups","docs\u002F5.search\u002F6.language-groups","Let each store of a multilingual shop find its products by the other stores' text, so an English search on the Estonian store still finds the Estonian product.","i-lucide-languages",{"title":242,"description":243,"icon":244,"path":245,"stem":246,"children":247,"page":46},"Autocomplete","Query suggestions as the shopper types.","i-lucide-text-cursor-input","\u002Fdocs\u002Fautocomplete","docs\u002F6.autocomplete",[248],{"title":242,"path":249,"stem":250,"description":251,"icon":244},"\u002Fdocs\u002Fautocomplete\u002Fsuggestions","docs\u002F6.autocomplete\u002F1.suggestions","Set up query suggestions in the cabinet. They are built every hour from your shoppers' searches, field values and custom entries.",{"title":253,"description":254,"icon":255,"path":256,"stem":257,"children":258,"page":46},"Analytics","Searches, zero-result queries and latency.","i-lucide-chart-line","\u002Fdocs\u002Fanalytics","docs\u002F7.analytics",[259,264,270],{"title":260,"path":261,"stem":262,"description":263,"icon":255},"Search analytics","\u002Fdocs\u002Fanalytics\u002Fsearch-analytics","docs\u002F7.analytics\u002F1.search-analytics","What the analytics page counts, which traffic it leaves out, how the headline numbers are defined, how comparisons and retention work, and how to get the weekly digest.",{"title":265,"path":266,"stem":267,"description":268,"icon":269},"Reports","\u002Fdocs\u002Fanalytics\u002Freports","docs\u002F7.analytics\u002F2.reports","Every analytics report with the definition of each column, the opportunities list and its fix buttons, the per-query view with before and after, and the CSV download.","i-lucide-table",{"title":271,"path":272,"stem":273,"description":274,"icon":275},"Event tracking","\u002Fdocs\u002Fanalytics\u002Fevent-tracking","docs\u002F7.analytics\u002F3.event-tracking","Send clicks, add-to-cart, purchases and suggestion clicks from your storefront, tie them to the search with searchId, and a copy-paste script that does it.","i-lucide-mouse-pointer-click",{"title":277,"description":278,"icon":279,"path":280,"stem":281,"children":282,"page":46},"AI agents (MCP)","Connect Claude Code or any MCP client and manage search from an agent.","i-lucide-bot","\u002Fdocs\u002Fmcp","docs\u002F8.mcp",[283,289,295],{"title":284,"path":285,"stem":286,"description":287,"icon":288},"MCP setup","\u002Fdocs\u002Fmcp\u002Fsetup","docs\u002F8.mcp\u002F1.setup","Connect Claude Code or another MCP client to your project from the cabinet's MCP connection page, and let an agent manage indices, documents, profiles, synonyms and rules.","i-lucide-plug",{"title":290,"path":291,"stem":292,"description":293,"icon":294},"MCP tools","\u002Fdocs\u002Fmcp\u002Ftools","docs\u002F8.mcp\u002F2.tools","Every tool the Zaproo Search MCP server offers, what an agent can do with each group, and prompts to start from.","i-lucide-wrench",{"title":296,"path":297,"stem":298,"description":299,"icon":300},"Resources and prompts","\u002Fdocs\u002Fmcp\u002Fresources","docs\u002F8.mcp\u002F3.resources","The index resources an MCP client can read, the tune_relevance prompt, and the errors the MCP server answers.","i-lucide-library",{"title":302,"description":303,"icon":304,"path":305,"stem":306,"children":307,"page":46},"Reference","Every REST route, every limit, plans and billing, and status.","i-lucide-book-open","\u002Fdocs\u002Freference","docs\u002F9.reference",[308,314,319,325],{"title":309,"path":310,"stem":311,"description":312,"icon":313},"REST API","\u002Fdocs\u002Freference\u002Frest-api","docs\u002F9.reference\u002F1.rest-api","The routes of the Zaproo Search REST API, grouped by area, with who may call it.","i-lucide-list-tree",{"title":315,"path":316,"stem":317,"description":318,"icon":89},"Limits","\u002Fdocs\u002Freference\u002Flimits","docs\u002F9.reference\u002F2.limits","Every size limit, cap and default of the Zaproo Search API in one place, with what happens when you reach it.",{"title":320,"path":321,"stem":322,"description":323,"icon":324},"Plans and billing","\u002Fdocs\u002Freference\u002Fbilling","docs\u002F9.reference\u002F3.billing","Check your plan and usage on the Billing & usage page, change the plan, download invoices, and see how quotas and proration work.","i-lucide-credit-card",{"title":326,"path":327,"stem":328,"description":329,"icon":330},"Status","\u002Fdocs\u002Freference\u002Fstatus","docs\u002F9.reference\u002F4.status","The status page and the status route, what each service covers and how to use them in your own monitoring.","i-lucide-activity",{"id":332,"title":290,"body":333,"description":293,"extension":926,"meta":927,"navigation":928,"path":291,"seo":929,"stem":292,"__hash__":930},"docs\u002Fdocs\u002F8.mcp\u002F2.tools.md",{"type":334,"value":335,"toc":911},"minimark",[336,341,345,393,397,408,411,415,450,496,506,512,518,521,537,547,553,557,571,580,609,615,618,629,640,646,649,666,672,678,681,689,692,696,728,744,747,758,829,834,845,851,857,861,864,885,889],[337,338,340],"h2",{"id":339},"how-the-tools-work","How the tools work",[342,343,344],"p",{},"Each tool runs the same service as the matching REST route, with the same validation, the same error codes and the same audit log. A tool acts on the project of the secret key the client connected with, and only on the indices in the key's index scope when it has one.",[346,347,348,357,383,386],"ul",{},[349,350,351,352,356],"li",{},"Read tools work with any secret key. Write tools need a key with full access; a read-only key gets ",[353,354,355],"code",{},"403 FORBIDDEN"," back as a tool error.",[349,358,359,360,363,364,367,368,371,372,371,375,378,379,382],{},"Writes to documents, reindex and suggestion rebuilds are asynchronous. The tool answers a ",[353,361,362],{},"taskId"," at once, and ",[353,365,366],{},"get_task"," tells when the work is done: ",[353,369,370],{},"SUCCEEDED",", ",[353,373,374],{},"PARTIAL",[353,376,377],{},"FAILED"," or ",[353,380,381],{},"CANCELLED",".",[349,384,385],{},"Search tools answer at most 10 hits, so a result fits the agent's context. Paging still works.",[349,387,388,389,392],{},"A failed call is a tool result, not a crash. It carries the REST status and code, for example ",[353,390,391],{},"400 PROFILE_INVALID"," with one issue per field, so the agent can fix its input and try again.",[337,394,396],{"id":395},"all-tools","All tools",[342,398,399,400,404,405,382],{},"The same list is on the project's ",[401,402,403],"strong",{},"MCP connection"," page in the cabinet. To connect a client, see ",[406,407,284],"a",{"href":285},[409,410],"mcp-tools",{},[337,412,414],{"id":413},"indices-and-mapping","Indices and mapping",[342,416,417,371,420,371,423,371,426,371,429,371,432,371,435,371,438,371,441,371,444,371,447,382],{},[353,418,419],{},"list_indices",[353,421,422],{},"get_index",[353,424,425],{},"create_index",[353,427,428],{},"update_index",[353,430,431],{},"delete_index",[353,433,434],{},"get_mapping",[353,436,437],{},"update_mapping",[353,439,440],{},"update_fields",[353,442,443],{},"get_facets",[353,445,446],{},"update_facets",[353,448,449],{},"reindex",[342,451,452,453,455,456,459,460,462,463,466,467,469,470,473,474,476,477,480,481,484,485,487,488,491,492,495],{},"An agent can create, rename and delete an index, read and change its fields and flags, set the facets every profile shows by default, and rebuild the index after a breaking mapping change. ",[353,454,440],{}," changes only the fields it names, with ",[353,457,458],{},"null"," to remove one, so an agent can change one field's type, flags or text analysis without resending the whole mapping. ",[353,461,437],{}," replaces the whole mapping and the language. Both answer a diff: an additive change applies at once, a breaking one leaves the index ",[353,464,465],{},"NEEDS_REINDEX"," until the agent calls ",[353,468,449],{},". A change that would break a profile, rule, facet, autocomplete field or data source is refused with ",[353,471,472],{},"409 MAPPING_BREAKS_CONFIG",", and the tool error lists each use, so the agent changes those first. While a shop plugin manages the mapping, ",[353,475,422],{}," shows it under ",[353,478,479],{},"integration",", and removing a field is refused with ",[353,482,483],{},"409 MAPPING_MANAGED_BY_INTEGRATION",". ",[353,486,431],{}," removes the index with everything in it and cannot be undone. Its ",[353,489,490],{},"name"," must repeat the index name exactly, or it fails with ",[353,493,494],{},"400 INDEX_NAME_MISMATCH",", and the agent is told to ask you before it calls it.",[497,498,504],"pre",{"className":499,"code":501,"language":502,"meta":503},[500],"language-text","Create an index called products in German. Then show me its mapping after the first upload\nand make brand and color facetable.\n","text","",[353,505,501],{"__ignoreMap":503},[497,507,510],{"className":508,"code":509,"language":502,"meta":503},[500],"Make the title field use normalizeCodes, check whether that needs a reindex, and if it does,\nstart it and tell me when it is done.\n",[353,511,509],{"__ignoreMap":503},[497,513,516],{"className":514,"code":515,"language":502,"meta":503},[500],"Index attributes.width as a number and show it as a range slider facet. Turn off number splitting\non the school field. Reindex if either change needs it.\n",[353,517,515],{"__ignoreMap":503},[337,519,109],{"id":520},"documents-and-tasks",[342,522,523,371,526,371,529,371,532,371,534,382],{},[353,524,525],{},"index_documents",[353,527,528],{},"delete_documents",[353,530,531],{},"flush_documents",[353,533,366],{},[353,535,536],{},"get_document",[342,538,539,540,542,543,382],{},"An agent can add or replace up to 1000 documents per call, delete up to 1000 by id, read one stored document and follow a task to the end. Per-document errors appear on the task. ",[353,541,531],{}," deletes every document of an index and cannot be undone: every version goes, the live one included, while the configuration and keys stay. See ",[406,544,546],{"href":545},"\u002Fdocs\u002Findexing\u002Fdocuments#delete-all-documents","Delete all documents",[497,548,551],{"className":549,"code":550,"language":502,"meta":503},[500],"Upload the products in .\u002Fcatalog.json in batches of 1000, wait for every task,\nand list the documents that failed with the reason.\n",[353,552,550],{"__ignoreMap":503},[337,554,556],{"id":555},"search-and-profiles","Search and profiles",[342,558,559,371,562,371,565,371,568,382],{},[353,560,561],{},"search",[353,563,564],{},"list_profiles",[353,566,567],{},"upsert_profile",[353,569,570],{},"preview_profile",[342,572,573,574,576,577,579],{},"An agent can search with a saved profile or with an unsaved one, compare an edited profile with the saved one for the same query, and save it once the results look right. ",[353,575,567],{}," replaces the whole profile, so the agent should read it with ",[353,578,564],{}," first.",[342,581,582,584,585,589,590,371,593,596,597,600,601,604,605,608],{},[353,583,561],{}," takes the same body as the ",[406,586,588],{"href":587},"\u002Fdocs\u002Fsearch\u002Fsearch-api#request","search API",": filters with ",[353,591,592],{},"$or",[353,594,595],{},"$and"," and ",[353,598,599],{},"$not"," groups, ",[353,602,603],{},"fields"," to trim each hit to the fields the agent needs, and ",[353,606,607],{},"excludeIds",". Asking for fewer fields keeps the answer short.",[497,610,613],{"className":611,"code":612,"language":502,"meta":503},[500],"Search \"bubble wrap\" with the storefront profile. Then try the same profile with phrase boost 4\nand typo tolerance 1, compare the top 10, and only save it if more bubble wrap rolls rank first.\n",[353,614,612],{"__ignoreMap":503},[337,616,224],{"id":617},"synonyms",[342,619,620,371,623,371,626,382],{},[353,621,622],{},"list_synonyms",[353,624,625],{},"upsert_synonyms",[353,627,628],{},"delete_synonyms",[342,630,631,632,635,636,639],{},"An agent can list synonym rules, add or change an equivalent rule (",[353,633,634],{},"box, carton",") or a one-way rule (",[353,637,638],{},"scotch => tape","), and delete one. A change applies to the next search without a reindex.",[497,641,644],{"className":642,"code":643,"language":502,"meta":503},[500],"Our shoppers write \"scotch\" but the catalog says \"tape\". Add a one-way synonym\nand check that \"scotch\" now finds products.\n",[353,645,643],{"__ignoreMap":503},[337,647,230],{"id":648},"ranking-rules",[342,650,651,371,654,371,657,371,660,371,663,382],{},[353,652,653],{},"list_rules",[353,655,656],{},"upsert_rule",[353,658,659],{},"delete_rule",[353,661,662],{},"reorder_rules",[353,664,665],{},"test_rule",[342,667,668,669,671],{},"An agent can pin, hide, boost or filter products for chosen searches, schedule a rule for a campaign, set the order rules run in, and test a draft rule against the saved ones before saving it. ",[353,670,653],{}," also lists each rule's issues, for example a filter on a field that a later mapping change made unfilterable.",[497,673,676],{"className":674,"code":675,"language":502,"meta":503},[500],"For the query \"moving boxes\", pin products box-300, box-400 and tape-48 in that order from\n2026-11-27 to 2026-11-30. Test it first and show me the top 5 before and after.\n",[353,677,675],{"__ignoreMap":503},[337,679,242],{"id":680},"autocomplete",[342,682,683,371,686,382],{},[353,684,685],{},"suggest",[353,687,688],{},"rebuild_suggestions",[342,690,691],{},"An agent can try what the search box suggests for a partial query and rebuild the suggestions after a catalog change.",[337,693,695],{"id":694},"shopping-assistant","Shopping assistant",[342,697,698,371,701,371,704,371,707,371,710,371,713,371,716,371,719,371,722,371,725,382],{},[353,699,700],{},"list_assistants",[353,702,703],{},"create_assistant",[353,705,706],{},"get_assistant",[353,708,709],{},"update_assistant",[353,711,712],{},"set_assistant_enabled",[353,714,715],{},"regenerate_assistant_key",[353,717,718],{},"delete_assistant",[353,720,721],{},"test_assistant",[353,723,724],{},"list_assistant_conversations",[353,726,727],{},"get_assistant_conversation",[342,729,730,731,733,734,736,737,739,740,743],{},"An agent can create and configure the project's storefront assistants, switch them on and off, rotate their widget keys, and read their conversations with messages and tool calls. ",[353,732,709],{}," replaces the whole configuration, appearance included, so read the assistant with ",[353,735,706],{}," first. ",[353,738,721],{}," runs one turn of an assistant, with a ",[353,741,742],{},"draft"," configuration or the saved one, and returns the reply, products, tool calls and token usage; it stores nothing but the tokens, which count toward the monthly limit. Writes and tests need a FULL key.",[337,745,253],{"id":746},"analytics",[342,748,749,371,752,371,755,382],{},[353,750,751],{},"get_search_analytics",[353,753,754],{},"get_analytics_report",[353,756,757],{},"get_query_analytics",[342,759,760,761,763,764,371,767,371,770,371,773,371,776,596,779,782,783,785,786,788,789,792,793,371,796,371,799,371,802,371,805,371,808,371,810,371,813,378,816,819,820,484,822,824,825,828],{},"The three tools read what the ",[406,762,253],{"href":261}," page shows, with the same ",[353,765,766],{},"from",[353,768,769],{},"to",[353,771,772],{},"compare",[353,774,775],{},"device",[353,777,778],{},"country",[353,780,781],{},"includeInternal"," parameters. ",[353,784,751],{}," is the overview: searches, sessions, zero-result rate, click-through, add-to-cart and conversion rates, revenue and latency, each against the comparison window, plus the timeline. ",[353,787,754],{}," takes a ",[353,790,791],{},"report"," name (",[353,794,795],{},"queries",[353,797,798],{},"no-click",[353,800,801],{},"products",[353,803,804],{},"positions",[353,806,807],{},"filters",[353,809,680],{},[353,811,812],{},"rules",[353,814,815],{},"refinements",[353,817,818],{},"opportunities",") and answers its rows; see ",[406,821,265],{"href":266},[353,823,757],{}," takes ",[353,826,827],{},"q"," and answers one query day by day, with the synonyms and rules that touched it and the numbers before and after the latest one.",[342,830,831,832,382],{},"There is no tool for sending events: those come from the storefront. See ",[406,833,271],{"href":272},[342,835,836,837,844],{},"Start relevance work from the opportunities list, or use the ",[406,838,840,843],{"href":839},"\u002Fdocs\u002Fmcp\u002Fresources#prompts",[353,841,842],{},"tune_relevance"," prompt",", which runs the whole loop.",[497,846,849],{"className":847,"code":848,"language":502,"meta":503},[500],"Which searches lost us the most money last week? For the top ten, propose synonyms or rules,\ntest them and wait for my go before applying anything.\n",[353,850,848],{"__ignoreMap":503},[497,852,855],{"className":853,"code":854,"language":502,"meta":503},[500],"Show me \"scotch\" over the last 90 days. Did the synonym we added in September change anything?\n",[353,856,854],{"__ignoreMap":503},[337,858,860],{"id":859},"what-the-tools-do-not-cover","What the tools do not cover",[342,862,863],{},"Some work stays in the cabinet or the REST API: API keys, members and billing, data sources, full catalog sync with replace sessions, custom suggestions and the autocomplete settings, and the synonym file import and export.",[865,866,867],"note",{},[342,868,869,870,872,873,876,877,484,880,596,882,884],{},"Searches the ",[353,871,561],{}," tool runs with a saved profile are logged as ",[353,874,875],{},"mcp"," traffic. They never feed autocomplete, and analytics shows them only with ",[401,878,879],{},"Include internal traffic",[353,881,570],{},[353,883,665],{}," are not logged.",[337,886,888],{"id":887},"related","Related",[346,890,891,895,899,903,907],{},[349,892,893],{},[406,894,284],{"href":285},[349,896,897],{},[406,898,296],{"href":297},[349,900,901],{},[406,902,309],{"href":310},[349,904,905],{},[406,906,260],{"href":261},[349,908,909],{},[406,910,242],{"href":249},{"title":503,"searchDepth":912,"depth":912,"links":913},2,[914,915,916,917,918,919,920,921,922,923,924,925],{"id":339,"depth":912,"text":340},{"id":395,"depth":912,"text":396},{"id":413,"depth":912,"text":414},{"id":520,"depth":912,"text":109},{"id":555,"depth":912,"text":556},{"id":617,"depth":912,"text":224},{"id":648,"depth":912,"text":230},{"id":680,"depth":912,"text":242},{"id":694,"depth":912,"text":695},{"id":746,"depth":912,"text":253},{"id":859,"depth":912,"text":860},{"id":887,"depth":912,"text":888},"md",{},{"icon":294},{"title":290,"description":293},"2u4wdz2XetHx5o4g0WBrvYQxzcsDIFr0cdVN6U5kPmw",[932,933],{"title":284,"path":285,"stem":286,"description":287,"icon":288,"children":-1},{"title":296,"path":297,"stem":298,"description":299,"icon":300,"children":-1},1793717706326]