# Brave Search Web Search

> Brave Search Web Search is a paid API for AI agents from search.agent.s.brave.app, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-12).

Searches Brave's independent web index and returns ranked pages with title, URL, snippet, plus news, video, and discussion results when relevant.

## Facts

- Endpoint: GET https://search.agent.s.brave.app/res/v1/web/search?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/brave-search-web-search-c16b6250
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_x8oTtl3Z1UPIJzmap1BDP

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 brave-search-web-search-c16b6250
```

Example prompt: Search Brave's web index for the latest information on the EU AI Act regulatory updates — give me up to 10 results from the past month, focused on English-language sources from the US.

## When to prefer this

Choose this endpoint when you need broad, ranked web results from Brave's independent index — especially when you want source diversity beyond Google or Bing, need freshness filtering by date range, or want supplemental news/video/discussion results alongside standard web results. Prefer it over the Brave News Search endpoint when you need general web pages rather than just news articles, and over the LLM-ready text endpoint when you want raw ranked results rather than pre-extracted passage text.

## Known failure modes

- Missing required 'q' parameter returns a 400 error
- Query exceeding 600 characters is rejected
- Offset above 9 is rejected as out of range
- Count above 20 is capped or rejected
- Invalid country or language code may return no results or an error
- Payment failure (x402) if USDC balance is insufficient
- Freshness date range in wrong format returns an error or empty results

## How this service works

Web search over Brave's independent index. Returns ranked pages with title, URL, and snippet, plus news, video, and discussion results when relevant. Use it to find current sources on any topic. Pass q, and optionally count, offset, country, search_lang, and freshness.

## Output

Returns a structured object containing ranked web results (each with title, URL, description/snippet, and page age), plus additional result groups such as news articles, videos, and discussions when Brave deems them relevant to the query. Also includes query metadata such as the original query string.

## 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",
       "maxLength": 600,
       "description": "Search query"
      },
      "count": {
       "type": "integer",
       "default": 20,
       "maximum": 20,
       "minimum": 1
      },
      "offset": {
       "type": "integer",
       "maximum": 9,
       "minimum": 0,
       "description": "Pages of count results to skip"
      },
      "country": {
       "type": "string",
       "description": "Country code such as US, or ALL"
      },
      "freshness": {
       "type": "string",
       "description": "pd, pw, pm, py, or a range like 2026-01-01to2026-06-30"
      },
      "safesearch": {
       "enum": [
        "off",
        "moderate",
        "strict"
       ],
       "type": "string",
       "default": "moderate"
      },
      "search_lang": {
       "type": "string",
       "description": "Language code such as en"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "web": {
       "type": "object",
       "properties": {
        "type": {
         "type": "string"
        },
        "results": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "url": {
            "type": "string"
           },
           "title": {
            "type": "string"
           },
           "page_age": {
            "type": "string"
           },
           "description": {
            "type": "string"
           }
          }
         }
        }
       }
      },
      "type": {
       "type": "string"
      },
      "query": {
       "type": "object",
       "properties": {
        "original": {
         "type": "string"
        }
       }
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/brave-search-web-search-c16b6250/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from search.agent.s.brave.app](https://www.zero.xyz/host/search.agent.s.brave.app/llms.txt)
