Neural web search
POST /api/exa-searchNeural (embedding-based) web search over a curated web index, which finds pages by meaning rather than keyword overlap. Send POST /api/exa-search with the required field query and pay $0.012 per call over x402 or MPP (there is no free tier). It returns a JSON object with source, fetchedAt, query, searchType, count and 1 more.
Use it when a keyword engine returns the wrong thing: conceptual questions, 'pages like this one', or niche technical writing. Returns up to 10 results with title, URL, published date and author. Complements the keyword web search rather than replacing it.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | What to search for, in natural language (max 1000 chars). Also accepted as q, search, term, keyword, question. |
numResults | number | no | Results to return, 1 to 10 (default 10). |
type | string | no | auto (default), neural, keyword, fast, or instant (lowest latency, some depth traded for speed). |
category | string | no | Optional category filter: company, publication, news, personal site, financial report, people ("research paper" is accepted as an alias of "publication"; pdf, github and tweet were retired upstream on 2026-07-23 and are refused with this list). |
includeDomains | array | no | Only return results from these domains. |
excludeDomains | array | no | Never return results from these domains. |
startPublishedDate | string | no | ISO date; only pages published on or after it. |
endPublishedDate | string | no | ISO date; only pages published on or before it. |
Example request
curl -i -X POST https://agent402.tools/api/exa-search \
-H "Content-Type: application/json" \
-d '{"query":"how agent-to-agent micropayment protocols settle onchain","numResults":5}'
Without payment this returns HTTP 402 Payment Required with the exact price for exa-search; any x402 v2 or MPP client pays it and retries.
Example response
{
"source": "exa",
"fetchedAt": "2026-09-13T20:00:00.000Z",
"query": "how agent-to-agent micropayment protocols settle onchain",
"searchType": "neural",
"count": 1,
"results": [
{
"title": "What is the x402 payment protocol?",
"url": "https://example.com/x402-explained",
"publishedDate": "2026-08-02T00:00:00.000Z",
"author": null,
"text": null
}
]
}
| Field | Type | Always present | In the example |
|---|---|---|---|
source | string | yes | exa |
fetchedAt | string | yes | 2026-09-13T20:00:00.000Z |
query | string | yes | how agent-to-agent micropayment protocols settle onchain |
searchType | string | yes | neural |
count | number | yes | 1 |
results | array of objects | yes | 1 item in the example |
From an MCP client
catalog.call {
"slug": "exa-search",
"params": {
"query": "how agent-to-agent micropayment protocols settle onchain",
"numResults": 5
}
}
The hosted connector at https://agent402.tools/mcp needs a payment for exa-search; the stdio package pays it from a wallet or from an AGENT402_CREDITS_KEY issued earlier. Local install: npx -y agent402-mcp.
Errors and behavior
queryis required. An input the tool rejects returns an HTTP 4xx whose body carrieserror,tool,expected,requiredandexample, so the caller can correct it.- A paid call that ends in any status of 400 or above is not charged over x402, MPP or a prepaid credits key: settlement is cancelled when the tool fails. The exception is a Tempo push credential, a transfer the buyer sent before the call: it settles before the tool runs, so if the tool then fails the payment is recorded as a refund owed to the paying wallet.
- Wallet-only: this tool reaches the network or stored state, so it has no proof-of-work tier. A prepaid card-credits key issued earlier (
Authorization: Bearer a402_...) also pays it. - A
GETorHEADto /api/exa-search returns the same 402 quote, so the price can be read without a body. - An
Idempotency-Keyheader makes a retried paid call replay the first 200 instead of charging again (an answer larger than 1 MB is not replayed).
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls?.({ maxAmountPerPayment: "$0.012" }); // refuse any quote above this tool's price
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/exa-search", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"query": "how agent-to-agent micropayment protocols settle onchain",
"numResults": 5
}),
});
Related tools
Grounded answer with citations
POST /api/exa-answerAsk a question and get a written answer with the sources it was drawn from.
Web page contents
POST /api/exa-contentsRetrieve the readable text of up to 10 web pages by URL, with optional query-focused highlights.
Web answer
GET /api/answerAI-generated answer to a natural-language question, grounded in live web search results with source citations.
Wayback Machine snapshot
POST /api/archive-snapshotLook up a URL in the Internet Archive's Wayback Machine: returns the archived snapshot closest to an optional timestamp.
Site favicon grabber
POST /api/favicon-grabFetch a site's favicon/logo: reads the page's declared <link rel=icon…> tags (all variants with their sizes and types).
Farcaster cast search
POST /api/fc-cast-searchSearch Farcaster casts by keyword (literal, semantic or hybrid match), newest first, optionally filtered to one author.