Reference

Limits

Every size limit, cap and default of the Zaproo Search API in one place, with what happens when you reach it.

How to read this page

These are hard limits of the API: a request past one is refused, usually with 400 VALIDATION_FAILED or 409 and a code naming the limit. They are the same on every plan. Plan quotas (documents, searches a month, indices, seats) are different: they are soft and never block anything. See Plans and billing.

Requests

LimitValueMeaning
Request body100 kBEvery JSON body, except the routes below.
Bulk request body10 MBDocument upserts and deletes, replace-session uploads, synonym import and /mcp.
Idempotency key200 characters, kept 24 hoursA retry with the same Idempotency-Key within 24 hours answers the first task instead of running again.
List page size20 documents, 25 synonyms, 50 tasks by default; 100 at mostThe limit query parameter of list routes.

Indices and mapping

LimitValueMeaning
Index name1 to 100 characters
Fields per mapping500Including id and every attributes.* field.
Field nameLetter first, then letters, digits or _, up to 64 charactersOptionally prefixed with attributes..
Unmapped fields tracked1000Fields seen in documents but not in the mapping, listed by GET .../mapping.
Old versions kept24 hoursAfter a reindex swaps the alias, the previous version stays a day so a bad swap can be undone.

Documents and tasks

LimitValueMeaning
Documents per request1000Upsert and delete batches, and each replace-session upload.
Document id1 to 512 characters
Validation issues listed20A 400 on a batch lists at most 20 problems; fix those and send again.
Errors kept per task1000Per-document errors on a PARTIAL or FAILED task.
Attempts per document task5A document write that fails on an infrastructure error is retried up to 5 times, then the task fails. A reindex or a suggestion build runs once.
Replace session lifetime6 hoursAn open session that is not committed within 6 hours is dropped with its building version.
LimitValueMeaning
Query length500 charactersq in a search request.
Page window10,000page × perPage may not pass 10,000; deeper pages answer 400 PAGE_OUT_OF_RANGE. total counts up to 10,000.
Results per page24 by default, 100 at most; 1 to 1000 settable per profileperPage in the request, capped by the profile's perPage.max.
Sort clauses10Per sort option, and in pinnedSort.
sessionId1 to 100 letters, digits, - or _, not starting with _
Filter values1000 per field, 500 characters eachA list filter like {"brand": ["a", "b"]}.
Filter groups4 levels deep, 100 field filters in all$or takes 2 to 20 filters, $and 1 to 20, $not one.
fields1 to 100 namesEach must be a field the profile returns.
excludeIds1 to 1000 ids
Hits per MCP search10search, preview_profile and test_rule over MCP.

Search profiles and facets

LimitValueMeaning
Profiles per index50One more answers 409 PROFILE_LIMIT_REACHED.
Profile name1 to 100 charactersUnique within an index.
Query field weightAbove 0, up to 100
Phrase boost0 to 100Default 2.
Typo prefix length0 to 10Default 1.
Facets50 per index or profile
Facet values20 by default, 500 at most (terms); 50 by default, 500 at most (hierarchy)
Range buckets1 to 50 per range facet
Sort options1 to 50 per profile
Extra filterable fields100 per profile
Returned fields200 per profile

Synonyms

LimitValueMeaning
Synonym rules per index10,000One more, or an import that would pass it, answers 409 SYNONYM_LIMIT_REACHED.
Terms per side100Terms of an equivalent rule, or each side of a one-way rule.
Term length100 characters
Import file2,000,000 charactersThe Solr-format text of POST .../synonyms/import.
Query variants8A query expands to at most 8 synonym variants.

Ranking rules

LimitValueMeaning
Rules per index1000One more answers 409 RULE_LIMIT_REACHED.
Queries per rule100Phrases of up to 200 characters.
Actions per rule10
Pinned products24Per rule, and in total on one search.
Hidden products500 per rule
Boost factor0.1 to 10Below 1 buries the products.
Profiles per rule50Empty means every profile.

Autocomplete

LimitValueMeaning
Suggest query length100 charactersq in a suggest request.
Suggestions per answer1 to 20, default 8
Empty-query suggestions1 to 20, default 5
Suggestion fields10Keyword fields whose values become suggestions.
Values per suggestion field200The most frequent values of each field.
Minimum searches1 to 1000, default 2
Lookback1 to 90 days, default 30
Custom suggestions1000 per indexOne more answers 409 SUGGESTION_LIMIT_REACHED.
Custom suggestion text100 characters
Custom suggestion weightAbove 0, up to 1,000,000
Queries with a facet hint200The most popular queries of each build.

Analytics

LimitValueMeaning
Window90 days at most, 30 by defaultA longer window answers 400 VALIDATION_FAILED.
Query lists50Top queries and zero-result queries.
Search log retention90 daysOlder searches are deleted.

API keys

LimitValueMeaning
Key name1 to 100 characters
Index scope100 indicesEmpty means every index of the project.
Allowed origins50 per public key

Rate limits

Counted per minute. Past a limit the API answers 429 RATE_LIMITED with a Retry-After header. See Rate limits and errors for how to handle it.

RoutePer keyPer client IP
Public search6001200
Public suggest12002400
/mcp6001200
Every other route, per secret key1200
Every other route, per signed-in user600
Sign in10
Register5
Forgot password5
Session refresh120
Email links (verify, reset)30
Resend verification mail3 per user