> ## 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.

# Airweave Integration for AI Agents & Workflows

> Search across your synced data sources using Airweave. Supports semantic search with hybrid, neural, or keyword retrieval strategies. Optionally generate AI-powered answers from search results.

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

<img src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/placeholder.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=a4046f9cd6d738c81259050e9833913c" alt="Airweave logo" width="72" height="72" data-path="logos/placeholder.svg" />

## Overview

Add **Airweave** to any ModuleX agent or workflow. AI-powered semantic search across your synced data collections via the Airweave Search REST API (`api.airweave.ai`). One tool retrieves relevant content from a collection using hybrid, neural, or keyword strategies, and can optionally synthesize an AI-generated answer.

<Info>
  **Categories**: Web Search & Scraping · Vector Search · Knowledge Base · **Auth**: API Key · **Actions**: 1
</Info>

## Authentication

### API Key Authentication

Authenticate using your Airweave API key

<Steps>
  <Step title="Step 1">
    Go to [https://app.airweave.ai](https://app.airweave.ai) and sign up or log in
  </Step>

  <Step title="Step 2">
    Open the API Keys section of your dashboard
  </Step>

  <Step title="Step 3">
    Create a new API key or copy your existing one
  </Step>

  <Step title="Step 4">
    Paste the API key below
  </Step>
</Steps>

#### Required Credentials

| Field            | Description                                | Required | Format |
| ---------------- | ------------------------------------------ | -------- | ------ |
| Airweave API Key | Your Airweave API key from app.airweave.ai | Yes      | `-`    |

## Available Actions

<AccordionGroup>
  <Accordion title="search — Search your synced data collections using Airweave. Supports semantic search with hybrid, neural, or keyword retrieval strategies. Optionally generate AI-powered answers from search results.">
    ### Parameters

    <ResponseField name="collection_id" type="string" required>
      The readable ID of the collection to search
    </ResponseField>

    <ResponseField name="query" type="string" required>
      The search query text
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum number of results to return
    </ResponseField>

    <ResponseField name="retrieval_strategy" type="string">
      Retrieval strategy: 'hybrid' (default), 'neural', or 'keyword'
    </ResponseField>

    <ResponseField name="expand_query" type="boolean">
      Generate query variations to improve recall
    </ResponseField>

    <ResponseField name="rerank" type="boolean">
      Reorder results for improved relevance using an LLM
    </ResponseField>

    <ResponseField name="generate_answer" type="boolean">
      Generate a natural-language answer to the query
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "SearchResultItem": {
          "additionalProperties": false,
          "description": "A single result row returned by ``search``.",
          "properties": {
            "entity_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Entity Id"
            },
            "source_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Source Name"
            },
            "md_content": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Md Content"
            },
            "score": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Score"
            },
            "metadata": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Metadata"
            },
            "breadcrumbs": {
              "items": {
                "type": "string"
              },
              "title": "Breadcrumbs",
              "type": "array"
            },
            "url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Url"
            }
          },
          "title": "SearchResultItem",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "results": {
          "items": {
            "$ref": "#/$defs/SearchResultItem"
          },
          "title": "Results",
          "type": "array"
        },
        "completion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Completion"
        },
        "total_results": {
          "default": 0,
          "title": "Total Results",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Collection-scoped**: every search runs against one collection's
  readable ID; results carry per-source attribution (`source_name`,
  `breadcrumbs`, `url`).
* **Answer generation**: setting `generate_answer=true` runs an extra
  LLM synthesis step and populates the `completion` field; expect higher
  latency.
* **Error model**: non-2xx responses and timeouts are caught and
  returned as `success=False` + `error` rather than raising. Plan for
  retries on the agent side based on the error string.

## Related integrations

<CardGroup cols={3}>
  <Card title="Ahrefs" href="/integrations/tools/ahrefs" />

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

  <Card title="Exa Search" href="/integrations/tools/exa-search" />
</CardGroup>

## Links

* [Airweave](https://airweave.ai)
