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

# Exa Web Search

> Search the web from an agent with filters for type, date range, domains, and result depth

<iframe src="http://localhost:3000/doc-comp-previews/agent-node-preview?type=exa_web_search" title="Agent Node Preview" width="100%" height="250px" className="border dark:border-[#1C1C20] rounded-xl" />

## How Exa Web Search Works

Use Exa Web Search when your agent needs current external information that is not available in Flywheel event or profile data. The tool executes a real-time web query through the Exa search API and returns structured results the agent can reason over to personalize messages, verify claims, or gather competitive context. You control scope with domain allowlists/blocklists, date ranges, and content category filters so the agent only surfaces relevant, approved sources.

## Configuration

<Columns cols={2}>
  <Card title="Inputs">
    <ParamField path="Prompt" type="string">
      Instructions for when the agent should run web search and how it should use retrieved sources.
    </ParamField>

    <ParamField path="Query" type="string" required>
      Search query text. Can be user-defined or AI-defined.
    </ParamField>

    <ParamField path="Maximum Results" type="number" default="10">
      Number of results to return.
    </ParamField>

    <ParamField path="Search Type" type="enum" default="auto">
      Search strategy. **Options:** `auto`, `fast`, `deep`, `neural`.
    </ParamField>

    <ParamField path="Content Category" type="enum">
      Optional source category filter. **Options:** `company`, `research paper`, `news`, `pdf`, `tweet`, `personal site`, `financial report`, `people`.
    </ParamField>

    <ParamField path="Date Range" type="object">
      Relative date window using value + unit (`days`, `weeks`, `months`, `years`).
    </ParamField>

    <ParamField path="Include Domains" type="string[]">
      Domain allowlist.
    </ParamField>

    <ParamField path="Exclude Domains" type="string[]">
      Domain blocklist.
    </ParamField>

    <ParamField path="Include Text / Exclude Text" type="string[]">
      Optional text constraints for filtering results.
    </ParamField>

    <ParamField path="User Location" type="string">
      ISO country code context (for localized result relevance).
    </ParamField>

    <ParamField path="Moderation" type="boolean">
      Content moderation flag.
    </ParamField>

    <ParamField path="Use Autoprompt" type="boolean">
      Allow Exa autoprompt behavior.
    </ParamField>
  </Card>

  <Card>
    <iframe src="http://localhost:3000/doc-comp-previews/agent-config-preview?type=exa_web_search" title="Agent Config Preview" width="100%" height="760px" className="" />
  </Card>
</Columns>

<Card title="Outputs">
  <ParamField path="results" type="object[]" required>
    Array of search result objects returned by the Exa API for the agent to reason over.
  </ParamField>

  <ParamField path="results[].url" type="string" required>
    The URL of the matching web page.
  </ParamField>

  <ParamField path="results[].title" type="string" required>
    The page title as indexed by the search provider.
  </ParamField>

  <ParamField path="results[].snippet" type="string">
    A text excerpt from the page content relevant to the query.
  </ParamField>

  <ParamField path="result_count" type="number" required>
    Total number of results returned in this search execution.
  </ParamField>

  <ParamField path="query_used" type="string" required>
    The final query string sent to Exa, which may differ from the input if autoprompt rewrote it.
  </ParamField>
</Card>

## Use Cases

**Competitive Intelligence**

```
Query: "{{user.competitor}} product launch 2025"
Content Category: news
Date Range: 30 days
Use: Agent references recent competitor moves to personalize renewal or upsell messaging
```

**Account Enrichment**

```
Query: "{{user.company}} funding round OR acquisition"
Content Category: news
Include Domains: techcrunch.com, crunchbase.com
Use: Agent enriches account context with latest funding or M&A activity before outreach
```

**Content Research**

```
Query: "best practices {{user.industry}} {{event.topic}}"
Content Category: research paper
Maximum Results: 5
Use: Agent gathers authoritative sources to include in educational drip campaigns
```

**Compliance Verification**

```
Query: "{{user.company}} regulatory action OR compliance update"
Include Domains: sec.gov, finra.org
Exclude Domains: reddit.com, twitter.com
Use: Agent validates compliance standing before sending sensitive communications
```

## Best Practices

**Query Strategy**

* Keep queries specific and task-oriented to reduce noise in results.
* Use dynamic template variables (e.g., `{{user.company}}`) so queries stay relevant per run.
* Prefer the `auto` search type unless you have a clear reason to force `deep` or `neural`.
* Limit result counts to what the agent actually needs — fewer results mean faster execution.

**Domain Control**

* Constrain domains for compliance-sensitive messaging to approved sources only.
* Use the exclude list to block social media or user-generated content when accuracy matters.
* Combine domain filters with content category filters for the tightest result scope.
* Regularly review your allowlists to ensure referenced domains are still authoritative and active.

**Performance**

* Use lower result counts for speed; increase only when the agent needs breadth.
* Set date ranges to avoid stale content and keep results timely.
* Enable autoprompt only when the agent's query may benefit from Exa's reformulation logic.
* Monitor search usage to stay within rate limits and avoid unnecessary API calls.
