# Web Search Read

> Web Search Read is a paid API for AI agents from 1gateway.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-30).

Searches the web and returns results with titles, URLs, dates, and full Markdown page content for the top 3 results in a single API call

## Facts

- Endpoint: GET https://1gateway.dev/v1/web/search-read?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/web-search-read-2d9fc9e2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OfZxVu2mxmnHzijGtXt1j

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-2d9fc9e2
```

Example prompt: Search the web for 'EU AI Act timeline' and read the top 5 results from the past month — give me the titles, URLs, and full page content.

## When to prefer this

Choose this endpoint when an AI agent needs both search results AND the actual page content in a single call, avoiding the need to separately search then scrape each URL. Ideal for research workflows, news monitoring, regulatory lookups, and competitive intelligence where full article text is needed, not just titles and URLs. Prefer over pure search-only endpoints when downstream processing requires the page body.

## Known failure modes

- Search provider outage — call is not charged but returns a provider failure error
- Individual page read failures — marked with readError in that result, remaining results still returned
- Query exceeds 300 character max — validation error
- max parameter out of range (must be 1-10) — validation error
- Invalid time_range value — validation error
- Page content truncated at 4,000 characters per page — markdownTruncated flag set to true

## How this service works

Use when an agent needs to search and read in one call. Input: q, optional max (1-10, default 5), time_range (day, week, month, year). Output: JSON results (title, URL, date) and, for the top 3, the page converted to Markdown (up to 4,000 characters each; a page that fails is marked, the rest still ship). Provider failure is not charged. Example: ?q=EU+AI+Act+timeline&max=5

## Output

A JSON object containing: the original query, time range, total result count, number of pages successfully read, a results array (each with title, URL, publishedAt date, and for the top 3 a markdown string of up to 4,000 characters or a readError if the page failed to load), plus provider name, retrieval timestamp, cached flag, upstream cost in USD, attribution text, and any notes.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "q"
     ],
     "properties": {
      "q": {
       "type": "string",
       "examples": [
        "x402 payment protocol"
       ],
       "maxLength": 300,
       "description": "Search query"
      },
      "max": {
       "type": "integer",
       "maximum": 10,
       "minimum": 1,
       "examples": [
        5
       ],
       "description": "Number of results (default 5)"
      },
      "time_range": {
       "enum": [
        "day",
        "week",
        "month",
        "year"
       ],
       "type": "string",
       "examples": [
        "month"
       ],
       "description": "Only results from the past day, week, month or year"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "query",
      "timeRange",
      "count",
      "pagesRead",
      "results",
      "provider",
      "retrievedAt",
      "cached",
      "upstreamCostUsd",
      "attribution",
      "notes"
     ],
     "properties": {
      "count": {
       "type": "integer"
      },
      "notes": {
       "type": "array",
       "items": {
        "type": "string"
       }
      },
      "query": {
       "type": "string"
      },
      "cached": {
       "type": "boolean"
      },
      "results": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string"
         },
         "title": {
          "type": "string"
         },
         "markdown": {
          "type": [
           "string",
           "null"
          ]
         },
         "readError": {
          "type": [
           "string",
           "null"
          ]
         },
         "publishedAt": {
          "type": [
           "string",
           "null"
          ]
         },
         "markdownTruncated": {
          "type": "boolean"
         }
        }

… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/web-search-read-2d9fc9e2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 1gateway.dev](https://www.zero.xyz/host/1gateway.dev/llms.txt)
