# Heurist Mesh: Exa Web Search

> Heurist Mesh: Exa Web Search is a paid API for AI agents from mesh.heurist.xyz, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-15).

Searches the live web for any topic using Exa, returning filtered and digested results with optional time and domain constraints.

## Facts

- Endpoint: POST https://mesh.heurist.xyz/x402/solana/agents/ExaSearchDigestAgent/exa_web_search
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/heurist-mesh-exa-web-search-71aac239
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_i2V_bvC8nb1PW8dKf7NIy

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability heurist-mesh-exa-web-search-71aac239 -d '<json body>'
```

Example prompt: Search the web for the latest news about Solana network upgrades from the past week, and focus on results from coindesk.com and cointelegraph.com.

## When to prefer this

Choose this endpoint when you need fresh, real-time web search results — especially for time-sensitive topics like news, market events, or recent announcements. It is preferable over static knowledge bases when recency matters. Use domain filtering as a second step to reduce noise after a broad first query. Prefer this over the Firecrawl scrape endpoint when you want multi-result search rather than full-page extraction of a single known URL.

## Known failure modes

- No results returned if query is too narrow or domain filter is too restrictive
- Stale or irrelevant results if time_filter is omitted for time-sensitive queries
- Payment failure if insufficient USDC balance for x402 protocol
- Rate limiting or timeout on high-traffic queries
- Domain filter returning noise if too broad a domain is specified

## How this service works

Search the web for any topics. MANDATORY: Use time_filter for ANY time-sensitive requests. Domain filtering should be empty for the first query of a topic, and if it returns too much noise, do another query with targeted trusted domains.

## Output

A digested set of web search results including page titles, URLs, snippets or summaries, and publication dates. Results are filtered by time range and/or domain if specified, and are returned in a format ready for LLM consumption.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "search_term"
     ],
     "properties": {
      "debug": {
       "type": "boolean",
       "default": false,
       "description": "Debug mode flag. ALWAYS use false."
      },
      "limit": {
       "type": "integer",
       "default": 10,
       "maximum": 10,
       "minimum": 6,
       "description": "Number of pages"
      },
      "search_term": {
       "type": "string",
       "description": "Natural language search query. Phrase naturally and concisely. Boolean operators (AND/OR) are NOT supported."
      },
      "time_filter": {
       "enum": [
        "past_week",
        "past_month",
        "past_year"
       ],
       "type": "string",
       "description": "REQUIRED for time-sensitive queries"
      },
      "disambiguation": {
       "type": "string",
       "description": "If the search query contains ambiguous entity names, new projects, new technology, or niche acronyms AND when you have contexts pointing to what it is exactly, describe the entity with one sentence to help clarify, for example 'Heurist is a Web3 AI project'. If you don't have confident clarifications or when searching common-sense info, leave this field blank."
      },
      "include_domains": {
       "type": "array",
       "items": {
        "type": "string"
       },
       "description": "List of domains to include in search (e.g., ['arxiv.org', 'papers.com']). Supports paths (e.g., 'example.com/blog') and wildcards (e.g., '*.substack.com')"
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "result": {
       "type": "object",
       "additionalProperties": true
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/heurist-mesh-exa-web-search-71aac239/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mesh.heurist.xyz](https://www.zero.xyz/host/mesh.heurist.xyz/llms.txt)
