Web search API for AI agents: top results as JSON, pay per query
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.
When to use it
- Give an agent current information or sources from the open web in one call
- Get title, URL, snippet and page age for 1-20 results, then read one in full with /extract
- Ground an answer in live web results without an account or a monthly plan
Guide: Web search API, pay per call
Inputs
| Name | Type | Description |
|---|---|---|
q (required) | string | Search query, at most 400 characters |
count | integer | Number of results (1-20, default 10) |
includeDomains | string | Only results from these domains: comma list or JSON array, up to 20 (example.com, github.com/org) |
excludeDomains | string | Never results from these domains: comma list or JSON array |
startPublishedDate | string | Only pages published on or after this date (ISO 8601, e.g. 2025-01-01) |
endPublishedDate | string | Only pages published on or before this date (ISO 8601) |
category | string | news, research paper, github, pdf, tweet, linkedin profile, company, personal site or financial report |
includeText | string | A phrase the results must contain (up to 5 words) |
excludeText | string | A phrase the results must not contain |
country | string | Localize results for this country: 2-letter code (SE, DE, FR, GB, US…) |
textChars | integer | Return the live page text of the top results, this many characters each (500-20000, or true for 3000; default none) |
highlights | string | true: the passages of each page that best match the query, with scores |
numSentences | integer | Sentences per highlight (1-10, default 3) |
highlightsPerUrl | integer | Highlights per result (1-5, default 1) |
summary | string | true: a 1-3 sentence AI summary of each of the top pages |
summaryQuery | string | What the summaries should focus on (default: the query) |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://glyphcall.com/search?q=x402%20payment%20protocol"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
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)."
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is search, and the first 25 successful calls are free:
https://glyphcall.com/mcp
Questions
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 $0.01; failed calls are not charged. This tool is not in the free calls; pay with card credits (from $1; the key goes in an Authorization header or, for clients that can only fetch a URL, as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.