---
title: Algolia API Integration on Truto
slug: algolia
category: Artificial Intelligence
canonical: "https://truto.one/integrations/detail/algolia/"
---

# Algolia API Integration on Truto



**Category:** Artificial Intelligence  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 57 tools for Algolia that AI agents can call directly.

- **list_all_algolia_security_sources** — List all allowed IP address sources for your Algolia application. Returns a collection of allowed IP address ranges in CIDR notation (e.g., 10.0.0.1/32).
- **delete_a_algolia_security_source_by_id** — Delete an allowed source (IP address range) from Algolia. Returns: deletedAt.g. 10.0.0.1/32). Required: id.
- **algolia_security_sources_append** — Add a source (allowed IP address range) to Algolia. Returns: createdAt.g. 10.0.0.1/32). Required: source.
- **algolia_security_sources_bulk_update** — Replace the complete list of allowed IP address sources in Algolia. Returns: updatedAt, description.
- **list_all_algolia_indices** — List all indices in the current Algolia application. Returns each index with its name, entries, pending, dataSize, fileSize, lastBuiltAt, createdAt, updatedAt, and primary.
- **get_single_algolia_index_by_id** — Retrieve a single record from an Algolia index by its object ID. Returns the record as a schemaless object including its objectID and index-specific attributes. Required: id, index_name.
- **create_a_algolia_index** — Add a new record to an Algolia index, with auto-generated object ID if none is provided. If the record includes an object ID that already exists, the existing record is replaced. If the index doesn't exist, a new one is created. Returns: createdAt, taskID, objectID. Required: index_name.
- **update_a_algolia_index_by_id** — Add or replace a record in an Algolia index by its object ID. If a record with the specified object ID exists, it is replaced; otherwise a new record is added. Returns: updatedAt, taskID, objectID. Required: id, index_name.
- **algolia_indices_partial_update** — Partially update attributes of a record in an Algolia index by its object ID without replacing the full record. Supports built-in operations like Increment, Decrement, Add, and Remove. Only first-level attributes are supported. Returns: updatedAt, taskID, objectID. Required: id, index_name.
- **delete_a_algolia_index_by_id** — Delete a single record from an Algolia index by its object ID. Returns: deletedAt, taskID. Required: id, index_name.
- **algolia_indices_delete_index** — Delete an entire Algolia index and all its settings. Returns: deletedAt, taskID. Deleting a non-existing index is ignored without warning; replica indices become independent when their primary is deleted. Required: index_name.
- **algolia_indices_batch** — Add, update, or delete multiple records in an Algolia index with a single batch request. Returns: taskID, objectIDs. Actions are applied in the order specified and are subject to indexing rate limits. Required: index_name, requests.
- **algolia_indices_clear** — Delete all records from an Algolia index while keeping settings, synonyms, and rules intact. Returns: updatedAt, taskID. This operation is resource-intensive and subject to indexing rate limits. Required: index_name.
- **algolia_indices_delete_by** — Delete records in an Algolia index that match a filter expression. Returns: updatedAt, taskID. This operation is resource-intensive, doesn't accept empty filters, and is subject to indexing rate limits. Required: index_name.
- **algolia_indices_operation** — Copy or move (rename) an Algolia index within the same application. Existing destination indices are overwritten except for analytics data. Returns: updatedAt, taskID. The optional scope parameter applies only to copy operations; if omitted, everything (records, settings, synonyms, rules) is copied. Required: index_name, operation, destination.
- **algolia_indices_browse** — Browse records from an Algolia index, up to 1,000 per request. Use browse instead of search when exporting records and ranking or analytics isn't important. Returns: objectID, _highlightResult, _snippetResult, _rankingInfo, _distinctSeqID. Browse ignores several search settings including advancedSyntax, distinct, enableRules, and facets. Required: index_name.
- **algolia_search_search** — Search a single Algolia index for matching records and return them as hits. Returns hits with objectID, _highlightResult, _rankingInfo, _snippetResult, and the record's own indexed attributes. Limited to 1,000 hits per search; use the browse operation for more. Required: index_name.
- **algolia_search_multi_search** — Run multiple search queries against one or more Algolia indices in a single API request. Returns an array of per-query results, each containing hits, nbHits, page, hitsPerPage, processingTimeMS, query, and facets. Results are returned in the same order as the requests. Required: requests.
- **algolia_search_facet_search** — Search for values of a specified facet attribute in an Algolia index. Returns facetHits with value, highlighted, and count for each matching facet value. The facet attribute must use the searchable() modifier in attributesForFaceting; this won't work with more than 65 searchable facets and searchable attributes combined. Required: index_name, facet_name.
- **list_all_algolia_objects** — Retrieve one or more Algolia records by their object IDs, potentially from different indices. Records are returned in the same order as the requests and may be null if a requested objectID doesn't exist in its index. Returns: objectID, attributes. Required: requests.
- **list_all_algolia_index_settings** — Retrieve index settings. Returns: attributesForFaceting, replicas, paginationLimitedTo, unretrievableAttributes, disableTypoToleranceOnWords, attributesToTransliterate, camelCaseAttributes, decompoundedAttributes. Required: index_name.
- **algolia_index_settings_bulk_update** — Update the settings of an Algolia index by index name. Unspecified settings are left unchanged; pass null to reset a setting to its default value. Returns: updatedAt, taskID. For best performance, update settings before adding records to the index. Required: index_name.
- **get_single_algolia_synonym_by_id** — Retrieve a synonym. Returns: objectID, type, synonyms, input, word, corrections, placeholder, replacements. Required: id, index_name.
- **update_a_algolia_synonym_by_id** — Create or replace a synonym. Returns: taskID, updatedAt, id. Required: id, index_name, objectID, type.
- **delete_a_algolia_synonym_by_id** — Delete a synonym. Required: id, index_name.
- **algolia_synonyms_search** — Search for synonyms. Returns: objectID, type, synonyms, input, word, corrections, placeholder, replacements. Required: index_name.
- **algolia_synonyms_batch** — Create or replace synonyms. Required: index_name.
- **algolia_synonyms_clear** — Delete all synonyms. Required: index_name.
- **get_single_algolia_rule_by_id** — Retrieve a rule. Returns: objectID, conditions, consequence, description, enabled, validity, tags, scope. Required: id, index_name.
- **update_a_algolia_rule_by_id** — Create or replace a rule. Required: id, index_name, objectID, consequence.
- **delete_a_algolia_rule_by_id** — Delete a rule. Required: id, index_name.
- **algolia_rules_search** — Search for rules. Returns: objectID, conditions, consequence, description, enabled, validity, tags, scope. Required: index_name.
- **algolia_rules_batch** — Create or update rules. Required: index_name.
- **algolia_rules_clear** — Delete all rules. Required: index_name.
- **list_all_algolia_api_keys** — List API keys. Returns: keys.
- **create_a_algolia_api_key** — Create an API key. Returns: key, createdAt. Required: acl.
- **get_single_algolia_api_key_by_id** — Retrieve API key permissions. Returns: value, createdAt, acl, description, indexes, maxHitsPerQuery, maxQueriesPerIPPerHour, queryParameters. Required: id.
- **update_a_algolia_api_key_by_id** — Update an API key. Returns: key, updatedAt. Required: id, acl.
- **delete_a_algolia_api_key_by_id** — Delete an API key. Returns: deletedAt. Required: id.
- **algolia_api_keys_restore** — Restore an API key. Returns: key, createdAt. Required: key.
- **algolia_dictionaries_search** — Search dictionary entries. Returns: hits, page, nbHits, nbPages. Required: dictionary_name, query.
- **algolia_dictionaries_batch** — Add or delete dictionary entries. Required: dictionary_name, requests.
- **algolia_dictionaries_get_settings** — Retrieve dictionary settings. Returns: disableStandardEntries.
- **algolia_dictionaries_get_languages** — List available languages.
- **algolia_dictionaries_bulk_update** — Update dictionary settings. Required: disableStandardEntries.
- **list_all_algolia_cluster_mappings** — List user IDs. Returns: userID, clusterName, nbRecords, dataSize.
- **create_a_algolia_cluster_mapping** — Assign or move a user ID. Required: cluster.
- **get_single_algolia_cluster_mapping_by_id** — Retrieve user ID. Returns: userID, clusterName, nbRecords, dataSize. Required: id.
- **delete_a_algolia_cluster_mapping_by_id** — Delete user ID. Returns: deletedAt. Required: id.
- **algolia_cluster_mappings_search** — Search for user IDs. Returns: userID, clusterName, nbRecords, dataSize, objectID, _highlightResult. Required: query.
- **algolia_cluster_mappings_batch** — Assign multiple userIDs. Required: cluster, users.
- **algolia_cluster_mappings_top_users** — Get top user IDs. Returns: topUsers.
- **algolia_cluster_mappings_list_clusters** — List clusters. Returns: topUsers.
- **algolia_cluster_mappings_list_pending** — Get migration and user mapping status. Returns: pending, clusters.
- **list_all_algolia_logs** — Retrieve log entries. Returns: logs.
- **get_single_algolia_task_by_id** — Check application task status. Returns: status. Required: id.
- **algolia_tasks_get_index_task** — Check task status. Returns: status. Required: index_name, task_id.

