All integrations

Algolia

DEVELOPER · DEVELOPER

Indexes, records, synonyms, and search rules under that account’s own key.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

algolia_delete_1_clusters_mapping_by_useridWRITE

Deletes a user ID and its associated data from the clusters. via DELETE /1/clusters/mapping/{userID}

admin
algolia_delete_1_configs_by_indexnameWRITE

Deletes a Query Suggestions configuration. Deleting only removes the configuration and stops updates to the Query Suggestions index. To delete the Query Suggestions index itself, use the Search API and the `Delete an index` operation. via DELETE /1/configs/{indexName}

editSettings
algolia_delete_1_indexes_by_indexnameWRITE

Deletes an index and all its settings. - Deleting an index doesn't delete its analytics data. - If you try to delete a non-existing index, the operation is ignored without warning. - If the index you want to delete has replica indices, the replicas become independent indices. - If the index you want to delete is a replica index, you must first unlink it from its primary index before you can delete it. For more information, see [Delete replica indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/how-to/deleting-replicas). via DELETE /1/indexes/{indexName}

deleteIndex
algolia_delete_1_indexes_by_indexname_by_model_recommend_rules_by_objectidWRITE

Deletes a Recommend rule from a recommendation scenario. via DELETE /1/indexes/{indexName}/{model}/recommend/rules/{objectID}

editSettings
algolia_delete_1_indexes_by_indexname_by_objectidWRITE

