> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Algolia Integration for AI Agents & Workflows

> Search and indexing platform for building fast, relevant search experiences

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/algolia.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=9d2992c27410ef4ea359030b06d43e0a" alt="Algolia logo" width="72" height="72" data-path="logos/algolia.svg" />

## Overview

Add **Algolia** to any ModuleX agent or workflow. Search and indexing platform for building fast, relevant search experiences via the Algolia REST API (`{application_id}-dsn.algolia.net` for reads, `{application_id}.algolia.net` for writes).

<Info>
  **Categories**: Developer Tools & Infrastructure · Search · **Auth**: Algolia API Credentials · **Actions**: 4
</Info>

## Authentication

### Algolia API Credentials

Authenticate using your Algolia Application ID and API Key

<Steps>
  <Step title="Step 1">
    Go to [https://dashboard.algolia.com](https://dashboard.algolia.com) and sign in
  </Step>

  <Step title="Step 2">
    Navigate to Settings > API Keys
  </Step>

  <Step title="Step 3">
    Copy your Application ID and Admin API Key
  </Step>
</Steps>

#### Required Credentials

| Field          | Description                                                        | Required | Format                             |
| -------------- | ------------------------------------------------------------------ | -------- | ---------------------------------- |
| Application ID | Your Algolia Application ID from the dashboard                     | Yes      | `ABCDEF1234`                       |
| Admin API Key  | Your Algolia Admin API Key (or a key with appropriate permissions) | Yes      | `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |

## Available Actions

<AccordionGroup>
  <Accordion title="browse_records — Browse for records in the given index">
    ### Parameters

    <ResponseField name="index_name" type="string" required>
      The name of the Algolia index to browse
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "hits": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Hits",
          "type": "array"
        },
        "cursor": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Cursor"
        }
      },
      "required": [
        "success"
      ],
      "title": "BrowseRecordsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="delete_records — Delete records from the given index by object IDs">
    ### Parameters

    <ResponseField name="index_name" type="string" required>
      The name of the Algolia index
    </ResponseField>

    <ResponseField name="record_ids" type="array" required>
      List of object IDs (strings) to delete from the index
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "task_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Task Id"
        },
        "object_ids": {
          "items": {
            "type": "string"
          },
          "title": "Object Ids",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "DeleteRecordsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_index_name_options — Retrieves available index names for the application">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "index_names": {
          "items": {
            "type": "string"
          },
          "title": "Index Names",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListIndexNameOptionsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="save_records — Adds or updates records in the given index">
    ### Parameters

    <ResponseField name="index_name" type="string" required>
      The name of the Algolia index
    </ResponseField>

    <ResponseField name="records" type="array" required>
      List of JSON objects to save. Each must have an 'objectID' field.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "task_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Task Id"
        },
        "object_ids": {
          "items": {
            "type": "string"
          },
          "title": "Object Ids",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SaveRecordsOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* Rate limits depend on the Algolia plan (Community, Standard, Premium). Community plans have lower indexing and search operation limits.
* Search operations: typically thousands per second on paid plans.
* Indexing operations: batch limits vary by plan (10 MB per batch maximum payload size).
* Error model: non-2xx responses and timeouts are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Amazon Web Services" href="/integrations/tools/aws" />

  <Card title="Apify" href="/integrations/tools/apify" />

  <Card title="Browser Use" href="/integrations/tools/browser-use" />
</CardGroup>

## Links

* [Algolia](https://www.algolia.com)