## How it works

1. **Link your customer's Algolia account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Algolia.** The Proxy API is a 1-to-1 mapping of the Algolia API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Offer native search to your customers' storefronts** — E-commerce, PIM, and marketplace SaaS companies can let their customers connect Algolia and automatically sync catalog data to power fast, typo-tolerant search on their storefronts without building infrastructure themselves.
- **Power ticket deflection in helpdesk products** — Support platforms can push knowledge base articles and resolved tickets into their customers' Algolia indices, enabling instant AI-matched suggestions that deflect tickets before they reach an agent.
- **Ship enterprise search for headless CMS publishers** — CMS platforms can index articles, authors, and taxonomies into Algolia on publish, giving their customers relevance-tuned site search out-of-the-box with no custom backend.
- **Sync merchandising rules and synonyms from your app** — Product teams can push business logic — pinned items, promotional rules, and industry jargon — from their platform into Algolia so merchandisers manage everything in one place.
- **Manage multi-tenant search infrastructure at scale** — Enterprise SaaS platforms offering search-as-a-service can programmatically provision indices, API keys, and cluster mappings per tenant to enforce data isolation and performance boundaries.

## What you can build

- **Real-time catalog sync** — Batch-push product, article, or record creates and deletes to a customer's Algolia indices whenever data changes in your app.
- **Partial attribute updates for inventory and pricing** — Update just the fields that changed — stock levels, prices, statuses — using partial update operations without re-sending the full record.
- **Automated index provisioning on connect** — When a customer connects their Algolia account, auto-create indices and bulk-apply settings that define searchable attributes, facets, and ranking.
- **Programmatic synonyms and rules management** — Sync your customer's taxonomies, acronym mappings, and merchandising rules into Algolia's synonyms and rules engines via batch endpoints.
- **Scoped API key provisioning per tenant** — Generate, rotate, and revoke Algolia API keys programmatically so each of your customer's tenants gets a scoped, secure search key.
- **Cluster mapping for multi-tenant isolation** — Assign your customers' end-user IDs to specific Algolia clusters to enforce data boundaries and balance indexing load.

