Try it
Run a live Brave search right here
One real call against the API, no signup and no key. What comes back is drawn as a results page and printed as raw JSON.
Endpoints & Pricing
Four Brave Endpoints, One API Key
Web search for the full Brave SERP object with an optional AI digest, plus news, images and videos. Every engine is billed at the same rates, so switching engine= never changes your bill.
Web SERP
- Quick (organic only) or Deep (full SERP)
- Optional AI digest with
include_aio - PAA with answers & source links
- Ads, related searches, inline videos
- Rich snippets: breadcrumb, date, rating
- Up to 100 results per call
News
- ~29 articles when
numis set - Seven fields, always present
- Publisher name, e.g. Reuters
publishedTimeas an ISO date- Freshness: day, week, month, year
- Country and language targeting
Images
- Up to ~50 images per call
- Full-size and thumbnail URLs
- Dimensions (width × height)
- Eight fields, always present
- Country and language targeting
- Brave takes no size/colour filters
Videos
- Up to ~50 videos per call
- Duration, thumbnail, embed URL
viewsas a number, not a string- Eleven fields, always present
- Freshness and safe-search filters
- Uploader name where Brave gives one
Brave's AI digest, as a field you ask for
Brave opens many result pages with an AI-written summary of the answer. Add include_aio=true to a paid Deep Search call on engine=brave and that summary comes back as results.aiOverview, alongside the organic list from the same page. Same per-call price, opt-in flag.
It is genuinely optional: leave the flag off and aiOverview is null and the response is byte-for-byte what it was before the flag existed. metadata.hasAiOverview tells you whether this particular query earned one. Brave's digest carries no citation links of its own, so sources is an empty array on this engine — the text is the product.
GET /api/search ?q=best+password+manager &engine=brave &include_aio=true { "results": { "aiOverview": { "text": "Password managers store…", "sources": [] }, "organic": [ … organic results … ] }, "metadata": { "hasAiOverview": true } }
Quick Start
Integrate in Under 5 Minutes
A single cURL request is all you need. Set engine=brave and replace YOUR_API_KEY with the key from your dashboard.
# The full Brave SERP object, with the AI digest asked for explicitly curl "https://apiserpent.com/api/search?q=best+password+manager&engine=brave&num=20&country=us&include_aio=true" \ -H "X-API-Key: YOUR_API_KEY" # Organic only, built for rank tracking — one call, one charge curl "https://apiserpent.com/api/search/quick?q=best+password+manager&engine=brave&num=20" \ -H "X-API-Key: YOUR_API_KEY"
{
"success": true,
"query": "best password manager",
"type": "web",
"engine": "brave",
"country": "us",
"pagesRequested": 2,
"pagesScraped": 2,
"results": {
"organic": [
{
"position": 1,
"title": "The Best Password Managers of 2026",
"url": "https://example.com/best-password-managers",
"snippet": "We tested 14 managers on autofill, sharing and recovery...",
"displayedUrl": "example.com"
}
],
"peopleAlsoAsk": [
{
"question": "Is a password manager actually safe?",
"answer": "A vault is encrypted on your own device before...",
"sourceUrl": "https://example.com/vault-security",
"sourceTitle": "How Password Vaults Work",
"sourceDisplay": "example.com › vault-security"
}
],
"relatedSearches": [
{ "query": "open source password manager" },
{ "query": "password manager for teams" }
],
"richSnippets": [
{
"position": 1,
"breadcrumb": "example.com › reviews › security",
"publishDate": "2026-02-11",
"rating": 4.6,
"sitelinks": []
}
],
"aiOverview": { "text": "A password manager stores...", "sources": [] }
},
"metadata": {
"totalOrganicResults": 20,
"hasAiOverview": true,
"hasPeopleAlsoAsk": true,
"source": "brave"
},
"meta": {
"totalOrganic": 20,
"requestedNum": 20,
"elapsed": "6421ms"
}
}
Data Fields
Every Brave Endpoint, Fully Typed
Each endpoint returns a fixed key set. A block Brave's page did not carry comes back as its own empty value — null for objects, [] for lists — never as a missing key, so one parser covers every engine you point it at.
Web Search Fields (Deep)
- organic[].position, .title, .url
- organic[].snippet, .displayedUrl
- peopleAlsoAsk[].question, .answer
- peopleAlsoAsk[].sourceUrl, .sourceTitle
- relatedSearches[].query
- richSnippets[].breadcrumb, .publishDate
- richSnippets[].rating, .priceRange, .phone
- ads.top[], knowledgePanel, localPack[]
- aiOverview.text (with include_aio)
News Search Fields
- articles[].position
- articles[].title
- articles[].url
- articles[].source
- articles[].publishedTime
- articles[].snippet
- articles[].image
- totalResults
Image & Video Fields
- images[].thumbnail, .original
- images[].width, .height
- images[].source, .pageUrl
- videos[].url, .duration, .thumbnail
- videos[].views (number)
- videos[].publisher, .embedUrl
- videos[].publishedTime (YYYY-MM-DD)
- videos[].description
Request Parameters
- q (search query)
- engine=brave
- num (1–100; 1–50 on news)
- pages (1–10 on web, 1–5 on news)
- country (112 codes, e.g. us, de, in)
- language (2-letter ISO, e.g. en, de)
- freshness (h, d, w, m, y)
- safe (off, moderate, strict)
- include_aio (Deep, paid plans)
- format (full, simple)
Brave, block by block
What a Brave Deep Search actually fills in
Brave's result page is not shaped like Google's, and pretending otherwise wastes your time. This is what to expect from engine=brave on /api/search, honestly, so you can decide before you spend a call.
| Block | On engine=brave | What you get |
|---|---|---|
| Organic results | Yes | Roughly 10–20 per result page, with title, URL, snippet and a clean display URL — the host on its own, with the breadcrumb path published separately. |
| Related searches | Yes | The most consistently present block Brave has — returned as { query } objects, never bare strings. |
| People Also Ask | Yes | The question, the full answer text, and the source page's URL, title and breadcrumb. |
| Rich snippets | Yes | Breadcrumb trail, publish date, star rating, price band, address and phone, keyed to the result's position. |
| Ads | Yes | Brave's own sponsored slot above the organic list, with its visible "Sponsored" label. |
| Inline videos | Yes | The video carousel as a list — title, URL, duration, thumbnail and date. Video results that hold a real organic rank stay in organic, where they belong. |
| AI digest | Opt-in | Deep Search, paid plans, include_aio=true. Returned as aiOverview.text. |
| Knowledge panel | Where present | Title, subtitle, description, deduplicated fact pairs and profile links. |
| Local pack | Where present | Business name, address and opening state. Brave prints no star rating inside this block, so do not build a review-score chart on it. |
| Featured snippet | Uncommon | The key is always in the response; Brave surfaces this far less often than Google does. |
| Shopping blocks | No | Not returned on this engine. |
pixel_position | No | The pixel-geometry beta covers google, yahoo, bing and ddg. A Brave response carries no pixel fields. |
Quick Search is organic-only on every engine by design, Brave included — every block above is a Deep Search (/api/search) feature. The keys still ship on Quick, simply empty, so your parser never has to branch. Field definitions live in the API reference.
Why Brave SERP data
An independent index, and a page that answers differently
Brave runs its own crawler over its own web index, outside the Google and Microsoft families, and it does not personalise around a search history — a third opinion, not an echo.
A third opinion on who ranks
Brave ranks with its own signals, so a page that sits at position 3 on Google can be absent from Brave entirely, and vice versa. Teams tracking share of voice across engines use Brave to catch the gap: a competitor winning a query nobody else shows you.
No personalisation to control for
Brave does not build a profile of the searcher or reshape results around browsing history, so two captures of the same query and country are comparable. That is what makes a Brave time series usable as evidence rather than as noise you have to explain away.
Unusually rich breadcrumb data
Brave prints a full breadcrumb path under most organic results, and we publish it as richSnippets[].breadcrumb with the host separated from the path. In our own field-coverage sampling it is the best-covered enrichment of any engine we serve — useful for mapping a competitor's site structure straight out of a SERP.
The AI answer, without a second product
Brave is one of three engines here that accepts include_aio. You track the AI summary and the ten blue links from the same call, at the same price, instead of buying an AI-answer product alongside a SERP product.
Who buys Brave results
What teams actually do with this endpoint
Brave data is bought for the things a Google-only view cannot tell you, and for the workloads where per-request pricing elsewhere makes the project impossible.
Multi-engine rank tracking
Rank trackers that sell "visibility across search engines" need a non-Google, non-Microsoft column to make the claim true. Quick Search on engine=brave returns organic rows only, is billed one call one charge, and takes the same num and country as the other four engines.
AI-answer monitoring
Brands now track whether a query returns an AI summary at all, and whether their page is the one it paraphrases. include_aio=true puts Brave's digest and the organic list in one response, and metadata.hasAiOverview gives you a clean boolean to chart over time.
RAG and agent retrieval
Teams building retrieval for an LLM want fresh, ranked URLs without a per-request bill that scales with the agent. Brave web search here starts at $0.60 per 1,000 calls and falls to $0.03 at Scale, with snippets long enough to rank candidates before you fetch anything.
Brand and news monitoring
Brave News returns about 29 articles a call with a real publisher name, an ISO publish date and a freshness filter down to the past day. Cheap enough at $0.01 per 1,000 on Scale to poll a watchlist of terms hourly rather than daily.
Content and SERP research
People Also Ask arrives with the answer text and the source page, and related searches are the most consistently present block Brave has. That is a question list and a topic map for a brief, from one Deep Search call.
Dataset and media collection
Image and video search return roughly 50 rows a call with dimensions, durations, embed URLs and numeric view counts. The same eight image keys and eleven video keys arrive on every engine, so a collector written for Brave runs unchanged against the rest.
Cost
What Brave results cost, and what they cost elsewhere
Brave's own Search API is metered, with a monthly credit rather than a standing free allowance. Here is that published rate next to ours, and what a month of Brave web search works out at on our tiers.
| Provider | Cost per 1,000 web searches | Free to start |
|---|---|---|
| Serpent API | $0.60 Default · $0.06 Growth · $0.03 Scale | free calls, any endpoint |
| Brave Search API | $5.00 (Search plan, published rate) | $5 of credit each month, no standing free tier |
Brave's figures are its own published Search plan rate and monthly credit, read from brave.com/search/api on 7 September 2026; Brave's Enterprise plan is custom-priced and not published, so it is not in the table. Our Growth tier unlocks at a single $100 deposit and Scale at $500, and the tier locks to your largest single deposit. Prices change — re-check both before you budget.
One call that returns nothing at all is refunded in full. A call that returns fewer results than you asked for is not refunded — instead it tells you, in meta.partialResults, so you always know what you paid for. Quick Search is billed one call, one charge, whatever depth you request.
FAQ
Brave Search API Questions
engine=brave and read the same result keys you would read on any other engine.
include_aio=true to a Deep Search call on engine=brave from a paid account. The digest comes back as results.aiOverview with a text field, and metadata.hasAiOverview tells you whether this response actually carried one. It is opt-in: without the parameter, aiOverview is null. Brave's digest carries no citation links of its own, so the sources array on this engine comes back empty. include_aio is not read on Quick Search.
num up to 100 on both Quick and Deep, and Brave's result pages carry roughly 10–20 organic results each. News is capped at num=50 and Brave has been measured returning about 29 articles. Images and videos have been measured at about 50 per call on Brave. num is a ceiling, not a promise: when a call comes back short, meta.partialResults says so rather than the response pretending it delivered.
engine=brave, Deep Search fills ads, People Also Ask with answers and source links, related searches, inline videos, rich snippets, and — where the page carries them — a knowledge panel and a local pack. The AI digest is opt-in with include_aio=true. Every results key is present on every engine whether or not the page carried that block, so an absent block is an empty value, never a missing key. The block-by-block table above says what to expect from each one.
country parameter accepts 112 codes — call GET /api/countries for the current list. The language parameter takes a 2-letter ISO 639-1 code, and language coverage is at its broadest on Brave. Brave also honours safe=off|moderate|strict and a freshness filter on web, news and video searches. Two Brave-specific notes worth knowing before you build: Brave's narrowest time window is the past day, so freshness=h narrows no further than freshness=d on this engine; and on /api/images Brave accepts language but not the size, type, colour, aspect, licence or time filters that the other engines take.
pixel_position is a Deep Search beta on engine=google, yahoo, bing and ddg. A Brave response carries no pixel_position or pixel_box fields, so use one of those four engines when you need on-page geometry — see the pixel position spec. Every other Deep Search parameter behaves the same way on Brave as it does everywhere else.
Start using the Brave Search API
free calls apply to web, news, image and video endpoints alike. Brave search data from $0.03 per 1,000 calls. No credit card required to start.
Try for Free

