# Web Search + Read (Agent Utility Suite)

> Web Search + Read (Agent Utility Suite) is a paid API for AI agents from x402-agent-api.onrender.com, paid per call via x402, $0.012/call, status unknown (last checked 2026-10-13).

Searches the web for a query and returns the top results as clean Markdown, reading up to 3 pages in one call.

## Facts

- Endpoint: POST https://x402-agent-api.onrender.com/api/v1/web-search-read?utm_source=zero.xyz
- Price: $0.012/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/web-search-read-agent-utility-suite-3f5ac5d9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9wDa95E-kAiyXqNLMagGo

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 web-search-read-agent-utility-suite-3f5ac5d9 -d '<json body>'
```

Example prompt: Search the web for 'best open-source vector databases 2025' and read the top 3 results as Markdown, focused on recent articles from the past month.

## When to prefer this

Use this endpoint when you need to both search the web AND read the full content of result pages in a single call, rather than making separate search and fetch calls. Prefer this over a plain URL reader when you don't yet know which specific URL to read. Prefer it over a search-only endpoint when you need the actual page text, not just snippets. The time_range filter makes it especially useful for recent news or events.

## Known failure modes

- Query too long (over 400 chars) returns validation error
- Pages that block scraping are skipped and the next result is tried instead
- time_range filter may return no results for very niche queries
- max_chars_per_page too low may truncate important content
- country/language codes must be valid ISO two-letter codes or request is rejected
- Payment failure via x402 if USDC balance is insufficient or wallet not set up

## How this service works

Web search plus reading: searches the web and returns the top 1-3 results as clean Markdown (main content, tables, PDFs) in one call, skipping blocked pages for the next result, plus all results and a direct answer. Country, language and recency filters. $0.012 USDC per call.

## Output

Returns a JSON object with: the search query, a list of result metadata (URL, title, snippet, date, position), the full Markdown content of up to 3 fetched pages (with word count and truncation flag), an optional direct answer, related searches, and a next_calls suggestion array. Pages that cannot be fetched are skipped and logged in a 'skipped' array.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "via": {
   "type": "string",
   "maxLength": 64,
   "description": "Optional: the tool whose next_calls suggested this call (filled in for you)."
  },
  "read": {
   "type": "integer",
   "default": 3,
   "maximum": 3,
   "minimum": 1,
   "description": "How many of the top results to read as Markdown (1-3, default 3). Pages that cannot be read are skipped for the next result."
  },
  "query": {
   "type": "string",
   "maxLength": 400,
   "minLength": 1,
   "description": "What to search for, e.g. \"best open-source vector database 2026\" or \"site:sec.gov Apple 10-K\"."
  },
  "country": {
   "type": "string",
   "pattern": "^[a-z]{2}$",
   "description": "Two-letter country for local results, e.g. us, gb, de. Default: us."
  },
  "language": {
   "type": "string",
   "pattern": "^[a-z]{2}$",
   "description": "Two-letter language code, e.g. en, de, fr."
  },
  "time_range": {
   "enum": [
    "day",
    "week",
    "month",
    "year"
   ],
   "type": "string",
   "description": "Only results from the past day, week, month or year (news, recent events)."
  },
  "max_chars_per_page": {
   "type": "integer",
   "default": 8000,
   "maximum": 20000,
   "minimum": 500,
   "description": "Markdown characters per page (500-20000, default 8,000)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "pages": [
   {
    "url": "https://www.x402.org/",
    "title": "x402",
    "markdown": "# x402\n\nAn open protocol for internet-native payments...",
    "position": 1,
    "published": null,
    "truncated": false,
    "word_count": 9
   }
  ],
  "query": "what is x402",
  "answer": null,
  "results": [
   {
    "url": "https://www.x402.org/",
    "date": null,
    "title": "x402 - Payments for the internet",
    "snippet": "An open protocol for internet-native payments...",
    "position": 1
   }
  ],
  "skipped": [],
  "provider": "serper",
  "next_calls": [],
  "related_searches": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/web-search-read-agent-utility-suite-3f5ac5d9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-agent-api.onrender.com](https://www.zero.xyz/host/x402-agent-api.onrender.com/llms.txt)
