Skip to main content
Exa Search logo

Overview

Add Exa Search to any ModuleX agent or workflow. AI-powered semantic web search, content extraction, similarity matching, and answer generation against the Exa REST API (api.exa.ai).
Categories: Web Search & Scraping · Data · Search · Auth: API Key, ModuleX Managed Key · Actions: 4

Authentication

API Key Authentication

Authenticate using your Exa API key
1

Step 1

Go to https://dashboard.exa.ai and sign up or log in
2

Step 2

Navigate to ‘API Keys’ section
3

Step 3

Create a new API key or copy your existing one
4

Step 4

Paste the API key below

Required Credentials

FieldDescriptionRequiredFormat
Exa API KeyYour Exa API key from dashboard.exa.aiYesxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Available Actions

Parameters

query
string
required
Search query string
num_results
integer
Number of results to return (1-100) (Default: 10)
search_type
string
Search type: ‘auto’ (default), ‘neural’, ‘deep’, or ‘fast’ (Default: auto)
category
string
Filter results by content category
include_domains
array
List of domains to include in search results
exclude_domains
array
List of domains to exclude from search results
start_published_date
string
Filter results published after this date (ISO 8601 format)
end_published_date
string
Filter results published before this date (ISO 8601 format)
include_text
boolean
Whether to include page text content in results (Default: true)
include_highlights
boolean
Whether to include relevant text highlights (Default: false)
include_summary
boolean
Whether to include AI-generated summaries (Default: false)

Response

{
  "$defs": {
    "SearchResultItem": {
      "additionalProperties": false,
      "description": "A single result row in ``search``.",
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        },
        "published_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Published Date"
        },
        "author": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Author"
        },
        "score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Score"
        },
        "text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Text"
        },
        "highlights": {
          "items": {
            "type": "string"
          },
          "title": "Highlights",
          "type": "array"
        },
        "summary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        }
      },
      "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"
    },
    "total_results": {
      "default": 0,
      "title": "Total Results",
      "type": "integer"
    },
    "search_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Search Type"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    }
  },
  "required": [
    "success"
  ],
  "title": "SearchOutput",
  "type": "object"
}

Parameters

urls
array
required
List of URLs to extract content from
include_text
boolean
Whether to include full page text (Default: true)
include_highlights
boolean
Whether to include relevant text highlights (Default: false)
highlights_per_url
integer
Number of highlight snippets per URL (Default: 3)
include_summary
boolean
Whether to include AI-generated summary (Default: false)
livecrawl
string
Live crawl option: ‘never’, ‘fallback’, ‘preferred’, ‘always’ (Default: fallback)

Response

{
  "$defs": {
    "ContentItem": {
      "additionalProperties": false,
      "description": "A single result row in ``get_contents``.",
      "properties": {
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "published_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Published Date"
        },
        "author": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Author"
        },
        "text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Text"
        },
        "highlights": {
          "items": {
            "type": "string"
          },
          "title": "Highlights",
          "type": "array"
        },
        "summary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        }
      },
      "title": "ContentItem",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "results": {
      "items": {
        "$ref": "#/$defs/ContentItem"
      },
      "title": "Results",
      "type": "array"
    },
    "total_results": {
      "default": 0,
      "title": "Total Results",
      "type": "integer"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetContentsOutput",
  "type": "object"
}

Parameters

query
string
required
Question to answer using web search
num_results
integer
Number of search results to use for generating answer (Default: 5)
search_type
string
Search type for finding sources (Default: auto)
include_domains
array
Domains to prioritize for answers
exclude_domains
array
Domains to exclude from answer sources

Response

{
  "$defs": {
    "AnswerSource": {
      "additionalProperties": false,
      "description": "A single citation in ``answer``'s sources list.",
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        },
        "published_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Published Date"
        }
      },
      "title": "AnswerSource",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "answer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Answer"
    },
    "sources": {
      "items": {
        "$ref": "#/$defs/AnswerSource"
      },
      "title": "Sources",
      "type": "array"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    }
  },
  "required": [
    "success"
  ],
  "title": "AnswerOutput",
  "type": "object"
}

Limits & Quotas

  • Standard tier: ~60 req/min.
  • Deep search: ~20 req/min (higher compute cost).
  • Pricing (approx., per legacy manifest):
    • Neural search 1–25 results: $0.005
    • Neural search 26–100: $0.025
    • Deep search 1–25: $0.015
    • Deep search 26–100: $0.075
    • Content per page: $0.001
  • 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.

Firecrawl

Linkup

Serper