DEVELOPER · DEVELOPER
Indexes, records, synonyms, and search rules under that account’s own key.
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.
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.
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.
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_useridWRITEDeletes a user ID and its associated data from the clusters. via DELETE /1/clusters/mapping/{userID}
algolia_delete_1_configs_by_indexnameWRITEDeletes 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}
algolia_delete_1_indexes_by_indexnameWRITEDeletes 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}
algolia_delete_1_indexes_by_indexname_by_model_recommend_rules_by_objectidWRITEDeletes a Recommend rule from a recommendation scenario. via DELETE /1/indexes/{indexName}/{model}/recommend/rules/{objectID}
algolia_delete_1_indexes_by_indexname_by_objectidWRITEDeletes 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}
algolia_delete_1_indexes_by_indexname_rules_by_objectidWRITEDeletes 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}
algolia_delete_1_indexes_by_indexname_synonyms_by_objectidWRITEDeletes 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}
algolia_delete_1_keys_by_keyWRITEDeletes the API key. via DELETE /1/keys/{key}
algolia_delete_1_security_sources_by_sourceWRITEDeletes a source from the list of allowed sources. via DELETE /1/security/sources/{source}
algolia_delete_1_usertokens_by_usertokenWRITEDeletes 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}
algolia_get_1_clustersREADLists the available clusters in a multi-cluster setup. via GET /1/clusters
algolia_get_1_clusters_mappingREADLists 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
algolia_get_1_clusters_mapping_by_useridREADReturns 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}
algolia_get_1_clusters_mapping_pendingREADTo 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
algolia_get_1_clusters_mapping_topREADGet 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
algolia_get_1_configsREADRetrieves all Query Suggestions configurations of your Algolia application. via GET /1/configs
algolia_get_1_configs_by_indexnameREADRetrieves a single Query Suggestions configuration by its index name. via GET /1/configs/{indexName}
algolia_get_1_configs_by_indexname_statusREADReports the status of a Query Suggestions index. via GET /1/configs/{indexName}/status
algolia_get_1_dictionaries_languagesREADLists supported languages with their supported dictionary types and number of custom entries. via GET /1/dictionaries/*/languages
algolia_get_1_dictionaries_settingsREADRetrieves the languages for which standard dictionary entries are turned off. via GET /1/dictionaries/*/settings
algolia_get_1_indexesREADLists 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
algolia_get_1_indexes_by_indexname_by_model_recommend_rules_by_objectidREADRetrieves a Recommend rule that you previously created in the Algolia dashboard. via GET /1/indexes/{indexName}/{model}/recommend/rules/{objectID}
algolia_get_1_indexes_by_indexname_by_model_task_by_taskidREADChecks 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}
algolia_get_1_indexes_by_indexname_by_objectidREADRetrieves 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}
algolia_get_1_indexes_by_indexname_rules_by_objectidREADRetrieves 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}
algolia_get_1_indexes_by_indexname_settingsREADRetrieves an object with non-null index settings. via GET /1/indexes/{indexName}/settings
algolia_get_1_indexes_by_indexname_synonyms_by_objectidREADRetrieves 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}
algolia_get_1_indexes_by_indexname_task_by_taskidREADChecks 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}
algolia_get_1_keysREADLists all API keys associated with your Algolia application, including their permissions and restrictions. via GET /1/keys
algolia_get_1_keys_by_keyREADGets 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}
algolia_get_1_logsREADThe 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
algolia_get_1_logs_by_indexnameREADRetrieves the logs for a single Query Suggestions index. via GET /1/logs/{indexName}
algolia_get_1_security_sourcesREADRetrieves all allowed IP addresses with access to your application. via GET /1/security/sources
algolia_get_1_task_by_taskidREADChecks the status of a given application task. via GET /1/task/{taskID}
algolia_get_2_clicks_averageclickpositionREADRetrieves 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
algolia_get_2_clicks_clickthroughrateREADRetrieves 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
algolia_get_2_clicks_positionsREADRetrieves 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
algolia_get_2_conversions_addtocartrateREADRetrieves 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
algolia_get_2_conversions_conversionrateREADRetrieves 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
algolia_get_2_conversions_purchaserateREADRetrieves 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
algolia_get_2_conversions_revenueREADRetrieves 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
algolia_get_2_countriesREADRetrieves the countries with the most searches in your index. via GET /2/countries
algolia_get_2_filtersREADRetrieves 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
algolia_get_2_filters_by_attributeREADRetrieves 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}
algolia_get_2_filters_noresultsREADRetrieves 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
algolia_get_2_hitsREADRetrieves 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
algolia_get_2_searchesREADReturns 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
algolia_get_2_searches_countREADRetrieves 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
algolia_get_2_searches_noclickrateREADRetrieves 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
algolia_get_2_searches_noclicksREADRetrieves 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
algolia_get_2_searches_noresultrateREADRetrieves 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
algolia_get_2_searches_noresultsREADRetrieves the 1,000 most frequent searches that produced zero results. via GET /2/searches/noResults
algolia_get_2_statusREADRetrieves 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 minutes. via GET /2/status
algolia_get_2_users_countREADRetrieves 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
algolia_get_3_patterns_fieldsREADReturns 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
algolia_post_1_clusters_mappingWRITEAssigns 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
algolia_post_1_clusters_mapping_batchWRITEAssigns multiple user IDs to a cluster. **You can't move users with this operation**. via POST /1/clusters/mapping/batch
algolia_post_1_clusters_mapping_searchWRITESince 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
algolia_post_1_configsWRITECreates a new Query Suggestions configuration. You can have up to 100 configurations per Algolia application. via POST /1/configs
algolia_post_1_dictionaries_by_dictionaryname_batchWRITEAdds or deletes multiple entries from your plurals, segmentation, or stop word dictionaries. via POST /1/dictionaries/{dictionaryName}/batch
algolia_post_1_dictionaries_by_dictionaryname_searchWRITESearches for standard and custom dictionary entries. via POST /1/dictionaries/{dictionaryName}/search
algolia_post_1_eventsWRITESends 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 MB. via POST /1/events
algolia_post_1_indexes_batchWRITEAdds, 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
algolia_post_1_indexes_by_indexnameWRITEAdds 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}
algolia_post_1_indexes_by_indexname_batchWRITEAdds, 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
algolia_post_1_indexes_by_indexname_browseWRITERetrieves 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
algolia_post_1_indexes_by_indexname_by_model_recommend_rules_batchWRITECreate 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
algolia_post_1_indexes_by_indexname_by_model_recommend_rules_searchWRITESearches for Recommend rules. Use an empty query to list all rules for this recommendation scenario. via POST /1/indexes/{indexName}/{model}/recommend/rules/search
algolia_post_1_indexes_by_indexname_by_objectid_partialWRITEAdds 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
algolia_post_1_indexes_by_indexname_clearWRITEDeletes 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
algolia_post_1_indexes_by_indexname_deletebyqueryWRITEThis 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
algolia_post_1_indexes_by_indexname_facets_by_facetname_queryWRITESearches 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
algolia_post_1_indexes_by_indexname_operationWRITECopies 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
algolia_post_1_indexes_by_indexname_queryWRITESearches 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
algolia_post_1_indexes_by_indexname_rules_batchWRITECreate 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
algolia_post_1_indexes_by_indexname_rules_clearWRITEDeletes all rules from the index. via POST /1/indexes/{indexName}/rules/clear
algolia_post_1_indexes_by_indexname_rules_searchWRITESearches for rules in your index. via POST /1/indexes/{indexName}/rules/search
algolia_post_1_indexes_by_indexname_synonyms_batchWRITEIf 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
algolia_post_1_indexes_by_indexname_synonyms_clearWRITEDeletes all synonyms from the index. via POST /1/indexes/{indexName}/synonyms/clear
algolia_post_1_indexes_by_indexname_synonyms_searchWRITESearches for synonyms in your index. via POST /1/indexes/{indexName}/synonyms/search
algolia_post_1_indexes_objectsWRITERetrieves one or more records, potentially from different indices. Records are returned in the same order as the requests. via POST /1/indexes/*/objects
algolia_post_1_indexes_queriesWRITERuns 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
algolia_post_1_indexes_recommendationsWRITERetrieves recommendations from selected AI models. via POST /1/indexes/*/recommendations
algolia_post_1_keysWRITECreates a new API key with specific permissions and restrictions. via POST /1/keys
algolia_post_1_keys_by_key_restoreWRITERestores 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
algolia_post_1_security_sources_appendWRITEAdds a source to the list of allowed sources. via POST /1/security/sources/append
algolia_post_3_patterns_distributionWRITEBuckets 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
algolia_post_3_patterns_scalarWRITEAggregates 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
algolia_post_3_patterns_tableWRITEReturns `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
algolia_post_3_patterns_timeseriesWRITEReturns 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
algolia_put_1_configs_by_indexnameWRITEUpdates a QuerySuggestions configuration. via PUT /1/configs/{indexName}
algolia_put_1_dictionaries_settingsWRITETurns standard stop word dictionary entries on or off for a given language. via PUT /1/dictionaries/*/settings
algolia_put_1_indexes_by_indexname_by_objectidWRITEIf 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}
algolia_put_1_indexes_by_indexname_rules_by_objectidWRITEIf 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}
algolia_put_1_indexes_by_indexname_settingsWRITEUpdate 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
algolia_put_1_indexes_by_indexname_synonyms_by_objectidWRITEIf 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}
algolia_put_1_keys_by_keyWRITEReplaces the permissions of an existing API key. Any unspecified attribute resets that attribute to its default value. via PUT /1/keys/{key}
algolia_put_1_security_sourcesWRITEReplaces the list of allowed sources. via PUT /1/security/sources
Put Algolia behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.