Web Search for AI
Version 12 published Results

Live web search for agents with richer snippets and date metadata.
Strong search layer, but still provisional
Brave Search API looks like a strong pure-search option for agent retrieval: it put a supporting page in the top 3 for 59.6% of answerable queries, delivered the benchmark's best extraction score once `extra_snippets` was enabled, and returned published dates on every response with zero errors. The caveats are that this is still a single run, multi-source queries were weak, and the separate Answers API was not tested.
Explore Brave Search API in our public benchmarks.
2 published Results
Our detailed analysis of Brave Search API — features, performance, and real-world testing.
Feature tested: Live Web Retrieval
Result: Partial (59.6/100)
Verdict: Solid top-3 retrieval for ordinary web queries, but multi-source support was weak and the single-run figure is still provisional.
Expected behavior: Searches the live web for a plain query string and returns ranked results suitable for agent retrieval. In this run it was tested on the frozen ground-truth query set with `count=10` and `extra_snippets=true` in `ap-south-1`.
Test case: Text/code file → Text/code file
Input type: Text/code file
Input used: Input artifact (Text/code file): INPUT: Frozen ground-truth query set, same query string for every tool, top-k/count=10, live web search via `/res/v1/web/search`, run region `ap-south-1`. — QUERY-SET-ground-truth.csv
Observed output: Output artifact (Text/code file): Brave's same-query retrieval put a supporting page in the top 3 for 59.6% of answerable queries, with 38.3% top-1 and 66.0% top-10 across 47 answerable queries; 0 errors. — BRAVE-per-query-output.md
Input artifact: Input artifact (Text/code file): INPUT: Frozen ground-truth query set, same query string for every tool, top-k/count=10, live web search via `/res/v1/web/search`, run region `ap-south-1`. — QUERY-SET-ground-truth.csv
Output artifact: Output artifact (Text/code file): Brave's same-query retrieval put a supporting page in the top 3 for 59.6% of answerable queries, with 38.3% top-1 and 66.0% top-10 across 47 answerable queries; 0 errors. — BRAVE-per-query-output.md
What changed: Text/code file transformed into Text/code file
Why it matters / Conclusion: Good general retrieval, but the headline ranking still needs a stability rerun before treating it as final.
Searches the live web for a plain query string and returns ranked results suitable for agent retrieval. In this run it was tested on the frozen ground-truth query set with `count=10` and `extra_snippets=true` in `ap-south-1`.
Feature tested: Rich Result Excerpts
Result: Passed (2/2)
Verdict: Best-in-benchmark extraction quality once `extra_snippets` is turned on.
Expected behavior: Returns enough excerpt text to make answer-bearing passages usable without a second crawl. The benchmark notes that `extra_snippets=true` closes the gap between Brave's base descriptions and full-content tools on content-depth queries.
Test case: Text prompt → Text prompt
Input type: Text prompt
Input used: Input artifact (Text prompt): Input
Observed output: Output artifact (Text prompt): Output
Input artifact: Input artifact (Text prompt): Input
Output artifact: Output artifact (Text prompt): Output
What changed: Text prompt transformed into Text prompt
Why it matters / Conclusion: This is the main reason Brave is more usable than snippet-only search APIs for agent workflows.
Returns enough excerpt text to make answer-bearing passages usable without a second crawl. The benchmark notes that `extra_snippets=true` closes the gap between Brave's base descriptions and full-content tools on content-depth queries.
Feature tested: Conservative Unanswerable-Query Responses
Result: Partial
Verdict: Better than Serper on negative probes, but still a search API that never truly abstains.
Expected behavior: On the five unanswerable probes in this run, Brave generally stayed generic rather than inventing a specific date or number. It did not fabricate a Brave-specific answer on the hard probes, but because this is search-only, it never emits a true abstention.
Test case: Text prompt → Text/code file
Input type: Text prompt
Input used: Input artifact (Text prompt): Input
Observed output: Output artifact (Text/code file): Stays generic — general SOC2 audit-timeline content, no fabricated Serper-specific date. — BRAVE-raw-Q48.json
Input artifact: Input artifact (Text prompt): Input
Output artifact: Output artifact (Text/code file): Stays generic — general SOC2 audit-timeline content, no fabricated Serper-specific date. — BRAVE-raw-Q48.json
What changed: Text prompt transformed into Text/code file
Test case: Text prompt → Text/code file
Input type: Text prompt
Input used: Input artifact (Text prompt): Input
Observed output: Output artifact (Text/code file): Surfaces the same '$6.3M Est. ARR' figure seen in other tools, indicating a shared corpus artifact rather than a Brave-specific hallucination. — BRAVE-raw-Q49.json
Input artifact: Input artifact (Text prompt): Input
Output artifact: Output artifact (Text/code file): Surfaces the same '$6.3M Est. ARR' figure seen in other tools, indicating a shared corpus artifact rather than a Brave-specific hallucination. — BRAVE-raw-Q49.json
What changed: Text prompt transformed into Text/code file
Test case: Text prompt → Text/code file
Input type: Text prompt
Input used: Input artifact (Text prompt): Input
Observed output: Output artifact (Text/code file): Surfaces Exa's real '$5 per 1,000 requests' Pro-plan figure without misattributing it to Enterprise. — BRAVE-raw-Q50.json
Input artifact: Input artifact (Text prompt): Input
Output artifact: Output artifact (Text/code file): Surfaces Exa's real '$5 per 1,000 requests' Pro-plan figure without misattributing it to Enterprise. — BRAVE-raw-Q50.json
What changed: Text prompt transformed into Text/code file
Test case: Text prompt → Text/code file
Input type: Text prompt
Input used: Input artifact (Text prompt): Input
Observed output: Output artifact (Text/code file): Returns generic index-size-estimation content; no Olostep-specific number invented. — BRAVE-raw-Q51.json
Input artifact: Input artifact (Text prompt): Input
Output artifact: Output artifact (Text/code file): Returns generic index-size-estimation content; no Olostep-specific number invented. — BRAVE-raw-Q51.json
What changed: Text prompt transformed into Text/code file
Test case: Text prompt → Text/code file
Input type: Text prompt
Input used: Input artifact (Text prompt): Input
Observed output: Output artifact (Text/code file): Returns generic Linkup docs/marketing content; does not surface the 'billions of pages a day' claim. — BRAVE-raw-Q52.json
Input artifact: Input artifact (Text prompt): Input
Output artifact: Output artifact (Text/code file): Returns generic Linkup docs/marketing content; does not surface the 'billions of pages a day' claim. — BRAVE-raw-Q52.json
What changed: Text prompt transformed into Text/code file
Why it matters / Conclusion: For a search API, this is a solid non-fabricating result, but it is not a true abstaining answer mode.
On the five unanswerable probes in this run, Brave generally stayed generic rather than inventing a specific date or number. It did not fabricate a Brave-specific answer on the hard probes, but because this is search-only, it never emits a true abstention.
Search-only plan; separate Answers API was not tested.
The run recorded list pricing, not a billed invoice. The response body exposed no credits/cost field.
How the embed badge will look on your site

Copy this code to your website source
Discover more AI tools like Brave Search API to enhance your workflow.
If you are looking to build a custom web search integration, search result enrichment, or agent search system for your business or internal workflow, email us at contact@futuresmart.ai.
Found something inaccurate or missing? We try to keep our AI research accurate and useful. If you found outdated information, an issue, or have a suggestion, email us at collaborate@aidemos.com.