Web search API with page content

From $0.01 per successful call · failed calls are never charged · no account needed · Markdown version: /guides/web-search-api-with-page-content.md

One call searches the web and returns the top results with the live text of each page, the passages that best match the query and an optional AI summary, filtered by domain, date or category if you like; a page that cannot be read keeps its search snippet.

When an agent wants this

Web search API with contents: Exa-style search, filters, page text and highlights $0.01

Exa-style web search: top 1-20 results with title, URL, snippet, published date and favicon (Brave index); optional domain, date, category and phrase filters; optional live page text, highlights and AI summaries of the top 10 pages. Results are for immediate use only: no storing, resale or model training (Brave API terms). Failures return 503, uncharged. Use when an agent needs current information or sources from the open web.

Inputs: q (required): Search query, at most 400 characters; count: Number of results (1-20, default 10); includeDomains: Only results from these domains: comma list or JSON array, up to 20 (example.com, github.com/org); excludeDomains: Never results from these domains: comma list or JSON array; startPublishedDate: Only pages published on or after this date (ISO 8601, e.g. 2025-01-01); endPublishedDate: Only pages published on or before this date (ISO 8601); category: news, research paper, github, pdf, tweet, linkedin profile, company, personal site or financial report; includeText: A phrase the results must contain (up to 5 words); excludeText: A phrase the results must not contain; textChars: Return the live page text of the top results, this many characters each (500-20000, or true for 3000; default none); highlights: true: the passages of each page that best match the query, with scores; numSentences: Sentences per highlight (1-10, default 3); highlightsPerUrl: Highlights per result (1-5, default 1); summary: true: a 1-3 sentence AI summary of each of the top pages; summaryQuery: What the summaries should focus on (default: the query).

Not in the free calls (it costs capacity per call); pay from the first call.

With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:

curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/search?q=x402%20payment%20protocol"
curl "https://agent-data-tools.revmesh2074.workers.dev/search?q=x402%20payment%20protocol&api_key=adt_…"

Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://agent-data-tools.revmesh2074.workers.dev/mcp) this tool is search.

Example result
{
  "query": "x402 payment protocol",
  "provider": "Brave Search",
  "count": 1,
  "results": [
    {
      "title": "x402: an open payment protocol",
      "url": "https://www.x402.org/",
      "snippet": "x402 lets any HTTP API charge per request in stablecoins…",
      "age": "2 days ago",
      "publishedDate": "2026-11-04T09:00:00.000Z",
      "author": null,
      "domain": "x402.org",
      "favicon": "https://imgs.search.brave.com/x402-favicon.png",
      "image": null
    }
  ],
  "terms": "Results are for the caller's immediate use: no storing or caching beyond the current task, no resale and no model training (Brave Search API terms)."
}

Tool page, inputs and limits

Web research: search and read the top pages $0.01

One call to research a question on the web: a Brave web search, then the text of the top 1-5 result pages, read in parallel and clipped to your length, with titles and URLs. A page that cannot be read is listed with its reason. Results are for the caller's immediate use only: no storing, resale or model training (Brave API terms). Use when an agent needs current, sourced information in one step instead of a search plus several page reads.

Inputs: q (required): What to research, at most 400 characters; pages: How many top results to read in full (1-5, default 3); maxChars: Characters of text per page (500-10000, default 3000).

Not in the free calls (it costs capacity per call); pay from the first call.

With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:

curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/pack/web-research?q=x402%20payment%20protocol"
curl "https://agent-data-tools.revmesh2074.workers.dev/pack/web-research?q=x402%20payment%20protocol&api_key=adt_…"

Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://agent-data-tools.revmesh2074.workers.dev/mcp) this tool is pack_web_research.

Example result
{
  "pack": "web-research",
  "query": "x402 payment protocol",
  "pages": [
    {
      "rank": 1,
      "title": "x402: an open payment protocol",
      "url": "https://www.x402.org/",
      "snippet": "x402 lets any HTTP API charge per request…",
      "text": "x402 is an open standard for internet-native payments…",
      "textLength": 3000,
      "error": null
    }
  ],
  "otherResults": [
    {
      "title": "x402 on GitHub",
      "url": "https://github.com/coinbase/x402"
    }
  ],
  "terms": "Results are for the caller's immediate use…",
  "failed": {}
}

Tool page, inputs and limits

Questions

How much text per page?

Set textChars from 500 to 20,000 characters; highlights and summaries are read from up to 12,000.

What does it cost?

$0.01 a call, failures uncharged.

Where do the results come from?

The Brave Search API, one request per paid call. Results are for the caller's immediate use: no storing, resale or model training.

What if the search provider is down or the daily capacity is used up?

The call answers 503 and nothing is charged.

How do I pay?

Each successful call costs the tool's price; failed calls are not charged. Then pay with card credits from $1 (the key goes in an Authorization header or as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.