Deletes a record by its object ID. To delete more than one record, use the [`batch` operation](https://www.algolia.com/doc/rest-api/search/batch). To delete records matching a query, use the [`deleteBy` operation](https://www.algolia.com/doc/rest-api/search/delete-by). via DELETE /1/indexes/{indexName}/{objectID}

deleteObject
algolia_delete_1_indexes_by_indexname_rules_by_objectidWRITE

Deletes a rule by its ID. To find the object ID for rules, use the [`search` operation](https://www.algolia.com/doc/rest-api/search/search-rules). via DELETE /1/indexes/{indexName}/rules/{objectID}

editSettings
algolia_delete_1_indexes_by_indexname_synonyms_by_objectidWRITE

Deletes a synonym by its ID. To find the object IDs of your synonyms, use the [`search` operation](https://www.algolia.com/doc/rest-api/search/search-synonyms). via DELETE /1/indexes/{indexName}/synonyms/{objectID}

editSettings
algolia_delete_1_keys_by_keyWRITE

Deletes the API key. via DELETE /1/keys/{key}

admin
algolia_delete_1_security_sources_by_sourceWRITE

Deletes a source from the list of allowed sources. via DELETE /1/security/sources/{source}

admin
algolia_delete_1_usertokens_by_usertokenWRITE

Deletes all events related to the specified user token from events metrics and analytics. The deletion is asynchronous, and processed within 48 hours. To delete a personalization user profile, see `Delete a user profile` in the Personalization API. via DELETE /1/usertokens/{userToken}

deleteObject
algolia_get_1_clustersREAD

Lists the available clusters in a multi-cluster setup. via GET /1/clusters

admin
algolia_get_1_clusters_mappingREAD

Lists the userIDs assigned to a multi-cluster application. Since it can take a few seconds to get the data from the different clusters, the response isn't real-time. via GET /1/clusters/mapping

admin
algolia_get_1_clusters_mapping_by_useridREAD

Returns the user ID data stored in the mapping. Since it can take a few seconds to get the data from the different clusters, the response isn't real-time. via GET /1/clusters/mapping/{userID}

admin
algolia_get_1_clusters_mapping_pendingREAD

To determine when the time-consuming process of creating a large batch of users or migrating users from one cluster to another is complete, this operation retrieves the status of the process. via GET /1/clusters/mapping/pending

admin
algolia_get_1_clusters_mapping_topREAD

Get the IDs of the 10 users with the highest number of records per cluster. Since it can take a few seconds to get the data from the different clusters, the response isn't real-time. via GET /1/clusters/mapping/top

admin
algolia_get_1_configsREAD

Retrieves all Query Suggestions configurations of your Algolia application. via GET /1/configs

settings
algolia_get_1_configs_by_indexnameREAD

Retrieves a single Query Suggestions configuration by its index name. via GET /1/configs/{indexName}

settings
algolia_get_1_configs_by_indexname_statusREAD

Reports the status of a Query Suggestions index. via GET /1/configs/{indexName}/status

settings
algolia_get_1_dictionaries_languagesREAD

Lists supported languages with their supported dictionary types and number of custom entries. via GET /1/dictionaries/*/languages

settings
algolia_get_1_dictionaries_settingsREAD

Retrieves the languages for which standard dictionary entries are turned off. via GET /1/dictionaries/*/settings

settings
algolia_get_1_indexesREAD

Lists all indices in the current Algolia application. The request follows any index restrictions of the API key you use to make the request. via GET /1/indexes

listIndexes
algolia_get_1_indexes_by_indexname_by_model_recommend_rules_by_objectidREAD

Retrieves a Recommend rule that you previously created in the Algolia dashboard. via GET /1/indexes/{indexName}/{model}/recommend/rules/{objectID}

settings
algolia_get_1_indexes_by_indexname_by_model_task_by_taskidREAD

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. via GET /1/indexes/{indexName}/{model}/task/{taskID}

editSettings
algolia_get_1_indexes_by_indexname_by_objectidREAD

Retrieves one record by its object ID. To retrieve more than one record, use the [`objects` operation](https://www.algolia.com/doc/rest-api/search/get-objects). via GET /1/indexes/{indexName}/{objectID}

search
algolia_get_1_indexes_by_indexname_rules_by_objectidREAD

Retrieves a rule by its ID. To find the object ID of rules, use the [`search` operation](https://www.algolia.com/doc/rest-api/search/search-rules). via GET /1/indexes/{indexName}/rules/{objectID}

settings
algolia_get_1_indexes_by_indexname_settingsREAD

Retrieves an object with non-null index settings. via GET /1/indexes/{indexName}/settings

settings
algolia_get_1_indexes_by_indexname_synonyms_by_objectidREAD

Retrieves a synonym by its ID. To find the object IDs for your synonyms, use the [`search` operation](https://www.algolia.com/doc/rest-api/search/search-synonyms). via GET /1/indexes/{indexName}/synonyms/{objectID}

settings
algolia_get_1_indexes_by_indexname_task_by_taskidREAD

Checks the status of a given task. Indexing tasks are asynchronous. When you add, update, or delete records or indices, a task is created on a queue and completed depending on the load on the server. The indexing tasks' responses include a task ID that you can use to check the status. via GET /1/indexes/{indexName}/task/{taskID}

addObject
algolia_get_1_keysREAD

Lists all API keys associated with your Algolia application, including their permissions and restrictions. via GET /1/keys

admin
algolia_get_1_keys_by_keyREAD

Gets the permissions and restrictions of an API key. When authenticating with the admin API key, you can request information for any of your application's keys. When authenticating with other API keys, you can only retrieve information for that key, with the description replaced by `<redacted>`. via GET /1/keys/{key}

search
algolia_get_1_logsREAD

The request must be authenticated by an API key with the [`logs` ACL](https://www.algolia.com/doc/guides/security/api-keys/#access-control-list-acl). - Logs are held for the last seven days. - Up to 1,000 API requests per server are logged. - This request counts towards your [operations quota](https://support.algolia.com/hc/articles/17245378392977-How-does-Algolia-count-records-and-operations) but doesn't appear in the logs itself. via GET /1/logs

logs
algolia_get_1_logs_by_indexnameREAD

Retrieves the logs for a single Query Suggestions index. via GET /1/logs/{indexName}

settings
algolia_get_1_security_sourcesREAD

Retrieves all allowed IP addresses with access to your application. via GET /1/security/sources

admin
algolia_get_1_task_by_taskidREAD

Checks the status of a given application task. via GET /1/task/{taskID}

editSettings
algolia_get_2_clicks_averageclickpositionREAD

Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn't receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event. via GET /2/clicks/averageClickPosition

analytics
algolia_get_2_clicks_clickthroughrateREAD

Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There's a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn't receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received. via GET /2/clicks/clickThroughRate

analytics
algolia_get_2_clicks_positionsREAD

Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn't receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. via GET /2/clicks/positions

analytics
algolia_get_2_conversions_addtocartrateREAD

Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response's `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There's a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn't receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received. via GET /2/conversions/addToCartRate

analytics
algolia_get_2_conversions_conversionrateREAD

Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There's a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn't receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received. via GET /2/conversions/conversionRate

analytics
algolia_get_2_conversions_purchaserateREAD

Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days, including the current day. The rate is purchase conversion events divided by tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response's `count`, which includes searches where `clickAnalytics` is `false`. **There's a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries. Algolia didn't receive any events, so the purchase rate is null. - **0** means there were queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received. via GET /2/conversions/purchaseRate

analytics
algolia_get_2_conversions_revenueREAD

Retrieves revenue-related metrics, such as the total revenue or the average order value. To retrieve revenue-related metrics, send purchase events. By default, the analyzed period includes the last eight days including the current day. Revenue is based on purchase conversion events (a conversion event with an `eventSubtype` attribute of `purchase`). The revenue is the `price` attribute multiplied by the `quantity` attribute for each object in the event's `objectData` array. via GET /2/conversions/revenue

analytics
algolia_get_2_countriesREAD

Retrieves the countries with the most searches in your index. via GET /2/countries

analytics
algolia_get_2_filtersREAD

Retrieves the 1,000 most frequently used filter attributes. These are attributes of your records that you included in the `attributesForFaceting` setting. via GET /2/filters

analytics
algolia_get_2_filters_by_attributeREAD

Retrieves the 1,000 most frequent filter (facet) values for a filter attribute. These are attributes of your records that you included in the `attributesForFaceting` setting. via GET /2/filters/{attribute}

analytics
algolia_get_2_filters_noresultsREAD

Retrieves the 1,000 most frequently used filters for a search that didn't return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation. via GET /2/filters/noResults

analytics
algolia_get_2_hitsREAD

Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to `true`, the response also includes: - Tracked searches count. Tracked searches are Search API requests with `clickAnalytics` set to `true`. This differs from the response's `count`, which includes searches where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There's a difference between 0% rates and null rates:** - **Null** means there were no queries. Algolia didn't receive any events, so rates are null. - **0% rates** mean there were queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received. via GET /2/hits

analytics
algolia_get_2_searchesREAD

Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes: - Tracked searches count Tracked searches are Search API requests with `clickAnalytics` set to `true`. This differs from the response's `count`, which includes searches where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There's a difference between 0% rates and null rates:** - **Null** means there were no queries. Algolia didn't receive any events, so rates are null. - **0% rates** mean there were queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received. via GET /2/searches

analytics
algolia_get_2_searches_countREAD

Retrieves the number of searches within a time range, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. via GET /2/searches/count

analytics
algolia_get_2_searches_noclickrateREAD

Retrieves the fraction of searches that didn't lead to any click within a time range, including a daily breakdown. It also returns the number of tracked searches and tracked searches without clicks. By default, the analyzed period includes the last eight days including the current day. via GET /2/searches/noClickRate

analytics
algolia_get_2_searches_noclicksREAD

Retrieves the most popular searches that didn't lead to any clicks, from the 1,000 most frequent searches. For each search, it also returns the number of displayed search results that remained unclicked. via GET /2/searches/noClicks

analytics
algolia_get_2_searches_noresultrateREAD

Retrieves the fraction of searches that didn't return any results within a time range, including a daily breakdown. It also returns the count of searches and searches without results used to compute the rates. By default, the analyzed period includes the last eight days including the current day. via GET /2/searches/noResultRate

analytics
algolia_get_2_searches_noresultsREAD

Retrieves the 1,000 most frequent searches that produced zero results. via GET /2/searches/noResults

analytics
algolia_get_2_statusREAD

Retrieves the time when the Analytics data for the specified index was last updated. If the index has been recently created or no search has been performed yet the updated time is `null`. The Analytics data is updated every 5&nbsp;minutes. via GET /2/status

analytics
algolia_get_2_users_countREAD

Retrieves the number of unique users within a time range, including a daily breakdown. Since it returns the number of unique users, the sum of the daily values might be different from the total number. By default: - Algolia distinguishes search users by their IP address, _unless_ you include a pseudonymous user identifier in your search requests with the `userToken` API parameter or `x-algolia-usertoken` request header. - The analyzed period includes the last eight days including the current day. via GET /2/users/count

analytics
algolia_get_3_patterns_fieldsREAD

Returns the static catalog of analytics fields, grouped by domain and usage (metrics, filters, groups, distributions). No authentication is required. Use it to discover valid `(domain, kind)` pairs before building the other `/3/patterns/*` queries; two fields are combinable in one query only when their `roots` intersect. Each entry's `requires` lists the ACLs needed when that field is actually used in a query. via GET /3/patterns/fields

api
algolia_post_1_clusters_mappingWRITE

Assigns or moves a user ID to a cluster. The time it takes to move a user is proportional to the amount of data linked to the user ID. via POST /1/clusters/mapping

admin
algolia_post_1_clusters_mapping_batchWRITE

Assigns multiple user IDs to a cluster. **You can't move users with this operation**. via POST /1/clusters/mapping/batch

admin
algolia_post_1_clusters_mapping_searchWRITE

Since it can take a few seconds to get the data from the different clusters, the response isn't real-time. To ensure rapid updates, the user IDs index isn't built at the same time as the mapping. Instead, it's built every 12 hours, at the same time as the update of user ID usage. For example, if you add or move a user ID, the search will show an old value until the next time the mapping is rebuilt (every 12 hours). via POST /1/clusters/mapping/search

admin
algolia_post_1_configsWRITE

Creates a new Query Suggestions configuration. You can have up to 100 configurations per Algolia application. via POST /1/configs

editSettings
algolia_post_1_dictionaries_by_dictionaryname_batchWRITE

Adds or deletes multiple entries from your plurals, segmentation, or stop word dictionaries. via POST /1/dictionaries/{dictionaryName}/batch

editSettings
algolia_post_1_dictionaries_by_dictionaryname_searchWRITE

Searches for standard and custom dictionary entries. via POST /1/dictionaries/{dictionaryName}/search

settings
algolia_post_1_eventsWRITE

Sends a list of events to the Insights API. You can include up to 1,000 events in a single request, but the request body must be smaller than 2&nbsp;MB. via POST /1/events

search
algolia_post_1_indexes_batchWRITE

Adds, updates, or deletes records in multiple indices with a single API request. - Actions are applied in the order they are specified. - Actions are equivalent to the individual API requests of the same name. This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/*/batch

addObject
algolia_post_1_indexes_by_indexnameWRITE

Adds a record to an index or replaces it. - If the record doesn't have an object ID, a new record with an auto-generated object ID is added to your index. - If a record with the specified object ID exists, the existing record is replaced. - If a record with the specified object ID doesn't exist, a new record is added to your index. - If you add a record to an index that doesn't exist yet, a new index is created. To update _some_ attributes of a record, use the [`partial` operation](https://www.algolia.com/doc/rest-api/search/partial-update-object). To add, update, or replace multiple records, use the [`batch` operation](https://www.algolia.com/doc/rest-api/search/batch). This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}

addObject
algolia_post_1_indexes_by_indexname_batchWRITE

Adds, updates, or deletes records in one index with a single API request. Batching index updates reduces latency and increases data integrity. - Actions are applied in the order they're specified. - Actions are equivalent to the individual API requests of the same name. This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}/batch

addObject
algolia_post_1_indexes_by_indexname_browseWRITE

Retrieves records from an index, up to 1,000 per request. Searching returns _hits_ (records augmented with highlighting and ranking details). Browsing returns matching records only. Use browse to export your indices. - The Analytics API doesn't collect data when using `browse`. - Records are ranked by attributes and custom ranking. - There's no ranking for typo tolerance, number of matched words, proximity, or geo distance. Browse requests automatically apply these settings: - `advancedSyntax`: `false` - `attributesToHighlight`: `[]` - `attributesToSnippet`: `[]` - `distinct`: `false` - `enablePersonalization`: `false` - `enableRules`: `false` - `facets`: `[]` - `getRankingInfo`: `false` - `ignorePlurals`: `false` - `optionalFilters`: `[]` - `typoTolerance`: `true` or `false` (`min` and `strict` evaluate to `true`) If you send these parameters with your browse requests, they're ignored. via POST /1/indexes/{indexName}/browse

browse
algolia_post_1_indexes_by_indexname_by_model_recommend_rules_batchWRITE

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). via POST /1/indexes/{indexName}/{model}/recommend/rules/batch

editSettings
algolia_post_1_indexes_by_indexname_by_model_recommend_rules_searchWRITE

Searches for Recommend rules. Use an empty query to list all rules for this recommendation scenario. via POST /1/indexes/{indexName}/{model}/recommend/rules/search

settings
algolia_post_1_indexes_by_indexname_by_objectid_partialWRITE

Adds new attributes to a record, or updates existing ones. - If a record with the specified object ID doesn't exist, a new record is added to the index **if** `createIfNotExists` is true. - If the index doesn't exist yet, this method creates a new index. - Use first-level attributes only. Nested attributes aren't supported. If you specify a nested attribute, this operation replaces its first-level ancestor. To update attributes without replacing the full record, use these built-in operations. These operations are useful when the initial data isn't available. - `Increment`: increment a numeric attribute. - `Decrement`: decrement a numeric attribute. - `Add`: append a number or string element to an array attribute. - `Remove`: remove all matching number or string elements from an array attribute made of numbers or strings. - `AddUnique`: add a number or string element to an array attribute made of numbers or strings only if it's not already present. - `IncrementFrom`: increment a numeric integer attribute only if the provided value matches the current value. Otherwise, the update is ignored. Example: If you pass an `IncrementFrom` value of 2 for the `version` attribute but the current value is 1, the API ignores the update. If the object doesn't exist, the API only creates it if you pass an `IncrementFrom` value of 0. - `IncrementSet`: increment a numeric integer attribute only if the provided value is greater than the current value. Otherwise, the update is ignored. Example: If you pass an `IncrementSet` value of 2 for the `version` attribute and the current value is 1, the API updates the object. If the object doesn't exist yet, the API only creates it if you pass an `IncrementSet` value greater than 0. Specify an operation by providing an object with the attribute to update as the key and its value as an object with these properties: - `_operation`: the operation to apply on the attribute. - `value`: the right-hand side argument to the operation, for example, increment or decrement step, or a value to add or remove. When updating multiple attributes or using multiple operations targeting the same record, use a single partial update for faster processing. This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}/{objectID}/partial

addObject
algolia_post_1_indexes_by_indexname_clearWRITE

Deletes only the records from an index while keeping settings, synonyms, and rules. This operation is resource-intensive and subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}/clear

deleteIndex
algolia_post_1_indexes_by_indexname_deletebyqueryWRITE

This operation doesn't accept empty filters. This operation is resource-intensive. Use it only if you can't get the object IDs of the records you want to delete. It's more efficient to get a list of object IDs with the [`browse` operation](https://www.algolia.com/doc/rest-api/search/browse), and then delete the records using the [`batch` operation](https://www.algolia.com/doc/rest-api/search/batch). This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}/deleteByQuery

deleteIndex
algolia_post_1_indexes_by_indexname_facets_by_facetname_queryWRITE

Searches for values of a specified facet attribute. - By default, facet values are sorted by decreasing count. You can adjust this with the `sortFacetValueBy` parameter. - Searching for facet values doesn't work if you have **more than 65 searchable facets and searchable attributes combined**. via POST /1/indexes/{indexName}/facets/{facetName}/query

search
algolia_post_1_indexes_by_indexname_operationWRITE

Copies or moves (renames) an index within the same Algolia application. Notes: - Existing destination indices are overwritten, except for their analytics data. - If the destination index doesn't exist yet, it's created. - This operation is resource-intensive. **Copy** - If the source index doesn't exist, copying creates a new index with 0 records and default settings. - API keys from the source index are merged with the existing keys in the destination index. - You can't copy the `enableReRanking`, `mode`, and `replicas` settings. - You can't copy to a destination index that already has replicas. - Be aware of the [size limits](https://www.algolia.com/doc/guides/scaling/algolia-service-limits/#application-record-and-index-limits). - For more information, see [Copy indices](https://www.algolia.com/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/how-to/copy-indices). **Move** - If the source index doesn't exist, moving is ignored without returning an error. - When moving an index, the analytics data keeps its original name, and a new set of analytics data is started for the new name. To access the original analytics in the dashboard, create an index with the original name. - If the destination index has replicas, moving will overwrite the existing index and copy the data to the replica indices. - For more information, see [Move indices](https://www.algolia.com/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/how-to/move-indices). This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}/operation

addObject
algolia_post_1_indexes_by_indexname_queryWRITE

Searches a single index and returns matching search results as hits. This method lets you retrieve up to 1,000 hits. If you need more, use the [`browse` operation](https://www.algolia.com/doc/rest-api/search/browse) or increase the `paginatedLimitedTo` index setting. via POST /1/indexes/{indexName}/query

search
algolia_post_1_indexes_by_indexname_rules_batchWRITE

Create or update multiple rules. If a rule with the specified object ID doesn't exist, Algolia creates a new one. Otherwise, existing rules are replaced. This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}/rules/batch

editSettings
algolia_post_1_indexes_by_indexname_rules_clearWRITE

Deletes all rules from the index. via POST /1/indexes/{indexName}/rules/clear

editSettings
algolia_post_1_indexes_by_indexname_rules_searchWRITE

Searches for rules in your index. via POST /1/indexes/{indexName}/rules/search

settings
algolia_post_1_indexes_by_indexname_synonyms_batchWRITE

If a synonym with the `objectID` doesn't exist, Algolia adds a new one. Otherwise, existing synonyms are replaced. This operation is subject to [indexing rate limits](https://support.algolia.com/hc/articles/4406975251089-Is-there-a-rate-limit-for-indexing-on-Algolia). via POST /1/indexes/{indexName}/synonyms/batch

editSettings
algolia_post_1_indexes_by_indexname_synonyms_clearWRITE

Deletes all synonyms from the index. via POST /1/indexes/{indexName}/synonyms/clear

editSettings
algolia_post_1_indexes_by_indexname_synonyms_searchWRITE

Searches for synonyms in your index. via POST /1/indexes/{indexName}/synonyms/search

settings
algolia_post_1_indexes_objectsWRITE

Retrieves one or more records, potentially from different indices. Records are returned in the same order as the requests. via POST /1/indexes/*/objects

search
algolia_post_1_indexes_queriesWRITE

Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format. via POST /1/indexes/*/queries

search
algolia_post_1_indexes_recommendationsWRITE

Retrieves recommendations from selected AI models. via POST /1/indexes/*/recommendations

search
algolia_post_1_keysWRITE

Creates a new API key with specific permissions and restrictions. via POST /1/keys

admin
algolia_post_1_keys_by_key_restoreWRITE

Restores a deleted API key. Restoring resets the `validity` attribute to `0`. Algolia stores up to 1,000 API keys per application. If you create more, the oldest API keys are deleted and can't be restored. via POST /1/keys/{key}/restore

admin
algolia_post_1_security_sources_appendWRITE

Adds a source to the list of allowed sources. via POST /1/security/sources/append

admin
algolia_post_3_patterns_distributionWRITE

Buckets one or more numeric fields into histograms and returns an object keyed by `histogram<Field>`, each mapping a bin label to a count. `distributions` and `parameters` are required; `filters` is optional. Discover valid field kinds per domain with `/3/patterns/fields`. via POST /3/patterns/distribution

analytics
algolia_post_3_patterns_scalarWRITE

Aggregates the requested `metrics` over the whole period and returns a single object keyed by metric kind. `metrics` and `parameters` are required; `filters` is optional. Discover valid field kinds per domain with `/3/patterns/fields`. via POST /3/patterns/scalar

analytics
algolia_post_3_patterns_tableWRITE

Returns `rows`, each a flat object of the requested fields. `metrics` and `parameters` are required; `groupBy`, `filters`, and `orderBy` are optional, though `orderBy` is required when `groupBy` is set. Discover valid field kinds per domain with `/3/patterns/fields`. via POST /3/patterns/table

analytics
algolia_post_3_patterns_timeseriesWRITE

Returns one time series per `groupBy` combination, each with period `totals` and a per-day metric breakdown. `metrics` and `parameters` are required; `groupBy` and `filters` are optional. Discover valid field kinds per domain with `/3/patterns/fields`. via POST /3/patterns/timeseries

analytics
algolia_put_1_configs_by_indexnameWRITE

Updates a QuerySuggestions configuration. via PUT /1/configs/{indexName}

editSettings
algolia_put_1_dictionaries_settingsWRITE

Turns standard stop word dictionary entries on or off for a given language. via PUT /1/dictionaries/*/settings

editSettings
algolia_put_1_indexes_by_indexname_by_objectidWRITE

If a record with the specified object ID exists, the existing record is replaced. Otherwise, a new record is added to the index. If you want to use auto-generated object IDs, use the [`saveObject` operation](https://www.algolia.com/doc/rest-api/search/save-object). To update _some_ attributes of an existing record, use the [`partial` operation](https://www.algolia.com/doc/rest-api/search/partial-update-object) instead. To add, update, or replace multiple records, use the [`batch` operation](https://www.algolia.com/doc/rest-api/search/batch). via PUT /1/indexes/{indexName}/{objectID}

addObject
algolia_put_1_indexes_by_indexname_rules_by_objectidWRITE

If a rule with the specified object ID doesn't exist, it's created. Otherwise, the existing rule is replaced. To create or update more than one rule, use the [`batch` operation](https://www.algolia.com/doc/rest-api/search/save-rules). via PUT /1/indexes/{indexName}/rules/{objectID}

editSettings
algolia_put_1_indexes_by_indexname_settingsWRITE

Update the specified index settings. Index settings that you don't specify are left unchanged. Specify `null` to reset a setting to its default value. For best performance, update the index settings before you add new records to your index. via PUT /1/indexes/{indexName}/settings

editSettings
algolia_put_1_indexes_by_indexname_synonyms_by_objectidWRITE

If a synonym with the specified object ID doesn't exist, Algolia adds a new one. Otherwise, the existing synonym is replaced. To add multiple synonyms in a single API request, use the [`batch` operation](https://www.algolia.com/doc/rest-api/search/save-synonyms). via PUT /1/indexes/{indexName}/synonyms/{objectID}

editSettings
algolia_put_1_keys_by_keyWRITE

Replaces the permissions of an existing API key. Any unspecified attribute resets that attribute to its default value. via PUT /1/keys/{key}

admin
algolia_put_1_security_sourcesWRITE

Replaces the list of allowed sources. via PUT /1/security/sources

admin

Put Algolia behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.