---
title: "Brave Search API: Official Plans or One Multi-Source Key"
description: "Brave's official Search API has freshness, country and Goggles filters. When it fits, and when one key for Brave, Google and Bing at 1 credit a query wins."
url: https://perceptlayer.com/blog/brave-search-api-results-json
---

[Blog](https://perceptlayer.com/blog) / [API guides](https://perceptlayer.com/blog/category/api-guides)

# Brave Search API: Official Plans or One Multi-Source Key

17 Aug 2026 Perceptlayer 7 min read

Brave runs its own official Search API on its own index, with published prices, a monthly free allowance and a deep parameter set: freshness, country, language, Goggles re-ranking and extra snippets. If Brave is the only engine you need, use it. `GET /v1/brave/search` is the other option: Brave web results as JSON at 1 credit per query, on the same key and the same MCP server as Google, Bing, DuckDuckGo and the rest of the catalogue, with fewer parameters than Brave's own API.

## Key takeaways

-   Brave's official Search plan lists $5 per 1,000 requests at up to 50 requests a second, with a $5 monthly allowance on every plan, per its pricing page in 2026.
-   The official web search endpoint takes `q`, `count` (up to 20), `offset` (0 to 9), `country`, `search_lang`, `freshness` and Goggles; `/v1/brave/search` takes `query`, `language`, `page` and `include_html`.
-   The recorded `/v1/brave/search` response returns `organic_results`, `related_searches` and `related_questions`, with `results_count: 20`.
-   Pick Brave's own API for Brave-only products, date filters, country targeting or high request rates; pick the multi-source key when you query several engines or give an agent one MCP server.
-   Each `/v1/brave/search` call costs 1 credit on success and failed calls cost nothing; 1,000 queries a month fit in the 1,000 free monthly credits.

## How do the two options compare?

They overlap on the core job, ranked Brave web results as JSON, and differ on everything around it. Brave's API is first-party: it has every parameter Brave supports, its own rate tiers and an Answers plan for AI-generated responses. The catalogue endpoint trades depth for breadth: fewer Brave parameters, but one key, one billing balance and one response style across 248 websites.

|  | Brave Search API (official) | `/v1/brave/search` |
| --- | --- | --- |
| Who runs it | Brave, on its own index | Perceptlayer, from publicly available Brave results |
| Price | Per 1,000 requests (see below) | 1 credit per successful query ( [pricing](https://perceptlayer.com/pricing)) |
| Free use | A monthly allowance per plan (see below) | 1,000 free credits a month, no card |
| Payment | Prepaid, card required | Prepaid credit packs, no card for the free tier |
| Query parameter | `q`, up to 600 characters | `query`, up to 500 characters |
| Results per call | `count`, up to 20 | Not a parameter; 20 in the recorded call |
| Paging | `offset`, 0 to 9 | `page` |
| Date filter | `freshness` ( `pd`, `pw`, `pm`, `py` or a range) | None |
| Country and language | `country`, `search_lang` | `language` only |
| Re-ranking | Goggles | None |
| Rate | Up to 50 requests a second on Search | 1 a second free, 5 or more on packs |
| Other engines | Brave only | Google, Bing, DuckDuckGo and more on the same key |
| MCP | Brave's own server | One server for the whole catalogue |

Brave's figures come from its pricing page and API reference ( [Brave Search API pricing](https://api-dashboard.search.brave.com/documentation/pricing) and [web search reference](https://api-dashboard.search.brave.com/api-reference/web/search/get), 2026). Brave's Search plan is listed at $5 per 1,000 requests, and each plan carries a $5 monthly allowance. Brave also lists Spellcheck and Autosuggest plans, and an Answers plan billed per query plus tokens. Check its page before you budget; Brave's launch-era pricing was different.

## What does Brave's official API do better?

Filtering and scale. Brave's web search takes `freshness` with past day, week, month, year or a custom date range, so "news about X this week" is one parameter. `country` and `search_lang` target a market; `extra_snippets` returns up to five additional excerpts per result, which helps retrieval for AI answers; and Goggles let you re-rank results with your own rules. None of these exist on `/v1/brave/search`.

It also scales further on one engine. The Search plan allows up to 50 requests a second. Brave describes its index as independent, built by its own crawler, and its documentation for AI use (Answers, extra snippets) is first-party. If your product is built on Brave results, you'll want that relationship, its attribution terms and its support.

Verdict for Brave-only products, recency-sensitive search, market targeting and high throughput: Brave's own API.

## When does one multi-source key fit better?

When Brave is one engine among several. Search results differ by engine, and the [Bing Search API alternative guide](https://perceptlayer.com/blog/bing-search-api-alternative-json) shows a recorded query where the Bing and Brave top results did not overlap. If you compare engines, fall back from one to another, or let an agent pick, you'd otherwise hold a Brave key, a Google results provider, a Bing replacement and separate bills.

On one key, those are paths on the same API. [`/v1/brave/search`](https://perceptlayer.com/apis/brave/search), [`/v1/duckduckgo/search`](https://perceptlayer.com/apis/duckduckgo/search), [`/v1/bing/search`](https://perceptlayer.com/apis/bing/search) and [`/v1/google-search/search`](https://perceptlayer.com/apis/google-search/search) cost 1 credit each and draw on one prepaid balance. Errors share one format, and every response reports `X-Credits-Used` and `X-Credits-Remaining`. Agents get one MCP server whose free `search_endpoints` tool finds the right engine, instead of one MCP server per engine.

Verdict for multi-engine comparison, fallbacks, SEO checks across engines and agents that need search plus other web data: the multi-source key. If you only need Brave and none of its filters, either works; compare what credits cost on the [pricing page](https://perceptlayer.com/pricing) with Brave's rate.

## How do you call /v1/brave/search?

Send `query`. The request below is the exact one behind the recorded response. Put your key in the `X-API-Key` header; keys start with `sk_live_`, and the [authentication docs](https://docs.perceptlayer.com/authentication) cover the rest.

```bash
curl "https://api.perceptlayer.com/v1/brave/search?query=best+web+scraping+api" \
  -H "X-API-Key: $API_KEY"
```

The endpoint takes five parameters. Types and allowed values come from the endpoint definition; nothing else, such as page size, is documented.

| Parameter | Type | Allowed values or notes |
| --- | --- | --- |
| `query` | string, required | Up to 500 characters |
| `language` | string | `english`, `deutsch`, `french`, `spanish`, `italian`, `portuguese`, `dutch`, `russian`, `chinese`, `japanese`, `arabic`, `all`, or the codes `en`, `de`, `fr`, `es`, `it`, `pt`, `nl`, `ru`, `zh`, `ja`, `ar` |
| `page` | integer | Page number |
| `include_html` | boolean |  |
| `q` | string | Optional; `query` is the required one |

`language` takes both names and two-letter codes, so `language=de` and `language=deutsch` both pass validation; pick one form and keep it.

### What does the response look like?

The recorded response has `search_information`, `organic_results`, `related_searches` and `related_questions`, then counts and the engine used. Here is an excerpt, trimmed with `…`; the organic results, which name commercial products, are cut:

```json
{
  "search_information": {
    "query_displayed": "best web scraping api"
  },
  "organic_results": [
    …
  ],
  "related_searches": [
    {
      "query": "data scraping tools chrome extension",
      "link": "https://search.brave.com/search?q=data%20scraping%20tools%20chrome%20extension&source=relatedQueries"
    },
    …
  ],
  "related_questions": [
    …
  ],
  "results_count": 20,
  "engine_used": "brave",
  "source": "brave",
  "service_used": "brave"
}
```

Each organic result in the recording carries `position`, `title`, `link`, `redirect_link`, `displayed_link`, `snippet` and `source`. Snippets can start with a relative age such as "2 weeks ago -", as found on the page, so strip it before you index text. `related_questions` entries carry a `question`, an `answer`, a `link` and a `title`: the answer is text from the linked page, not a verified fact, so treat it as a claim with a source.

## What does each option cost for common jobs?

On the catalogue endpoint, every successful query costs 1 credit and failed calls cost nothing, returning `X-Credits-Used: 0`. The [credits docs](https://docs.perceptlayer.com/credits) explain billing. Brave's own rate is per 1,000 requests; compare its pricing page with ours rather than trusting a converted figure here, since both change.

| Job | Queries a month | `/v1/brave/search` credits |
| --- | --- | --- |
| Prototype an agent | 1,000 | 1,000 (the free monthly credits) |
| 100 keywords daily, one engine | 3,000 | 3,000 |
| 100 keywords daily on Brave, Google and Bing | 9,000 | 9,000 |
| 1,000 agent questions, 2 searches each | 2,000 | 2,000 |

Worked example: tracking 100 keywords daily on three engines is 100 × 3 × 30 = 9,000 queries at 1 credit each, so 9,000 credits a month, inside a Starter pack of 10,000 credits. Purchased credits last 12 months, and all engines draw on the same balance. The [rate limits docs](https://docs.perceptlayer.com/rate-limits) list the request rates that come with each pack.

## Can an AI agent use Brave search through MCP?

Both options have an MCP route. Brave publishes its own MCP server for its API. Perceptlayer's server at `https://api.perceptlayer.com/mcp` exposes three tools for the whole catalogue: `search_endpoints` and `get_endpoint` are free lookups, and `call_endpoint` runs `brave.search` or any other endpoint, spending credits only on success.

The difference is how many servers the agent carries. With one server per engine, each adds its own tool definitions to the model's context. With one catalogue server, the agent searches for the engine it needs; our post on [MCP servers with too many tools](https://perceptlayer.com/blog/mcp-too-many-tools-context) explains why that keeps context small. Setup is in the [AI agents docs](https://docs.perceptlayer.com/ai-agents), and errors come back with codes from the [errors docs](https://docs.perceptlayer.com/errors).

To try the endpoint, [get a free API key](https://perceptlayer.com/signup) and run a query in the playground on the [Brave API page](https://perceptlayer.com/apis/brave). Data is collected from publicly available sources and returned as found at the time of the call.

## APIs in this post

-   [Brave Search **1 credit per call** · 1 endpoint](https://perceptlayer.com/apis/brave)

## Frequently asked questions

### Does Brave have an official search API?

Yes. Brave runs the Brave Search API on its own independent index, with a Search plan listed at $5 per 1,000 requests, a $5 monthly allowance per plan, and plans for Answers, Spellcheck and Autosuggest. It needs a card even for the free allowance. Its web search takes freshness, country, language and Goggles parameters.

### When should I use Brave's own API instead?

When Brave is the only engine you need, or you need its filters: `freshness` for date ranges, `country` and `search_lang` for market targeting, Goggles for re-ranking, extra snippets for AI retrieval, or up to 50 requests a second. `/v1/brave/search` has none of those, only `query`, `language`, `page` and `include_html`.

### How much does /v1/brave/search cost?

1 credit per successful query, and failed calls cost nothing. Every account gets 1,000 free credits a month after verifying an email address, with no card. Prepaid packs start at 10,000 credits and are shared across every endpoint, including Google, Bing and DuckDuckGo search. The [pricing page](https://perceptlayer.com/pricing) has what credits cost.

### Can I filter Brave results by date with /v1/brave/search?

No. The endpoint takes `query`, `language`, `page`, `include_html` and an optional `q`, with no date or country filter. For date filtering on Brave results, Brave's own API has `freshness`. On the same key, DuckDuckGo's endpoint takes a `df` filter for the past day, week, month or year.

### What happens if a Brave query fails?

You get an HTTP status and a JSON error with a `code`, `message` and `request_id`, and nothing is debited. A missing `query` or a `language` outside the allowed values returns `invalid_parameters` (422). Rate-limited (429) and temporarily unavailable (503) responses carry `Retry-After` with the seconds to wait.

brave search search api serp web search ai agents

## More from the blog

1.  [API guides](https://perceptlayer.com/blog/category/api-guides) 20 Aug 2026 Perceptlayer 6 min read
    
    ## [DuckDuckGo Search API: Web Results as JSON](https://perceptlayer.com/blog/duckduckgo-search-api-json)
    
    DuckDuckGo's Instant Answer API returns topic summaries, not ranked links. GET /v1/duckduckgo/search returns organic results and paging at 1 credit per query.
    
2.  [API guides](https://perceptlayer.com/blog/category/api-guides) 10 Aug 2026 Perceptlayer 7 min read
    
    ## [Google Search API: Get Search Results as JSON](https://perceptlayer.com/blog/google-search-api-json)
    
    Call GET /v1/google-search/search for organic results as JSON at 1 credit a call. Parameters, a real recorded response and the cost in credits.
    
3.  [API guides](https://perceptlayer.com/blog/category/api-guides) 5 Aug 2026 Perceptlayer 8 min read
    
    ## [Bing Search API Alternative: Web Results as JSON](https://perceptlayer.com/blog/bing-search-api-alternative-json)
    
    Replace Microsoft's retired Bing Search API with three search endpoints at 1 credit per call. Parameters compared, real responses, and where results differ.
