Algolia Recommend API
Returns related-products, frequently-bought-together, trending and look-alike recommendations trained from Insights events and catalog data, plus the Recommend rules that override them.
Returns related-products, frequently-bought-together, trending and look-alike recommendations trained from Insights events and catalog data, plus the Recommend rules that override them.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/algolia-recommend-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Recommend API
summary: The Recommend API lets you retrieve recommendations from one of Algolia's AI recommendation models that you previously trained on your data
description: "## Client libraries\n\nUse Algolia's API clients and libraries to reliably integrate Algolia's APIs with your apps.\nThe official API clients are covered by Algolia's [Service Level Agreement](https://www.algolia.com/policies/sla).\n\nFor more information, see [Algolia's ecosystem](https://www.algolia.com/doc/libraries).\n\n## Base URLs\n\nBase URLs for the Recommend API:\n\n- `https://{APPLICATION_ID}.algolia.net`\n- `https://{APPLICATION_ID}-dsn.algolia.net`.\n If your subscription includes a [Distributed Search Network](https://dashboard.algolia.com/infra),\n this ensures that requests are sent to servers closest to users.\n\nBoth URLs provide high availability by distributing requests with load balancing.\n\n**All requests must use HTTPS.**\n\n## Retry strategy\n\nTo guarantee a high availability, implement a retry strategy for all API requests using the URLs of your servers as fallbacks:\n\n- `https://{APPLICATION_ID}-1.algolianet.com`\n- `https://{APPLICATION_ID}-2.algolianet.com`\n- `https://{APPLICATION_ID}-3.algolianet.com`\n\nThese URLs use a different DNS provider than the primary URLs.\nRandomize this list to ensure an even load across the three servers.\n\nAll Algolia API clients implement this retry strategy.\n\n## Authentication\n\nAdd these headers to authenticate requests:\n\n- `x-algolia-application-id`. Your Algolia application ID.\n- `x-algolia-api-key`. An API key with the necessary permissions to make the request.\n The required access control list (ACL) to make a request is listed in each endpoint's reference.\n\nYou can find your application ID and API key in the [Algolia dashboard](https://dashboard.algolia.com/account/api-keys).\n\n## Request format\n\nRequest bodies must be JSON objects.\n\n## Response status and errors\n\nThe Recommend API returns JSON responses.\nSince JSON doesn't guarantee any specific ordering, don't rely on the order of attributes in the API response.\n\nSuccessful responses return `2xx` statuses. Client errors return `4xx` statuses. Server errors return `5xx` statuses.\nError responses have a `message` property with more information.\n\n## Version\n\nThe current version of the Recommend API is version 1, indicated by the `/1/` in each endpoint's URL.\n"
version: 1.0.0
servers:
- url: https://{appId}.algolia.net
variables:
appId:
default: ALGOLIA_APPLICATION_ID
- url: https://{appId}-1.algolianet.com
variables:
appId:
default: ALGOLIA_APPLICATION_ID
- url: https://{appId}-2.algolianet.com
variables:
appId:
default: ALGOLIA_APPLICATION_ID
- url: https://{appId}-3.algolianet.com
variables:
appId:
default: ALGOLIA_APPLICATION_ID
- url: https://{appId}-dsn.algolia.net
variables:
appId:
default: ALGOLIA_APPLICATION_ID
security:
- appId: []
apiKey: []
tags:
- name: recommend
paths:
/{path}:
get:
operationId: customGet
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- recommend
post:
operationId: customPost
requestBody:
description: Parameters to send with the custom request.
content:
application/json:
schema:
type: object
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- recommend
put:
operationId: customPut
requestBody:
description: Parameters to send with the custom request.
content:
application/json:
schema:
type: object
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- recommend
delete:
operationId: customDelete
summary: Send requests to the Algolia REST API
description: This method lets you send requests to the Algolia REST API.
parameters:
- $ref: '#/components/parameters/PathInPath'
- $ref: '#/components/parameters/Parameters'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
tags:
- recommend
/1/indexes/*/recommendations:
post:
tags:
- recommend
operationId: getRecommendations
x-use-read-transporter: true
x-cacheable: true
x-acl:
- search
x-legacy-signature-recommend: true
summary: Retrieve recommendations
description: 'Retrieves recommendations from selected AI models.
'
requestBody:
required: true
content:
application/json:
schema:
title: getRecommendationsParams
description: Recommend request body.
type: object
additionalProperties: false
properties:
requests:
type: array
description: Recommendation request with parameters depending on the requested model.
items:
$ref: '#/components/schemas/recommendationsRequest'
required:
- requests
responses:
'200':
description: OK
content:
application/json:
schema:
title: getRecommendationsResponse
type: object
additionalProperties: false
properties:
results:
type: array
items:
$ref: '#/components/schemas/recommendationsResults'
required:
- results
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
/1/indexes/{indexName}/{model}/recommend/rules/{objectID}:
get:
tags:
- recommend
operationId: getRecommendRule
x-acl:
- settings
summary: Retrieve a rule
description: Retrieves a Recommend rule that you previously created in the Algolia dashboard.
parameters:
- $ref: '#/components/parameters/IndexName'
- $ref: '#/components/parameters/Models'
- $ref: '#/components/parameters/ObjectID'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RecommendRule'
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
delete:
tags:
- recommend
operationId: deleteRecommendRule
x-acl:
- editSettings
summary: Delete a rule
description: Deletes a Recommend rule from a recommendation scenario.
parameters:
- $ref: '#/components/parameters/IndexName'
- $ref: '#/components/parameters/Models'
- $ref: '#/components/parameters/ObjectID'
responses:
'200':
$ref: '#/components/responses/DeletedAt'
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
/1/indexes/{indexName}/{model}/task/{taskID}:
get:
tags:
- recommend
operationId: getRecommendStatus
x-acl:
- editSettings
summary: Check task status
description: 'Checks the status of a given task.
Deleting a Recommend rule is asynchronous.
When you delete a rule, a task is created on a queue and completed depending on the load on the server.
The API response includes a task ID that you can use to check the status.
'
parameters:
- $ref: '#/components/parameters/IndexName'
- $ref: '#/components/parameters/Models'
- name: taskID
in: path
description: Unique task identifier.
required: true
schema:
$ref: '#/components/schemas/taskID'
responses:
'200':
description: OK
content:
application/json:
schema:
title: getRecommendTaskResponse
type: object
additionalProperties: false
properties:
status:
$ref: '#/components/schemas/taskStatus'
required:
- status
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
/1/indexes/{indexName}/{model}/recommend/rules/search:
post:
tags:
- recommend
operationId: searchRecommendRules
x-use-read-transporter: true
x-cacheable: true
x-acl:
- settings
summary: Search for rules
description: 'Searches for Recommend rules.
Use an empty query to list all rules for this recommendation scenario.
'
parameters:
- $ref: '#/components/parameters/IndexName'
- $ref: '#/components/parameters/Models'
requestBody:
content:
application/json:
schema:
title: searchRecommendRulesParams
type: object
description: Recommend rules parameters.
additionalProperties: false
properties:
query:
$ref: '#/components/schemas/parameters_query'
context:
type: string
description: Only search for rules with matching context.
example: mobile
page:
$ref: '#/components/schemas/parameters_page'
hitsPerPage:
$ref: '#/components/schemas/parameters_hitsPerPage'
enabled:
type: boolean
description: 'Whether to only show rules where the value of their `enabled` property matches this parameter.
If absent, show all rules, regardless of their `enabled` property.
'
filters:
type: string
description: Filter expression. This only searches for rules matching the filter expression.
example: objectID:rr-123456
facets:
type: array
description: Include facets and facet values in the response. Use `['*']` to include all facets.
example:
- '*'
items:
type: string
description: Facet name for rule objects or `*` as wildcard character.
example: condition.context
maxValuesPerFacet:
type: integer
description: Maximum number of values to return for each facet.
minimum: 1
maximum: 1000
responses:
'200':
description: OK
content:
application/json:
schema:
title: searchRecommendRulesResponse
type: object
additionalProperties: false
required:
- hits
- nbHits
- page
- nbPages
properties:
hits:
type: array
description: Recommend rules that match the search criteria.
items:
$ref: '#/components/schemas/RecommendRule'
nbHits:
$ref: '#/components/schemas/nbHits'
page:
$ref: '#/components/schemas/page'
nbPages:
$ref: '#/components/schemas/nbPages'
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/FeatureNotEnabled'
'403':
$ref: '#/components/responses/MethodNotAllowed'
'404':
$ref: '#/components/responses/IndexNotFound'
/1/indexes/{indexName}/{model}/recommend/rules/batch:
post:
tags:
- recommend
operationId: batchRecommendRules
x-acl:
- editSettings
summary: Create or update a batch of Recommend Rules
description: 'Create or update a batch of Recommend Rules
Each Recommend Rule is created or updated, depending on whether a Recommend Rule with the same `objectID` already exists.
You may also specify `true` for `clearExistingRules`, in which case the batch will atomically replace all the existing Recommend Rules.
Recommend Rules are similar to Search Rules, except that the conditions and consequences apply to a [source item](/doc/guides/algolia-recommend/overview/#recommend-models) instead of a query. The main differences are the following:
- Conditions `pattern` and `anchoring` are unavailable.
- Condition `filters` triggers if the source item matches the specified filters.
- Condition `filters` accepts numeric filters.
- Consequence `params` only covers filtering parameters.
- Consequence `automaticFacetFilters` doesn''t require a facet value placeholder (it tries to match the data source item''s attributes instead).
'
parameters:
- $ref: '#/components/parameters/IndexName'
- $ref: '#/components/parameters/Models'
requestBody:
content:
application/json:
schema:
title: rules
type: array
description: Recommend rules.
items:
$ref: '#/components/schemas/RecommendRule'
responses:
'200':
$ref: '#/components/responses/RecommendUpdatedAt'
'400':
$ref: '#/components/responses/BadRequest'
/setClientApiKey:
get:
x-helper: true
x-asynchronous-helper: false
x-acl: []
tags:
- recommend
operationId: setClientApiKey
summary: Switch the API key used to authenticate requests
description: 'Switch the API key used to authenticate requests.
'
parameters:
- in: query
name: apiKey
description: API key to use for subsequent requests.
required: true
schema:
type: string
responses:
'204':
description: No content.
components:
schemas:
filters:
type: string
description: "Filter expression to only include items that match the filter criteria in the response.\n\nYou can use these filter expressions:\n\n- **Numeric filters.** `<facet> <op> <number>`, where `<op>` is one of `<`, `<=`, `=`, `!=`, `>`, `>=`.\n- **Ranges.** `<facet>:<lower> TO <upper>`, where `<lower>` and `<upper>` are the lower and upper limits of the range (inclusive).\n- **Facet filters.** `<facet>:<value>`, where `<facet>` is a facet attribute (case-sensitive) and `<value>` a facet value.\n- **Tag filters.** `_tags:<value>` or just `<value>` (case-sensitive).\n- **Boolean filters.** `<facet>: true | false`.\n\nYou can combine filters with `AND`, `OR`, and `NOT` operators with the following restrictions:\n\n- You can only combine filters of the same type with `OR`.\n **Not supported:** `facet:value OR num > 3`.\n- You can't use `NOT` with combinations of filters.\n **Not supported:** `NOT(facet:value OR facet:value)`\n- You can't combine conjunctions (`AND`) with `OR`.\n **Not supported:** `facet:value OR (facet:value AND facet:value)`\n\nUse quotes if the facet attribute name or facet value contains spaces, keywords (`OR`, `AND`, `NOT`), or quotes.\nIf a facet attribute is an array, the filter matches if it matches at least one element of the array.\n\nFor more information, see [Filters](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering).\n"
example: (category:Book OR category:Ebook) AND _tags:published
x-categories:
- Filtering
facetOrdering:
description: Order of facet names and facet values in your UI.
type: object
additionalProperties: false
properties:
facets:
$ref: '#/components/schemas/IndexSettings_facets'
values:
$ref: '#/components/schemas/values'
HideConsequenceObject:
type: object
description: Object ID of the recommendation you want to exclude.
properties:
objectID:
$ref: '#/components/schemas/objectID'
aroundLatLngViaIP:
type: boolean
description: Whether to obtain the coordinates from the request's IP address.
default: false
x-categories:
- Geo-Search
lookingSimilarModel:
type: string
description: 'Looking similar model.
This model recommends items that look similar to the item with the ID `objectID` based on image attributes in your index.
'
enum:
- looking-similar
relatedProducts:
type: object
properties:
model:
$ref: '#/components/schemas/relatedModel'
objectID:
$ref: '#/components/schemas/objectID'
fallbackParameters:
$ref: '#/components/schemas/fallbackParams'
required:
- model
- objectID
widgets:
description: Widgets returned from any rules that are applied to the current search.
type: object
additionalProperties: false
properties:
banners:
$ref: '#/components/schemas/banners'
maxValuesPerFacet:
type: integer
description: Maximum number of facet values to return for each facet.
default: 100
maximum: 1000
x-categories:
- Faceting
rankingInfo:
type: object
description: Object with detailed information about the record's ranking.
additionalProperties: false
properties:
filters:
type: integer
minimum: 0
description: Whether a filter matched the query.
firstMatchedWord:
type: integer
minimum: 0
description: Position of the first matched word in the best matching attribute of the record.
geoDistance:
type: integer
minimum: 0
description: Distance between the geo location in the search query and the best matching geo location in the record, divided by the geo precision (in meters).
geoPrecision:
type: integer
minimum: 1
description: Precision used when computing the geo distance, in meters.
matchedGeoLocation:
$ref: '#/components/schemas/matchedGeoLocation'
personalization:
$ref: '#/components/schemas/personalization'
nbExactWords:
type: integer
minimum: 0
description: Number of exactly matched words.
nbTypos:
type: integer
minimum: 0
description: Number of typos encountered when matching the record.
promoted:
type: boolean
description: Whether the record was promoted by a rule.
proximityDistance:
type: integer
minimum: 0
description: Number of words between multiple matches in the query plus 1. For single word queries, `proximityDistance` is 0.
userScore:
type: integer
description: Overall ranking of the record, expressed as a single integer. This attribute is internal.
words:
type: integer
minimum: 1
description: Number of matched words.
promotedByReRanking:
type: boolean
description: Whether the record is re-ranked.
required:
- nbTypos
- firstMatchedWord
- geoDistance
- nbExactWords
- userScore
reRankingApplyFilter:
description: 'Restrict [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking) to records that match these filters.
'
oneOf:
- type: array
items:
$ref: '#/components/schemas/reRankingApplyFilter'
- type: string
x-categories:
- Filtering
searchParamsQuery:
type: object
additionalProperties: false
properties:
query:
$ref: '#/components/schemas/query'
analytics:
type: boolean
description: Whether this search will be included in Analytics.
default: true
x-categories:
- Analytics
IndexSettings_advancedSyntaxFeatures:
type: array
items:
$ref: '#/components/schemas/advancedSyntaxFeatures'
description: "Advanced search syntax features you want to support\n- `exactPhrase`.\n Phrases in quotes must match exactly.\n For example, `sparkly blue \"iPhone case\"` only returns records with the exact string \"iPhone case\"\n- `excludeWords`.\n Query words prefixed with a `-` must not occur in a record.\n For example, `search -engine` matches records that contain \"search\" but not \"engine\"\nThis setting only has an effect if `advancedSyntax` is true.\n"
default:
- exactPhrase
- excludeWords
x-categories:
- Query strategy
highlightedValue:
type: string
description: Highlighted attribute value, including HTML tags.
example: <em>George</em> <em>Clo</em>oney
trendingFacetsQuery:
title: Trending facet values
allOf:
- $ref: '#/components/schemas/trendingFacets'
optionalFilters:
description: 'Filters to promote or demote records in the search results.
Optional filters work like facet filters, but they don''t exclude records from the search results.
Records that match the optional filter rank before records that don''t match.
If you''re using a negative filter `facet:-value`, matching records rank after records that don''t match.
- Optional filters are applied _after_ sort-by attributes.
- Optional filters are applied _before_ custom ranking attributes (in the default [ranking](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria)).
- Optional filters don''t work with numeric attributes.
- On virtual replicas, optional filters are applied _after_ the replica''s [relevant sort](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/relevant-sort).
'
example:
- category:Book
- author:John Doe
oneOf:
- type: array
items:
$ref: '#/components/schemas/optionalFilters'
- type: string
x-categories:
- Filtering
AutoFacetFilter:
type: object
description: Facet attribute. Only recommendations with the same value (or only recommendations with a different value) as the original viewed item are included.
properties:
facet:
type: string
description: Facet attribute.
negative:
type: boolean
description: 'Whether the filter is negative.
If true, recommendations must not have the same value for the `facet` attribute.
If false, recommendations must have the same value for the `facet` attribute.
'
aroundRadius:
description: 'Maximum radius for a search around a central location.
This parameter works in combination with the `aroundLatLng` and `aroundLatLngViaIP` parameters.
By default, the search radius is determined automatically from the density of hits around the central location.
The search radius is small if there are many hits close to the central coordinates.
'
oneOf:
- type: integer
minimum: 1
description: Maximum search radius around a central location in meters.
- $ref: '#/components/schemas/aroundRadiusAll'
x-categories:
- Geo-Search
parameters_page:
type: integer
minimum: 0
description: 'Requested page of the API response.
Algolia uses `page` and `hitsPerPage` to control how search results are displayed ([paginated](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js)).
- `hitsPerPage`: sets the number of search results (_hits_) displayed per page.
- `page`: specifies the page number of the search results you want to retrieve. Page numbering starts at 0, so the first page is `page=0`, the second is `page=1`, and so on.
For example, to display 10 results per page starting from the third page, set `hitsPerPage` to 10 and `page` to 2.
'
ignorePlurals:
description: 'Treat singular, plurals, and other forms of declensions as equivalent.
Only use this feature for the languages used in your index.
'
example:
- ca
- es
oneOf:
- type: array
description: 'ISO code for languages for which this feature should be active.
This overrides languages you set with `queryLanguages`.
'
items:
$ref: '#/components/schemas/supportedLanguage'
- $ref: '#/components/schemas/booleanString'
- type: boolean
description: 'If true, `ignorePlurals` is active for all languages included in `queryLanguages`, or for all supported languages, if `queryLanguges` is empty.
If false, singulars, plurals, and other declensions won''t be considered equivalent.
'
default: false
x-categories:
- Languages
baseRecommendIndexSettings:
type: object
additionalProperties: false
properties:
attributesToRetrieve:
$ref: '#/components/schemas/attributesToRetrieve'
relevancyStrictness:
$ref: '#/components/schemas/relevancyStrictness'
attributesToHighlight:
$ref: '#/components/schemas/attributesToHighlight'
attributesToSnippet:
$ref: '#/components/schemas/attributesToSnippet'
highlightPreTag:
$ref: '#/components/schemas/highlightPreTag'
highlightPostTag:
$ref: '#/components/schemas/highlightPostTag'
snippetEllipsisText:
$ref: '#/components/schemas/snippetEllipsisText'
restrictHighlightAndSnippetArrays:
$ref: '#/components/schemas/restrictHighlightAndSnippetArrays'
minWordSizefor1Typo:
$ref: '#/components/schemas/minWordSizefor1Typo'
minWordSizefor2Typos:
$ref: '#/components/schemas/minWordSizefor2Typos'
typoTolerance:
$ref: '#/components/schemas/typoTolerance'
allowTyposOnNumericTokens:
$ref: '#/components/schemas/allowTyposOnNumericTokens'
disableTypoToleranceOnAttributes:
$ref: '#/components/schemas/disableTypoToleranceOnAttributes'
ignorePlurals:
$ref: '#/components/schemas/ignorePlurals'
removeStopWords:
$ref: '#/components/schemas/removeStopWords'
queryLanguages:
$ref: '#/components/schemas/queryLanguages'
decompoundQuery:
$ref: '#/components/schemas/decompoundQuery'
enablePersonalization:
$ref: '#/components/schemas/enablePersonalization'
queryType:
$ref: '#/components/schemas/queryType'
removeWordsIfNoResults:
$ref: '#/components/schemas/removeWordsIfNoResults'
advancedSyntax:
$ref: '#/components/schemas/advancedSyntax'
optionalWords:
$ref: '#/components/schemas/optionalWords'
disableExactOnAttributes:
$ref: '#/components/schemas/disableExactOnAttributes'
exactOnSingleWordQuery:
$ref: '#/components/schemas/exactOnSingleWordQuery'
alternativesAsExact:
$ref: '#/components/schemas/IndexSettings_alternativesAsExact'
advancedSyntaxFeatures:
$ref: '#/components/schemas/IndexSettings_advancedSyntaxFeatures'
distinct:
$ref: '#/components/schemas/distinct'
replaceSynonymsInHighlight:
$ref: '#/components/schemas/replaceSynonymsInHighlight'
minProximity:
$ref: '#/components/schemas/minProximity'
responseFields:
$ref: '#/components/schemas/responseFields'
maxValuesPerFacet:
$ref: '#/components/schemas/maxValuesPerFacet'
sortFacetValuesBy:
$ref: '#/components/schemas/sortFacetValuesBy'
attributeCriteriaComputedByMinProximity:
$ref: '#/components/schemas/attributeCriteriaComputedByMinProximity'
renderingContent:
$ref: '#/components/schemas/renderingContent'
enableReRanking:
$ref: '#/components/schemas/enableReRanking'
reRankingApplyFilter:
oneOf:
- $ref: '#/components/schemas/reRankingApplyFilter'
- type: 'null'
replaceSynonymsInHighlight:
type: boolean
description: 'Whether to replace a highlighted word with the matched synonym
By default, the original words are highlighted even if a synonym matches.
For example, with `home` as a synonym for `house` and a search for `home`,
records matching either "home" or "house" are included in the search results,
and either "home" or "house" are highlighted
With `replaceSynonymsInHighlight` set to `true`, a search for `home` still matches the same records,
but all occurrences of "house" are replaced by "home" in the highlighted response.
'
default: false
x-categories:
- Highlighting and Snippeting
restrictHighlightAndSnippetArrays:
type: boolean
description: 'Whether to restrict highlighting and snippeting to items that at least partially matched the search query.
By default, all items are highlighted and snippeted.
'
default: false
x-categories:
- Highlighting and Snippeting
trendingItemsQuery:
# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/algolia/refs/heads/main/openapi/algolia-recommend-api-openapi.yml