[{"data":1,"prerenderedAt":1028},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Freference\u002Frest-api":235,"docs-\u002Fdocs\u002Freference\u002Frest-api-surround":1025},[4],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Docs","\u002Fdocs","docs",[9,35,60,78,120,157,168,180,205],{"title":10,"description":11,"icon":12,"path":13,"stem":14,"children":15,"page":34},"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],{"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","From a new account to a first search request in six steps, with curl or from your AI agent.","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",false,{"title":36,"description":37,"icon":38,"path":39,"stem":40,"children":41,"page":34},"Account and team","Sign-in, sessions, organizations, members, roles and projects.","i-lucide-users","\u002Fdocs\u002Faccount","docs\u002F2.account",[42,48,54],{"title":43,"path":44,"stem":45,"description":46,"icon":47},"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":49,"path":50,"stem":51,"description":52,"icon":53},"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":55,"path":56,"stem":57,"description":58,"icon":59},"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":61,"description":62,"icon":63,"path":64,"stem":65,"children":66,"page":34},"API keys and security","Secret and public keys, scopes, allowed origins, rate limits and errors.","i-lucide-key-round","\u002Fdocs\u002Fkeys","docs\u002F3.keys",[67,72],{"title":68,"path":69,"stem":70,"description":71,"icon":63},"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":73,"path":74,"stem":75,"description":76,"icon":77},"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":79,"description":80,"icon":81,"path":82,"stem":83,"children":84,"page":34},"Indexing","Indices, languages, mappings, documents, tasks, full catalog sync and reindexing.","i-lucide-database","\u002Fdocs\u002Findexing","docs\u002F4.indexing",[85,90,96,102,108,114],{"title":86,"path":87,"stem":88,"description":89,"icon":81},"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":91,"path":92,"stem":93,"description":94,"icon":95},"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":97,"path":98,"stem":99,"description":100,"icon":101},"Documents and tasks","\u002Fdocs\u002Findexing\u002Fdocuments","docs\u002F4.indexing\u002F3.documents","Upload and delete documents in batches, follow each write as a task, retry safely with Idempotency-Key, and browse what the index holds.","i-lucide-file-json",{"title":103,"path":104,"stem":105,"description":106,"icon":107},"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":109,"path":110,"stem":111,"description":112,"icon":113},"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":115,"path":116,"stem":117,"description":118,"icon":119},"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":121,"description":122,"icon":123,"path":124,"stem":125,"children":126,"page":34},"Search and relevance","The search API, search profiles, facets, synonyms and ranking rules.","i-lucide-search","\u002Fdocs\u002Fsearch","docs\u002F5.search",[127,133,139,145,151],{"title":128,"path":129,"stem":130,"description":131,"icon":132},"Search API","\u002Fdocs\u002Fsearch\u002Fsearch-api","docs\u002F5.search\u002F1.search-api","The search request and response, every filter form, sorting, paging, highlighting and the inline profile for previews.","i-lucide-search-code",{"title":134,"path":135,"stem":136,"description":137,"icon":138},"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":140,"path":141,"stem":142,"description":143,"icon":144},"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":146,"path":147,"stem":148,"description":149,"icon":150},"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":152,"path":153,"stem":154,"description":155,"icon":156},"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":158,"description":159,"icon":160,"path":161,"stem":162,"children":163,"page":34},"Autocomplete","Query suggestions as the shopper types.","i-lucide-text-cursor-input","\u002Fdocs\u002Fautocomplete","docs\u002F6.autocomplete",[164],{"title":158,"path":165,"stem":166,"description":167,"icon":160},"\u002Fdocs\u002Fautocomplete\u002Fsuggestions","docs\u002F6.autocomplete\u002F1.suggestions","Query suggestions as the shopper types, built every hour from your own searches, field values and custom entries.",{"title":169,"description":170,"icon":171,"path":172,"stem":173,"children":174,"page":34},"Analytics","Searches, zero-result queries and latency.","i-lucide-chart-line","\u002Fdocs\u002Fanalytics","docs\u002F7.analytics",[175],{"title":176,"path":177,"stem":178,"description":179,"icon":171},"Search analytics","\u002Fdocs\u002Fanalytics\u002Fsearch-analytics","docs\u002F7.analytics\u002F1.search-analytics","How many searches an index serves, which queries find nothing, how fast it answers, and what to do about zero results.",{"title":181,"description":182,"icon":183,"path":184,"stem":185,"children":186,"page":34},"AI agents (MCP)","Connect Claude Code or any MCP client and manage search from an agent.","i-lucide-bot","\u002Fdocs\u002Fmcp","docs\u002F8.mcp",[187,193,199],{"title":188,"path":189,"stem":190,"description":191,"icon":192},"MCP setup","\u002Fdocs\u002Fmcp\u002Fsetup","docs\u002F8.mcp\u002F1.setup","Connect Claude Code or any MCP client to Zaproo Search and manage indices, documents, profiles, synonyms and ranking rules from your agent.","i-lucide-plug",{"title":194,"path":195,"stem":196,"description":197,"icon":198},"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":200,"path":201,"stem":202,"description":203,"icon":204},"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":206,"description":207,"icon":208,"path":209,"stem":210,"children":211,"page":34},"Reference","Every REST route, every limit, plans and billing, and status.","i-lucide-book-open","\u002Fdocs\u002Freference","docs\u002F9.reference",[212,218,223,229],{"title":213,"path":214,"stem":215,"description":216,"icon":217},"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":219,"path":220,"stem":221,"description":222,"icon":77},"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":224,"path":225,"stem":226,"description":227,"icon":228},"Plans and billing","\u002Fdocs\u002Freference\u002Fbilling","docs\u002F9.reference\u002F3.billing","The plans, how usage is measured, what happens near a quota, and how plan changes and invoices work.","i-lucide-credit-card",{"title":230,"path":231,"stem":232,"description":233,"icon":234},"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":236,"title":213,"body":237,"description":216,"extension":1020,"meta":1021,"navigation":1022,"path":214,"seo":1023,"stem":215,"__hash__":1024},"docs\u002Fdocs\u002F9.reference\u002F1.rest-api.md",{"type":238,"value":239,"toc":1001},"minimark",[240,245,258,280,291,298,382,396,399,466,486,490,493,498,501,508,512,532,603,607,609,612,615,618,621,624,628,630,633,635,638,641,645,681,684,687,690,692,695,698,701,704,707,710,713,716,719,723,737,740,742,745,747,749,752,755,759,762,764,767,770,773,775,778,782,785,787,790,793,796,798,800,803,807,810,812,815,817,820,823,826,829,833,836,839,844,848,851,854,857,876,879,882,885,888,891,894,897,900,903,906,909,912,915,918,922,928,931,935,938,941,944,947,950,953,955,959,964,968,971,974,986,990,997],[241,242,244],"h2",{"id":243},"basics","Basics",[246,247,248,249,253,254,257],"p",{},"The API lives at ",[250,251,252],"code",{},"https:\u002F\u002Fapi.zaproo-search.com",". Every request body and response is JSON, every route except the health checks sits under ",[250,255,256],{},"\u002Fv1",", and every request authenticates with one header:",[259,260,265],"pre",{"className":261,"code":262,"language":263,"meta":264,"style":264},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","-H \"Authorization: Bearer zs_sk_...\"\n","bash","",[250,266,267],{"__ignoreMap":264},[268,269,272,276],"span",{"class":270,"line":271},"line",1,[268,273,275],{"class":274},"szw1H","-H",[268,277,279],{"class":278},"semJd"," \"Authorization: Bearer zs_sk_...\"\n",[246,281,282,283,286,287,290],{},"The bearer is a secret key (",[250,284,285],{},"zs_sk_…",") for a server, a public key (",[250,288,289],{},"zs_pk_…",") for the two storefront routes, or the cabinet's session token for a signed-in user.",[246,292,293,297],{},[294,295,296],"strong",{},"Who may call a route"," is printed under each one:",[299,300,301,314],"table",{},[302,303,304],"thead",{},[305,306,307,311],"tr",{},[308,309,310],"th",{},"Label",[308,312,313],{},"Means",[315,316,317,326,334,342,350,358,366,374],"tbody",{},[305,318,319,323],{},[320,321,322],"td",{},"Anyone",[320,324,325],{},"No credentials.",[305,327,328,331],{},[320,329,330],{},"No credentials",[320,332,333],{},"Sign-in and account recovery: the route takes its own proof (a password, an emailed token, a refresh cookie).",[305,335,336,339],{},[320,337,338],{},"Signed-in user",[320,340,341],{},"A cabinet session of any user.",[305,343,344,347],{},[320,345,346],{},"Organization member, admin, owner",[320,348,349],{},"A cabinet session whose role in the organization is at least this one. Roles rank owner, admin, member.",[305,351,352,355],{},[320,353,354],{},"Project member or admin (signed in)",[320,356,357],{},"A cabinet session with at least that role in the project's organization. API keys cannot call these routes.",[305,359,360,363],{},[320,361,362],{},"Project member or any secret key",[320,364,365],{},"A cabinet session of a member, or a secret key of the project with read or full access.",[305,367,368,371],{},[320,369,370],{},"Project admin or a full-access secret key",[320,372,373],{},"A cabinet session of an admin, or a secret key of the project with full access.",[305,375,376,379],{},[320,377,378],{},"Public key from an allowed origin, or a secret key",[320,380,381],{},"A public key whose request comes from one of its allowed origins, or a secret key of the same project.",[246,383,384,385,388,389,392,393,395],{},"An id that belongs to another organization or project answers ",[250,386,387],{},"404",", never ",[250,390,391],{},"403",", so ids cannot be probed. A key with an index scope gets ",[250,394,387],{}," for every other index.",[246,397,398],{},"Errors share one shape:",[259,400,404],{"className":401,"code":402,"language":403,"meta":264,"style":264},"language-json shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","{\"error\": {\"code\": \"PROFILE_INVALID\", \"message\": \"...\", \"details\": [{\"path\": \"queryFields.title\", \"message\": \"...\"}]}}\n","json",[250,405,406],{"__ignoreMap":264},[268,407,408,412,416,419,422,425,428,431,434,436,439,441,444,447,450,452,455,457,459,461,463],{"class":270,"line":271},[268,409,411],{"class":410},"s7iLA","{",[268,413,415],{"class":414},"sb7M8","\"error\"",[268,417,418],{"class":410},": {",[268,420,421],{"class":414},"\"code\"",[268,423,424],{"class":410},": ",[268,426,427],{"class":278},"\"PROFILE_INVALID\"",[268,429,430],{"class":410},", ",[268,432,433],{"class":414},"\"message\"",[268,435,424],{"class":410},[268,437,438],{"class":278},"\"...\"",[268,440,430],{"class":410},[268,442,443],{"class":414},"\"details\"",[268,445,446],{"class":410},": [{",[268,448,449],{"class":414},"\"path\"",[268,451,424],{"class":410},[268,453,454],{"class":278},"\"queryFields.title\"",[268,456,430],{"class":410},[268,458,433],{"class":414},[268,460,424],{"class":410},[268,462,438],{"class":278},[268,464,465],{"class":410},"}]}}\n",[467,468,469],"note",{},[246,470,471,472,475,476,479,480,485],{},"Writes to documents, a reindex and a suggestion rebuild answer ",[250,473,474],{},"202"," with ",[250,477,478],{},"{\"taskId\": \"...\"}",". Poll the task under ",[481,482,484],"a",{"href":483},"#tasks","Tasks"," until it is done.",[241,487,489],{"id":488},"storefront","Storefront",[246,491,492],{},"The two routes a storefront calls. They take a public handle in the path instead of a project id.",[494,495],"api-route",{"auth":378,"method":496,"path":497},"POST","\u002Fv1\u002Fsearch\u002F:profileKey",[494,499],{"auth":378,"method":496,"path":500},"\u002Fv1\u002Fsuggest\u002F:suggestKey",[246,502,503,504,507],{},"These two routes answer the CORS preflight for every origin, without cookies, so a shop's pages can call them from the browser with a public key. The key's allowed origins are checked on the real request. A server sends no ",[250,505,506],{},"Origin"," header, so call them from a server with a secret key.",[241,509,511],{"id":510},"indices","Indices",[246,513,514,515,430,517,519,520,523,524,527,528,531],{},"See ",[481,516,86],{"href":87},[481,518,91],{"href":92}," and ",[481,521,522],{"href":110},"Reindex",". A mapping change, reindex or replace session that would break a profile, rule, facet, autocomplete field or data source answers ",[250,525,526],{},"409 MAPPING_BREAKS_CONFIG","; ",[250,529,530],{},"details"," lists each use to change first.",[246,533,534,535,538,539,430,542,545,546,519,549,430,552,555,556,559,560,563,564,567,568,570,571,574,575,578,579,519,582,585,586,589,590,593,594,597,598,602],{},"A shop platform plugin, such as the Magento 2 module, reports itself with ",[250,536,537],{},"PUT ...\u002Fintegration"," (body ",[250,540,541],{},"platform",[250,543,544],{},"name",", optional ",[250,547,548],{},"url",[250,550,551],{},"version",[250,553,554],{},"settings.manageMapping",") each time its settings change, and ",[250,557,558],{},"GET ...\u002F:indexId"," returns it as ",[250,561,562],{},"integration",". Only a full-access secret key may connect one; a signed-in user gets ",[250,565,566],{},"403 INTEGRATION_KEY_ONLY",". While ",[250,569,554],{}," is on, ",[250,572,573],{},"PUT ...\u002Fmapping"," from the plugin's own key only adds the fields the saved mapping lacks and keeps every saved field and the language, and from anyone else it answers ",[250,576,577],{},"409 MAPPING_MANAGED_BY_INTEGRATION"," if it removes a field. While any integration is connected, ",[250,580,581],{},"PUT ...\u002Ffeed",[250,583,584],{},"POST ...\u002Ffeed\u002Fsync"," answer ",[250,587,588],{},"409 INDEX_HAS_INTEGRATION",". ",[250,591,592],{},"DELETE ...\u002Fintegration"," disconnects it, answers ",[250,595,596],{},"204"," and is safe to repeat. See ",[481,599,601],{"href":600},"\u002Fdocs\u002Findexing\u002Fdata-source#integrations","Integrations",".",[494,604],{"auth":362,"method":605,"path":606},"GET","\u002Fv1\u002Fprojects\u002F:projectId\u002Findices",[494,608],{"auth":370,"method":496,"path":606},[494,610],{"auth":362,"method":605,"path":611},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId",[494,613],{"auth":370,"method":614,"path":611},"DELETE",[494,616],{"auth":362,"method":605,"path":617},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fmapping",[494,619],{"auth":362,"method":605,"path":620},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fmapping\u002Fusage",[494,622],{"auth":370,"method":623,"path":617},"PUT",[494,625],{"auth":626,"method":623,"path":627},"A full-access secret key","\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fintegration",[494,629],{"auth":370,"method":614,"path":627},[494,631],{"auth":362,"method":605,"path":632},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Ffacets",[494,634],{"auth":370,"method":623,"path":632},[494,636],{"auth":370,"method":496,"path":637},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freindex",[494,639],{"auth":370,"method":496,"path":640},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freindex\u002Fcancel",[241,642,644],{"id":643},"documents-and-full-sync","Documents and full sync",[246,646,647,650,651,654,655,658,659,662,663,475,665,519,668,671,672,676,677,519,679,602],{},[250,648,649],{},"POST ...\u002Fdocuments"," takes a bare JSON array of up to 1000 documents; ",[250,652,653],{},"POST ...\u002Fdocuments\u002Fdelete"," a bare array of ids. Both accept an ",[250,656,657],{},"Idempotency-Key"," header. ",[250,660,661],{},"POST ...\u002Fdocuments\u002Fflush"," takes no body, deletes every document and answers ",[250,664,474],{},[250,666,667],{},"taskId",[250,669,670],{},"previousDocCount","; see ",[481,673,675],{"href":674},"\u002Fdocs\u002Findexing\u002Fdocuments#delete-all-documents","Delete all documents",". Replace sessions upload a whole catalog and swap it in at commit. See ",[481,678,97],{"href":98},[481,680,103],{"href":104},[494,682],{"auth":370,"method":496,"path":683},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fdocuments",[494,685],{"auth":370,"method":496,"path":686},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fdocuments\u002Fdelete",[494,688],{"auth":370,"method":496,"path":689},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fdocuments\u002Fflush",[494,691],{"auth":362,"method":605,"path":683},[494,693],{"auth":362,"method":605,"path":694},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fdocuments\u002F:docId",[494,696],{"auth":370,"method":496,"path":697},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freplace-sessions",[494,699],{"auth":362,"method":605,"path":700},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freplace-sessions\u002F:sessionId",[494,702],{"auth":370,"method":496,"path":703},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freplace-sessions\u002F:sessionId\u002Fdocuments",[494,705],{"auth":370,"method":496,"path":706},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freplace-sessions\u002F:sessionId\u002Fcommit",[494,708],{"auth":370,"method":496,"path":709},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freplace-sessions\u002F:sessionId\u002Fabort",[241,711,484],{"id":712},"tasks",[494,714],{"auth":362,"method":605,"path":715},"\u002Fv1\u002Fprojects\u002F:projectId\u002Ftasks",[494,717],{"auth":362,"method":605,"path":718},"\u002Fv1\u002Fprojects\u002F:projectId\u002Ftasks\u002F:taskId",[241,720,722],{"id":721},"search-and-profiles","Search and profiles",[246,724,725,728,729,732,733,519,735,602],{},[250,726,727],{},"POST ...\u002Findices\u002F:indexId\u002Fsearch"," is the secret search by index id: a saved profile by ",[250,730,731],{},"profileKey",", or an inline profile to try settings before saving them. See ",[481,734,128],{"href":129},[481,736,134],{"href":135},[494,738],{"auth":362,"method":605,"path":739},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fprofiles",[494,741],{"auth":370,"method":496,"path":739},[494,743],{"auth":362,"method":605,"path":744},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fprofiles\u002F:profileId",[494,746],{"auth":370,"method":623,"path":744},[494,748],{"auth":370,"method":614,"path":744},[494,750],{"auth":362,"method":496,"path":751},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsearch",[241,753,146],{"id":754},"synonyms",[246,756,514,757,602],{},[481,758,146],{"href":147},[494,760],{"auth":362,"method":605,"path":761},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsynonyms",[494,763],{"auth":370,"method":496,"path":761},[494,765],{"auth":370,"method":496,"path":766},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsynonyms\u002Fimport",[494,768],{"auth":362,"method":605,"path":769},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsynonyms\u002Fexport",[494,771],{"auth":370,"method":623,"path":772},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsynonyms\u002F:synonymId",[494,774],{"auth":370,"method":614,"path":772},[241,776,152],{"id":777},"ranking-rules",[246,779,514,780,602],{},[481,781,152],{"href":153},[494,783],{"auth":362,"method":605,"path":784},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Frules",[494,786],{"auth":370,"method":496,"path":784},[494,788],{"auth":370,"method":623,"path":789},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Frules\u002Forder",[494,791],{"auth":362,"method":496,"path":792},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Frules\u002Ftest",[494,794],{"auth":362,"method":605,"path":795},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Frules\u002F:ruleId",[494,797],{"auth":370,"method":623,"path":795},[494,799],{"auth":370,"method":614,"path":795},[241,801,158],{"id":802},"autocomplete",[246,804,514,805,602],{},[481,806,158],{"href":165},[494,808],{"auth":362,"method":605,"path":809},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Fconfig",[494,811],{"auth":370,"method":623,"path":809},[494,813],{"auth":362,"method":605,"path":814},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Fcustom",[494,816],{"auth":370,"method":496,"path":814},[494,818],{"auth":370,"method":614,"path":819},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Fcustom\u002F:suggestionId",[494,821],{"auth":370,"method":496,"path":822},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Frebuild",[494,824],{"auth":362,"method":496,"path":825},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggest",[241,827,169],{"id":828},"analytics",[246,830,514,831,602],{},[481,832,176],{"href":177},[494,834],{"auth":362,"method":605,"path":835},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fanalytics",[241,837,68],{"id":838},"api-keys",[246,840,841,842,602],{},"Keys are managed from a cabinet session only; no key can create or revoke another key. Creating a key needs a confirmed email. See ",[481,843,68],{"href":69},[494,845],{"auth":846,"method":605,"path":847},"Project member (signed in)","\u002Fv1\u002Fprojects\u002F:projectId\u002Fapi-keys",[494,849],{"auth":850,"method":496,"path":847},"Project admin (signed in)",[494,852],{"auth":850,"method":614,"path":853},"\u002Fv1\u002Fprojects\u002F:projectId\u002Fapi-keys\u002F:keyId",[241,855,43],{"id":856},"account-and-sign-in",[246,858,859,860,519,863,866,867,519,870,873,874,602],{},"The cabinet's own routes. ",[250,861,862],{},"refresh",[250,864,865],{},"logout"," read the refresh cookie the cabinet holds. ",[250,868,869],{},"impersonate",[250,871,872],{},"impersonation\u002Fexit"," serve Zaproo support: they trade a one-time code from an administrator for a session as the account owner, and end it. See ",[481,875,43],{"href":44},[494,877],{"auth":330,"method":496,"path":878},"\u002Fv1\u002Fauth\u002Fregister",[494,880],{"auth":330,"method":605,"path":881},"\u002Fv1\u002Fauth\u002Fverify-email",[494,883],{"auth":338,"method":496,"path":884},"\u002Fv1\u002Fauth\u002Fresend-verification",[494,886],{"auth":330,"method":496,"path":887},"\u002Fv1\u002Fauth\u002Flogin",[494,889],{"auth":330,"method":496,"path":890},"\u002Fv1\u002Fauth\u002Frefresh",[494,892],{"auth":330,"method":496,"path":893},"\u002Fv1\u002Fauth\u002Flogout",[494,895],{"auth":330,"method":496,"path":896},"\u002Fv1\u002Fauth\u002Fforgot-password",[494,898],{"auth":330,"method":496,"path":899},"\u002Fv1\u002Fauth\u002Freset-password",[494,901],{"auth":330,"method":496,"path":902},"\u002Fv1\u002Fauth\u002Fimpersonate",[494,904],{"auth":338,"method":496,"path":905},"\u002Fv1\u002Fauth\u002Fimpersonation\u002Fexit",[494,907],{"auth":338,"method":605,"path":908},"\u002Fv1\u002Fauth\u002Fme",[494,910],{"auth":338,"method":496,"path":911},"\u002Fv1\u002Fauth\u002Fchange-password",[494,913],{"auth":338,"method":605,"path":914},"\u002Fv1\u002Fauth\u002Fsessions",[494,916],{"auth":338,"method":614,"path":917},"\u002Fv1\u002Fauth\u002Fsessions\u002F:familyId",[241,919,921],{"id":920},"organizations-members-and-projects","Organizations, members and projects",[246,923,514,924,519,926,602],{},[481,925,49],{"href":50},[481,927,55],{"href":56},[494,929],{"auth":338,"method":605,"path":930},"\u002Fv1\u002Forgs",[494,932],{"auth":933,"method":605,"path":934},"Organization member","\u002Fv1\u002Forgs\u002F:orgId",[494,936],{"auth":933,"method":605,"path":937},"\u002Fv1\u002Forgs\u002F:orgId\u002Fprojects",[494,939],{"auth":940,"method":496,"path":937},"Organization admin",[494,942],{"auth":362,"method":605,"path":943},"\u002Fv1\u002Fprojects\u002F:projectId",[494,945],{"auth":933,"method":605,"path":946},"\u002Fv1\u002Forgs\u002F:orgId\u002Fmembers",[494,948],{"auth":949,"method":496,"path":946},"Organization owner",[494,951],{"auth":949,"method":623,"path":952},"\u002Fv1\u002Forgs\u002F:orgId\u002Fmembers\u002F:userId",[494,954],{"auth":949,"method":614,"path":952},[241,956,958],{"id":957},"mcp","MCP",[246,960,961,962,602],{},"The MCP server, for AI agents. See ",[481,963,188],{"href":189},[494,965],{"auth":966,"method":496,"path":967},"Secret key","\u002Fmcp",[241,969,230],{"id":970},"status",[494,972],{"auth":322,"method":605,"path":973},"\u002Fv1\u002Fstatus",[246,975,514,976,978,979,519,982,985],{},[481,977,230],{"href":231}," for what it answers. ",[250,980,981],{},"GET \u002Fhealth",[250,983,984],{},"GET \u002Fready"," are probes for the infrastructure that runs the API.",[241,987,989],{"id":988},"not-allowed-while-impersonating","Not allowed while impersonating",[246,991,992,993,996],{},"When Zaproo support acts as an account owner, these routes answer ",[250,994,995],{},"403 IMPERSONATION_FORBIDDEN",": creating an API key, changing the password, ending a session, changing the plan, and adding, changing or removing a member.",[998,999,1000],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sb7M8, html code.shiki .sb7M8{--shiki-light:#024C1A;--shiki-default:#024C1A;--shiki-dark:#72F088}",{"title":264,"searchDepth":1002,"depth":1002,"links":1003},2,[1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019],{"id":243,"depth":1002,"text":244},{"id":488,"depth":1002,"text":489},{"id":510,"depth":1002,"text":511},{"id":643,"depth":1002,"text":644},{"id":712,"depth":1002,"text":484},{"id":721,"depth":1002,"text":722},{"id":754,"depth":1002,"text":146},{"id":777,"depth":1002,"text":152},{"id":802,"depth":1002,"text":158},{"id":828,"depth":1002,"text":169},{"id":838,"depth":1002,"text":68},{"id":856,"depth":1002,"text":43},{"id":920,"depth":1002,"text":921},{"id":957,"depth":1002,"text":958},{"id":970,"depth":1002,"text":230},{"id":988,"depth":1002,"text":989},"md",{},{"icon":217},{"title":213,"description":216},"JHpflKMCcrIKio52lDLp3uu5a5h0TWtit8NR7buctAg",[1026,1027],{"title":200,"path":201,"stem":202,"description":203,"icon":204,"children":-1},{"title":219,"path":220,"stem":221,"description":222,"icon":77,"children":-1},1792598976626]