crewAI web search
One argument points SerperDevTool at SpecStream.
crewAI's SerperDevTool and BraveSearchTool take their address as a constructor argument, and SpecStream answers both. Each passed on November 10, 2026, run with crewai-tools, with only that argument and the key changed.
Pass SerperDevTool(base_url="https://api.specstream.ai/serper") or BraveSearchTool(search_url="https://api.specstream.ai/res/v1/web/search"), and put your SpecStream key in SERPER_API_KEY or BRAVE_API_KEY. The crew keeps its tool names.
SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and costs $5 per 1,000 searches, with no daily limit. A new account gets $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 2,000 searches.
crewAI search tools and SpecStream, from each company's own pages and crewAI's source on Nov 10, 2026
| SpecStream | Serper | Brave Search API | SerpApi | Tavily | |
|---|---|---|---|---|---|
| crewAI tool and setting | SerperDevTool(base_url="https://api.specstream.ai/serper") or BraveSearchTool(search_url="https://api.specstream.ai/res/v1/web/search"), with the SpecStream key | SerperDevTool, base_url https://google.serper.dev by default, key in SERPER_API_KEY | BraveSearchTool, search_url https://api.search.brave.com/res/v1/web/search by default, key in BRAVE_API_KEY | SerpApiGoogleSearchTool and the other SerpApi tools, with the address fixed in the code | TavilySearchTool, which builds TavilyClient with the key alone |
| Start today | $10 of credit, no card, which covers 2,000 searches | 2,500 free queries, no card | $5 in free credits every month | Starter plan at $25 a month for 1,000 searches | 1,000 free credits every month |
| Price per 1,000 searches | $5, with up to 10 results a search | $1.00 on the 50k pack, down to $0.30 on the 12.5M pack | $5 per 1,000 requests | $25 a month for 1,000 searches on Starter | $0.008 a credit on pay as you go. A basic search is 1 credit |
| How long it lasts | Credit you buy never expires | Credits are valid for 6 months | Prepaid credits | Month to month | Credits reset on the first day of each month |
| Limit | No daily limit. Up to 26,666 searches a minute on one account | 50 queries per second on the smallest pack, 300 on the largest | Up to 50 queries per second | 200 successful searches per hour on Starter | On a monthly plan, requests stop when the month's credits run out |
| What answers the search | The whole live web, read at the moment of the call. 97.9 F-score on all 1,000 SimpleQA Verified questions | Google, queried live on each call | Brave's index. Its own page reports 85.3% on FreshQA | Only successful searches count toward the month | Tavily's search. Its own post reports 97.6% on SimpleQA |
Why crewAI builders put SpecStream behind their search tool
One argument per tool
SerperDevTool posts to f"{base_url}/{search_type}", so base_url takes the address without /search. Before and after:
import os
from crewai_tools import SerperDevTool
os.environ["SERPER_API_KEY"] = "<your Serper key>"
search = SerperDevTool() # calls https://google.serper.dev/searchimport os
from crewai_tools import SerperDevTool
os.environ["SERPER_API_KEY"] = os.environ["SPECSTREAM_API_KEY"]
search = SerperDevTool(base_url="https://api.specstream.ai/serper")BraveSearchTool sends its GET to search_url as it is, so that argument takes the whole search address. Before and after:
import os
from crewai_tools import BraveSearchTool
os.environ["BRAVE_API_KEY"] = "<your Brave key>"
search = BraveSearchTool() # calls https://api.search.brave.com/res/v1/web/searchimport os
from crewai_tools import BraveSearchTool
os.environ["BRAVE_API_KEY"] = os.environ["SPECSTREAM_API_KEY"]
search = BraveSearchTool(search_url="https://api.specstream.ai/res/v1/web/search")The same request and the same JSON
SerperDevTool sends {"q": ..., "num": 10} with the key in X-API-KEY and reads organic[], taking title and link as required fields and snippet and position when present. SpecStream's Serper route returns organic[] with all four. BraveSearchTool sends count 10 with the key in X-Subscription-Token and reads web.results[], which SpecStream's Brave route returns with title, url and description.
Both tools ask for 10 results by default, so each search is $0.005. The Serper call from Python:
import os, requests
reply = requests.post(
"https://api.specstream.ai/serper/search",
headers={"X-API-KEY": os.environ["SPECSTREAM_API_KEY"], "Content-Type": "application/json"},
json={"q": "open source vector databases", "num": 10},
).json()
for result in reply["organic"]:
print(result["position"], result["title"], result["link"])Every parameter and field of each route is in the Serper guide and the Brave guide.
$5 per 1,000 searches, with no daily limit
A search of up to 10 results costs $0.005. There is no monthly plan and no daily limit. Credit you buy never expires, and a new account starts with $10 of credit, which covers 2,000 searches. A call stopped by a 429 charges nothing.
The most accurate web search API, in about one second
On SimpleQA Verified the SpecStream Search API scores 97.9 F-score on all 1,000 official questions, 978 of them correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks. The Extract API scores 0.908 F1 on WCXB. Every score and its method is on the benchmarks page.
Every drop-in call runs the fast search. Measured on production on November 9, 2026, its median was 0.82 s at 1 search a second and 1.07 s at 20 a second, the 95th percentile stayed between 1.09 and 1.73 s, and it answered 718 of 720. One account can send up to 26,666 searches a minute.
You decide what is kept, on each key
Create the key with zero_retention and a search made with it keeps no request text and no answer after the reply. spend_cap_cents is the most the key can spend.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "production", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'Search, pages and rows on one key
The same key reads up to 20 pages or documents a call with the Extract API at $0.80 per 1,000 pages, and a page with no text is not charged. Deep Search returns every match for a request in plain words as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value. The most a run can cost is approved before it starts.
Other search tools in crewAI
Serper
A Google search API sold in credit packs, from $1.00 per 1,000 on the 50k pack to $0.30 on the 12.5M pack, with credits valid for 6 months. SerperDevTool calls it by default. SpecStream answers the same tool at the same address shape, searches the whole live web, and its credit never expires.
Brave Search API
$5 per 1,000 requests with $5 in free credits a month and up to 50 queries per second. BraveSearchTool calls it by default. SpecStream answers that tool at the same $5 per 1,000, with 97.9 F-score on SimpleQA Verified.
SerpApi
Plans start at $25 a month for 1,000 searches on Starter, with 200 successful searches per hour. crewAI's SerpApi tools fix their address in the code, so they cannot be pointed elsewhere. SerperDevTool on SpecStream costs $5 per 1,000 with no monthly plan.
Tavily
Search billed in credits at $0.008 each on pay as you go, with 1,000 free credits a month that reset on the first day of each month. TavilySearchTool passes only the key to Tavily's client. SpecStream charges $0.005 a search behind the Serper or Brave tool.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move crewAI web search to SpecStream
1. Create a key under Agents & API in the SpecStream workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.
2. Check the key with the call each tool sends. A 200 with organic or web.results means the tool gets the same.
curl -X POST https://api.specstream.ai/serper/search \
-H "X-API-KEY: $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"q": "test", "num": 10}'
curl -H "X-Subscription-Token: $SPECSTREAM_API_KEY" \
"https://api.specstream.ai/res/v1/web/search?q=test&count=10"3. Where the crew builds its search tool, pass the address and set the tool's key variable to the SpecStream key:
import os
from crewai_tools import SerperDevTool
os.environ["SERPER_API_KEY"] = os.environ["SPECSTREAM_API_KEY"]
search = SerperDevTool(base_url="https://api.specstream.ai/serper")4. Run the crew. Each search shows in your SpecStream request log with its price.
Frequently asked questions
Something we didn't answer? Talk to a human
What is the best web search tool for crewAI?
SerperDevTool or BraveSearchTool, at $5 per 1,000 searches with no daily limit and 97.9 F-score on all 1,000 SimpleQA Verified questions. One constructor argument moves the tool.What value does SerperDevTool base_url take?
https://api.specstream.ai/serper, with no /search: the tool adds /search itself. The key goes in SERPER_API_KEY, which the tool sends as X-API-KEY.How do I point crewAI's Brave search tool at SpecStream?
search_url="https://api.specstream.ai/res/v1/web/search" to BraveSearchTool and put your SpecStream key in BRAVE_API_KEY. The tool asks for 10 results, so each search is $0.005.What is a cheaper Serper alternative for crewAI?
Can crewAI's SerpApi tools use SpecStream?
SerperDevTool with base_url="https://api.specstream.ai/serper", at $5 per 1,000 searches.Does the crew need new code?
base_url or search_url and the key change. On November 10, 2026 both tools ran on SpecStream with crewai-tools.Sources
SpecStream wrote this page. crewAI's arguments come from its source on GitHub, and each provider's figure from that company's own page.
- crewAI SerperDevTool sourceraw.githubusercontent.com/crewAIInc/crewAI/main/lib/crewai-tools/src/crewai_tools/tools/serper_dev_tool/serper_dev_tool.py, read Nov 10, 2026
- crewAI BraveSearchTool sourceraw.githubusercontent.com/crewAIInc/crewAI/main/lib/crewai-tools/src/crewai_tools/tools/brave_search_tool/brave_search_tool.py, read Nov 10, 2026
- crewAI TavilySearchTool sourceraw.githubusercontent.com/crewAIInc/crewAI/main/lib/crewai-tools/src/crewai_tools/tools/tavily_search_tool/tavily_search_tool.py, read Nov 10, 2026
- crewAI SerpApi base tool sourceraw.githubusercontent.com/crewAIInc/crewAI/main/lib/crewai-tools/src/crewai_tools/tools/serpapi_tool/serpapi_base_tool.py, read Nov 10, 2026
- Serperserper.dev/, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- SerpApi pricingserpapi.com/pricing, read Nov 10, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 10, 2026
- Tavily pricingtavily.com/pricing, read Nov 10, 2026
- Tavily, SealQA and SimpleQA posttavily.com/blog/tavily-ranks-1-on-sealqa-and-simpleqa, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




