Brave Search API Key: Get One, Or Search Without One
How to get a Brave Search API key, what the free credits cover, and how to run web search from your agent with one key and no per-vendor signup.

Search the web from your agent without signing up for a Brave key. Paste this into your agent:
Set up https://monid.ai/SKILL.md, and then use Monid to search the web for "brave search api key", and give me a table with position, title, URL and snippet for the top results, and say which one is Brave's own page.
One prompt runs a web search. 1 min setup · 3-8 hrs saved.
You want an API key for web search: to feed an agent, a retrieval index or a script. Brave's key is the one people look for first, and it takes a few minutes to get, a card included. This guide covers how to get it, what the free credits and the storage clause mean, and the other route, a web search call from your agent with no key per vendor. We ran four endpoints on 2026-10-16, so the fields and prices below are what came back. It runs through Monid, the OpenRouter for agent tools: one key, one balance, every tool priced per call.
What is the easiest way to search the web through an API without a Brave key?
Monid. Install it once, add a key, and your agent calls a web search endpoint with a query and gets ranked results back as typed JSON, with no portal, no plan and no vendor account to set up.
- Pay for what you run. Each search is billed on its own. The TinyFish search endpoint costs $0.00 a call, the Context.dev endpoint $0.000253 a result and the Surf endpoint $0.006 a call (Verified 2026-10-16 on the web search tools page). Buy calls as you need them: no monthly plan and no minimum top-up. Discovery and inspection are free; only a run bills. The no-cost routes are compared in the free web search API guide.
- One install, every API. The same key and the same balance call every search endpoint and every other tool on Monid. Trying a second search provider is a second command, not a second account.
- Lives inside your agent. Install the CLI, add your key, run the prompt above, and the tools are there whenever your agent needs them, with nothing to keep running. Your agent reads
SKILL.mdand learns the rest, so setup is about a minute.
How do you get a Brave Search API key, and is it free?
You create an account on Brave's API site, pick a plan, add a card, and the dashboard issues a key that you send in a request header. The page we read on 2026-10-16 describes it as prepaid credits with no subscription, and says the card is requested to prevent abuse.
What does the free tier give you?
Each plan includes $5 in free credits every month, applied automatically; the page banner reads "Up to $20 in free calls every month". Past the credits (Verified 2026-10-16 on Brave's pricing page), the Search plan costs $5 per 1,000 requests at up to 50 queries per second, and the Answers plan costs $4 per 1,000 requests plus $5 per million input and output tokens at up to 2 queries per second. Search adds Goggles for custom reranking and filtering, alternate snippets and schema-enriched results. A Reddit thread from earlier this year, which came back in our search, is titled "PSA: Brave Search API no longer free": the credit is free, the plan is prepaid.
Can you get a key without a credit card?
The page says it asks for a card, so plan on adding one. The free credits mean that a small project can stay at $0 as long as it stays inside them (Verified 2026-10-16).
Can you store what the key returns?
Only on a plan that grants it. Brave's FAQ answers "Can I store results or use them to train models?" with "Yes, with a plan that includes storage rights." A chat that searches, answers and forgets does not need it. A retrieval index, a rank history and a monitoring archive all store, so pick the plan before you design the schema.
How do you run the same search from your agent with one key?
Install Monid, add your key, and run one command per search. The agent route has two commands, the human route has two, and a search is a third.
For agents
Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:
set up https://monid.ai/SKILL.md
It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.
For humans
npm install -g @monid-ai/cli
monid keys add -k <your-api-key> -l main
Find the endpoints, then read one schema
If you are unsure whether you need an index or a Google mirror, what a SERP API is and which kind you need sorts them first.
monid discover -q "web search results for an agent"
monid inspect -p context.dev -e /web/search
Both calls are free. The inspect output is where the price and the input schema come from: the Context.dev search takes a query of up to 500 characters, numResults from 10 to 100, includeDomains, excludeDomains, a freshness window of last_24_hours, last_week, last_month or last_year, and a two-letter country.
Search, with the window you meant
monid run -p context.dev -e /web/search -w -i '{
"query": "independent web index for retrieval",
"numResults": 20,
"freshness": "last_month",
"excludeDomains": ["reddit.com"]
}'
Read one result as Markdown
monid run -p context.dev -e /web/scrape/markdown -w \
--query '{"url": "https://example.com/article", "useMainContentOnly": true}'
Search and read are separate calls on purpose: you pay to read only the results you pick. A search result costs $0.000253 and a page read $0.002533 (Verified 2026-10-16), so reading ten pages for every search is ten times the cost of the search.
Or hand the whole job to an agent
Give this to your agent![]()
Set up https://monid.ai/SKILL.md, and then use Monid to search for recent writing on independent web indexes, keep only high relevance results from the last month, read the top five into markdown, and tell me which ones actually run their own crawl.Can you call the Brave Search API from Python yourself?
Yes, and it is a short script. Brave's own example is a GET to https://api.search.brave.com/res/v1/web/search with your key in an X-Subscription-Token header and the query in q:
import requests
response = requests.get(
"https://api.search.brave.com/res/v1/web/search",
headers={"X-Subscription-Token": "<BRAVE_SEARCH_API_KEY>"},
params={"q": "brave search api key", "count": 20, "country": "us", "search_lang": "en"},
).json()
The work is not in the call. It is in the key, the plan and the terms for Brave, and then again for every other engine you add, each with its own header, parameter names and response shape. If Brave is the only engine you will ever use, write the script and keep the key. If you want to compare two or three engines, or hand the job to an agent that picks one, the same lookups through Monid are one install and one key, and the response comes back as typed JSON whichever provider answered. Scraping search result pages with Playwright is the third route, and it is the one that breaks when the page changes.
What does a web search response look like, and what can you build with it?
Three shapes, one per provider, all ranked lists of URLs. We ran the query brave search api key against each on 2026-10-16.
TinyFish: position, title, snippet
Nine results in about 1.7 seconds, at no charge. Each row has position, title, url, site_name and snippet, and four of the nine rows also carry a date such as "Jul 9, 2026" or "8 months ago". The endpoint returns snippets only, no page text.
{ "position": 1, "site_name": "brave.com", "title": "Brave Search API", "url": "https://brave.com/search/api/", "snippet": "..." }
Context.dev: relevance bands
Ten results in about 1.5 seconds for $0.00253 (Verified 2026-10-16). Each row has url, title, description and a relevance band; three were high, six medium and one low. The markdown and highlights fields are present but empty, with the code NOT_REQUESTED, until you turn on markdownOptions.
Surf: title, URL, description and optional content
Five results in about 3 seconds for $0.006 (Verified 2026-10-16). Each row has title, url, description and content. By default content is an empty string. With include_content set to true, two results came back with 52,509 and 111,187 characters of page text, for the same $0.006. A meta object carries limit, offset, has_more and cached.
What you can build with it
- A retrieval index for an agent. Search, read the pages worth keeping and store the passages. This is the build that needs a storage grant if the source is Brave; a search endpoint billed per call has no plan to check, so check the terms of the provider you pick.
- A monitor for a term. Run the same query daily with
freshnessset tolast_weekand diff the URLs. Tracking Bing positions after the API shows how to keep a position over time. - A research step in an agent. Search, filter by relevance, read the top five. The prompt in the previous section is that loop.
What goes wrong when you pull search results into an agent?
Four things hide until you run more than one provider. All four showed up in our runs on 2026-10-16.
Why do two providers return the same five results?
Because they can share a source. TinyFish and Surf returned the same five URLs in the same order for the same query: Brave's page, the GitGuardian docs, the ScrapeGraphAI guide, the Apify actor and the Reddit thread. Context.dev returned a different order and a different set, with the ScrapeGraphAI guide first. Two providers agreeing is weaker evidence than it looks, so test the pair you plan to combine on your own queries before you treat the second one as a check on the first. The one-key Tavily comparison does the same exercise for another vendor.
Why is the first result the vendor's own page?
The query named Brave, so rank 1 was brave.com/search/api in both providers that agreed. A search for a product returns the product's marketing page first. The snippet is the vendor's claim, here an accuracy and cost comparison on its own benchmark. Keep your agent from quoting the first row as a neutral source, and use excludeDomains to drop the vendor's domain when you want the other voices.
Why is a content field empty?
Because you did not ask for it. The Surf content field was an empty string on the default call. Setting include_content to true filled it with 52,509 and 111,187 characters for two results. Page text of that size goes into your agent's context, so request it only for the results you will read.
What do you pay for the part you did not use?
The Context.dev search takes at least 10 results, so a call is never smaller than $0.00253 (Verified 2026-10-16). A hundred searches is $0.253 and a thousand is $2.53. The Surf call is $0.006 whether it returns 2 results or 100, so ask for the limit you need rather than the default of 20.
Which endpoint should I use for which job?
| Endpoint | What it does | Input | Returns | Billing (Verified 2026-10-16) |
|---|---|---|---|---|
tinyfish/search | Ranked web, news or paper search | query, domain_type, include_domains, page | position, title, url, site_name, snippet | Per call, $0.00 |
context.dev/web/search | Search with relevance bands and optional inline Markdown | query, numResults, freshness, country | url, title, description, relevance | Per result, $0.000253 |
surf/search/web | Search with optional page content | q, limit, site, include_content | title, url, description, content | Per call, $0.006 |
context.dev/web/scrape/markdown | Read one URL as Markdown | url, useMainContentOnly | Markdown plus page metadata | Per call, $0.002533 |
api.strale.io/x402/google-search | Google results as structured rows | query, country, language, num_results | Title, URL, snippet, position | Per call, $0.1188 |
Every row was inspected on 2026-10-16 and the prices are the live ones (Verified 2026-10-16). The first four were run; the Google search endpoint was inspected only. If you are weighing a hosted structured Google search against building one, buy versus build for structured Google search walks through it. Use TinyFish to find URLs, Context.dev when the relevance band helps you filter, Surf when you want the page text in the same call, and the scrape endpoint for a page you already chose.
When is another route a better fit?
You want Brave's own index. Brave's page says every result comes from its own crawl, with no fallback to Google or Bing. If an independent index is the reason you are here, get the Brave key. None of our runs tested which index each provider uses behind its endpoint; what to use after Bing's search API retired is the same decision for another vendor.
Your volume fits the free credits. $5 in credits every month (Verified 2026-10-16) is a real allowance for development and a small production load. Inside it, Brave costs nothing and you have one account to manage.
You want Goggles. Reranking and filtering results by rules you define is listed on Brave's Search plan, and none of the endpoints we ran lists an equivalent.
You need to store what comes back and want the terms in writing. Brave states the storage grant per plan in its FAQ. For any other provider, read its terms for the same clause before you build the index.
And the disclosure: we resell the endpoints in this post, and the case this page argues is the one where you want to try two search providers without two signups. We do not sell Brave.
Conclusion
To get a Brave Search API key, sign up on Brave's API site, add a card, pick a plan and send the key in the X-Subscription-Token header; the $5 of monthly credits covers light use, and result storage needs a plan that grants it. To search the web without a key per vendor, run a search endpoint through Monid: $0 on the TinyFish endpoint, $0.000253 a result on Context.dev and $0.006 a call on Surf (Verified 2026-10-16), one key, about a minute to set up, and ready inside your agent whenever it needs the web.
Two things matter more than the choice. Providers can return the same results, so a second engine confirms less than it seems to. And the field you ask for decides the cost: page text in Surf's content was 52,509 and 111,187 characters for two results, and the Context.dev search is never smaller than 10 results.
How we estimated the time saved: signing up for a search provider, adding a card, finding the key and reading its plan and storage terms is roughly 1 to 2 hours each, and writing the glue for each response shape another 30 to 60 minutes. Two or three providers is 3 to 8 hours. The 1 minute is the install, key and first call once you already have a Monid key.
Free next step: run monid discover -q "web search results for an agent", then monid inspect the top two and read the price and the schema. Both are free, and the TinyFish search costs nothing to run. Start at monid.ai.
FAQ
Is the Brave Search API free?
Partly: each plan includes $5 in free credits every month, applied automatically, and past that the Search plan is $5 per 1,000 requests, from Brave's pricing page read on 2026-10-16. Through Monid, the TinyFish search endpoint costs $0.00 a call (Verified 2026-10-16), with no plan to buy.
How do you get a Brave Search API key without a credit card?
You cannot, on the page we read: Brave says it asks for a card to prevent abuse and uses prepaid credits, not subscriptions. If you want to search without adding a card to a new vendor, Monid is the other route: one key and one balance, and the TinyFish search endpoint costs nothing per call.
Can you store results from the Brave Search API?
Yes, with a plan that includes storage rights; that is Brave's own answer in its FAQ. A search that answers and forgets needs no grant, while an index, a rank history or an archive of results does.
What is the best Brave Search API alternative?
It depends on the job. For URLs and snippets, the TinyFish endpoint; for a relevance band on each result, Context.dev; for page text in the same call, Surf with include_content. All three run through Monid on one key, so you can try each on your own queries for a few cents.
Does a Brave key work in an agent such as OpenClaw or over MCP?
The key is a header value, so any agent that can make an HTTP call can use it, and Brave publishes official skills for coding agents on GitHub. The other route is to let the agent install Monid and call a search endpoint itself, with no key to paste into its config.
Published August 2026.