## FAQs

### How does authentication work when my customers connect Algolia?

Algolia uses an Application ID and Admin API Key pair. Truto handles capturing and securely storing these credentials from your end users so you never touch or manage them directly.

### Can I push large volumes of records efficiently?

Yes. The batch indexing tool lets you send hundreds or thousands of records in a single call, which is the recommended pattern for initial syncs and nightly refreshes.

### How do I update only certain fields on a record without re-indexing everything?

Use the partial update tool to modify specific attributes on an existing object. It also supports operations like Increment and Decrement, which is useful for inventory counts or view metrics.

### How fresh is the data in search results after an update?

Algolia indexing is asynchronous — updates return a taskID that you can poll via the task endpoints to confirm when the change is live. In practice, records are searchable within seconds.

### Can I manage merchandising rules and synonyms programmatically?

Yes. You can batch-create, update, search, and clear both rules and synonyms, which lets you sync business logic like pinned items, redirects, and jargon mappings from your app into Algolia.

### How do I support customers with strict multi-tenant isolation requirements?

You can create and manage cluster mappings to assign end-user IDs to specific Algolia clusters, and provision scoped API keys per tenant so data and access are strictly separated.

## Related reading

- [Connect Algolia to Claude: Optimize Synonyms, Facets, and Security](https://truto.one/blog/connect-algolia-to-claude-optimize-synonyms-facets-and-security/) — Learn how to connect Algolia to Claude using a managed MCP server. This step-by-step guide covers handling facets, indexing operations, synonyms, and security.
- [Connect Algolia to ChatGPT: Manage Search Indices, Rules, and Settings](https://truto.one/blog/connect-algolia-to-chatgpt-manage-search-indices-rules-and-settings/) — Learn how to connect Algolia to ChatGPT using a managed MCP server to automate search index configurations, synonyms, rules, and security.
- [Connect Algolia to AI Agents: Automate Indexing and Cluster Mappings](https://truto.one/blog/connect-algolia-to-ai-agents-automate-indexing-and-cluster-mappings/) — Learn how to connect Algolia to AI Agents using Truto. Automate indexing, manage synonyms, and orchestrate multi-tenant cluster mappings natively.
