# Exa Web Search

> Exa Web Search is a paid API for AI agents from Exa at api.exa.ai, paid per call via MPP, $0.007/call, status healthy (last checked 2026-10-12, last successful call 2026-10-07).

Search the web using AI-powered semantic search and return ranked results with titles, URLs, and metadata

## Facts

- Endpoint: POST https://api.exa.ai/search?utm_source=zero.xyz
- Price: $0.007/call
- Payment: MPP
- Status: healthy
- Last checked: 2026-10-12
- Last successful call: 2026-10-07
- Success rate: 99% of calls made through Zero
- Rating: 3.8 / 5 from 10 reviews
- Activations on Zero: 1618
- Provider: Exa
- Docs: https://docs.exa.ai/reference/mpp-guide
- Website: https://exa.ai
- Tags: search, web-search, content, ai-search, ai
- Canonical page: https://www.zero.xyz/c/exa-search-eaa916e8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7EgVaagyqjc6GaAxc6kEH

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 exa-search-eaa916e8 -d '<json body>'
```

Example prompt: Search Exa for the top 10 web results about 'quantum computing breakthroughs in 2025' and give me the titles and URLs.

## When to prefer this

Use this endpoint when you need to retrieve a ranked list of web pages relevant to a natural language query, especially when semantic relevance matters more than keyword matching. Prefer this over generic search APIs when you want AI-powered ranking and clean structured metadata per result. Choose this over Exa's Answer endpoint when you want raw URLs and page metadata rather than a synthesized answer, and over FindSimilar when you have a query string rather than a reference URL.

## Known failure modes

- Empty or vague query may return low-quality or irrelevant results
- Requesting too many results may slow response or hit limits
- Very niche queries may return few or no results
- Paywalled or non-indexed pages may not appear in results
- Insufficient USDC balance may cause payment failure at $0.005 per call

## How this service works

Perform a search with an Exa prompt-engineered query and retrieve a list of relevant results. Optionally get contents.

## Output

An array of ranked web search results, each containing a result ID, URL, page title, published date, and optionally an image and favicon URL. Results are ordered by relevance to the query.

## Example request

```json
{
 "query": "artificial intelligence",
 "numResults": 10
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "query"
 ],
 "properties": {
  "type": {
   "anyOf": [
    {
     "enum": [
      "instant",
      "fast",
      "auto",
      "deep-lite",
      "deep",
      "deep-reasoning"
     ],
     "type": "string",
     "default": "auto",
     "description": "The search mode to use. `auto` (default) is a balanced mode that optimizes for both quality and speed and is recommended for most applications. `fast` returns high-quality results with reduced latency, making it a good fit for user-facing search and interactive workflows. `instant` is optimized for minimum response time, trading some search depth for speed in real-time experiences such as chat, voice agents, and autocomplete. `deep-lite` performs lightweight research with synthesized results and a consistent 4-second latency, lower than full deep search. `deep` conducts comprehensive multi-step research with synthesis, while `deep-reasoning` adds stronger reasoning for complex analysis and decision-making tasks."
    },
    {
     "type": "null"
    }
   ]
  },
  "query": {
   "type": "string",
   "minLength": 1,
   "description": "The query string for the search."
  },
  "stream": {
   "anyOf": [
    {
     "type": "boolean",
     "default": false,
     "description": "Requests server-sent events for synthesized output streaming. Streaming is currently used only when outputSchema is provided; otherwise the endpoint returns the normal JSON search response."
    },
    {
     "type": "null"
    }
   ]
  },
  "context": {
   "anyOf": [
    {
     "oneOf": [
      {
       "type": "boolean",
       "deprecated": true,
       "description": "Deprecated. Use `highlights` or `text` instead. Returns page contents as a combined context string.",
       "x-exa-lifecycle": "deprecated",
       "x-exa-replacement": [
        "highlights",
        "text"
       ]
      },
      {
       "type": "object",
       "deprecated": true,
       "properties": {
        "maxCharacters": {
         "type": "integer",
         "maximum": 1000000,
         "minimum": 1,
         "description": "Maximum character limit for the context string."
        }
       },
       "description": "Deprecated. Use `highlights` or `text` instead. Returns page contents as a combined context string.",
       "x-exa-lifecycle": "deprecated",
       "x-exa-replacement": [
        "highlights",
        "text"
       ]
      }
     ],
     "deprecated": true,
     "description": "Deprecated. Use `highlights` or `te
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "oneOf": [
  {
   "type": "object",
   "required": [
    "results",
    "output"
   ],
   "properties": {
    "output": {
     "type": "object",
     "required": [
      "content",
      "grounding"
     ],
     "properties": {
      "content": {
       "oneOf": [
        {
         "type": "string"
        },
        {
         "type": "object",
         "propertyNames": {
          "type": "string"
         },
         "additionalProperties": {
          "oneOf": [
           {
            "type": "null"
           },
           {
            "type": "boolean"
           },
           {
            "type": "number"
           },
           {
            "type": "string"
           },
           {
            "type": "array",
            "items": {
             "$ref": "#/components/schemas/JsonValue"
            }
           },
           {
            "type": "object",
            "propertyNames": {
             "type": "string"
            },
            "additionalProperties": {
             "$ref": "#/components/schemas/JsonValue"
            }
           }
          ],
          "description": "Any JSON value."
         }
        }
       ],
       "description": "Synthesized content. String by default, or object when outputSchema is provided."
      },
      "grounding": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "field",
         "citations",
         "confidence"
        ],
        "properties": {
         "field": {
          "type": "string",
          "description": "Field path in output.content, for example content or companies[0].funding."
         },
         "citations": {
          "type": "array",
          "items": {
           "type": "object",
           "required": [
            "url",
            "title"
           ],
           "properties": {
            "url": {
             "type": "string",
             "format": "uri",
             "description": "Source URL."
            },
            "title": {
             "type": "string",
             "description": "Source title."
            }
           },
           "additionalProperties": false
          },
          "description": "Sources supporting this output field."
         },
         "confidence": {
          "enum": [
           "low",
           "medium",
           "high"
          ],
          "type": "string",
          "description": "Model-reported reliability for this field."
         }
        },
        "
… (truncated)
```

## More

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