GPT Researcher retriever
Two variables run it on SpecStream.
GPT Researcher reads its search provider from the RETRIEVER variable, and two retrievers take an address: searx reads SEARX_URL and serper reads SERPER_API_BASE. SpecStream answers both.
Set RETRIEVER=searx and SEARX_URL=https://api.specstream.ai/searxng/YOUR_KEY. Or keep RETRIEVER=serper and set SERPER_API_BASE=https://api.specstream.ai/serper with your key in SERPER_API_KEY.
SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks, at $5 per 1,000 searches. A new account gets $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 2,000 searches.
The retrievers GPT Researcher offers, from each company's own pages on Nov 10, 2026
| SpecStream | Tavily | Serper | Bing | ||
|---|---|---|---|---|---|
| RETRIEVER and address | searx with SEARX_URL, or serper with SERPER_API_BASE, both pointed at api.specstream.ai | tavily, the default. The address is fixed in GPT Researcher's code at api.tavily.com/search | serper. SERPER_API_BASE defaults to https://google.serper.dev | bing. The address is fixed in GPT Researcher's code at api.bing.microsoft.com/v7.0/search | google. The address is fixed in GPT Researcher's code at www.googleapis.com/customsearch/v1 |
| Open to a new account | Yes. Create a key and start with $10 of credit, no card | Yes, with 1,000 free credits every month | Yes, with 2,500 free queries and no credit card | No. Microsoft retired the Bing Search APIs on August 11, 2025 and closed sign up | No. The Custom Search JSON API is closed to new customers |
| Price per 1,000 searches | $5, with up to 10 results a search | $0.008 a credit on pay as you go. A basic search is 1 credit and an advanced search 2 | $1.00 per 1,000 in the pack of 50,000 credits | Microsoft points customers to Grounding with Bing Search, at $14 per 1,000 transactions | $5 per 1,000 queries after 100 free queries a day, for existing customers only |
| Limit | No daily limit. Up to 8,800 searches a minute on one account | On a monthly plan, requests stop when the month's credits run out | 300 queries per second on the largest pack | Grounding with Bing Search allows 150 transactions per second | 10,000 queries a day |
| How long it lasts | Credit you top up never expires | Credits reset on the first day of each month | Credits are valid for 6 months | Existing instances of the Bing Search APIs were decommissioned | Existing customers have until January 1, 2027 |
| 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, 978 correct | Tavily's search. Its own post reports 97.6% on SimpleQA | Serper's search, bought in credit packs from 50,000 credits | Grounding with Bing Search answers inside Azure AI Agents, not at the address GPT Researcher calls | The Programmable Search Engine you configured |
Why GPT Researcher users run it on SpecStream
Two variables, and the code stays as it is
GPT Researcher's searx retriever adds a / and search to SEARX_URL, asks for format=json and reads results[] with url and content. Its serper retriever posts to SERPER_API_BASE plus /search with the key in X-API-KEY and reads organic[] with link and snippet. SpecStream answers both calls in those shapes.
# GPT Researcher .env: the SearXNG retriever
RETRIEVER=searx
SEARX_URL=https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY
# or the Serper retriever
RETRIEVER=serper
SERPER_API_BASE=https://api.specstream.ai/serper
SERPER_API_KEY=<YOUR_SPECSTREAM_KEY>These are the calls each retriever sends:
# What the searx retriever sends: it adds /search to SEARX_URL
curl -H "Accept: application/json" \
"https://api.specstream.ai/searxng/$SPECSTREAM_API_KEY/search?q=state+of+solid+state+batteries+2026&format=json"
# What the serper retriever sends: it adds /search to SERPER_API_BASE
curl -X POST https://api.specstream.ai/serper/search \
-H "X-API-KEY: $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"q": "state of solid state batteries 2026", "num": 10}'The reply your retriever already parses
The Serper route returns organic[] with title, link, snippet and position, as Serper does, so GPT Researcher's parser reads it unchanged. The same call from Python:
import os, requests
reply = requests.post(
"https://api.specstream.ai/serper/search",
headers={"X-API-KEY": os.environ["SPECSTREAM_API_KEY"]},
json={"q": "state of solid state batteries 2026", "num": 10},
).json()
for row in reply["organic"]:
print(row["position"], row["title"], row["link"])$5 per 1,000 searches, with no plan to buy
A search of up to 10 results costs $0.005, and each started block of 10 more results adds $0.006. The SearXNG route always asks for 10 results, at $0.005. A call stopped by a 429 charges nothing, and credit you top up never expires.
Tavily's monthly credits stop requests when they run out. A SpecStream balance has no monthly reset and no daily limit, and one account takes up to 8,800 searches a minute.
The most accurate web search API in the world
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.
About one second a search, measured under load
Every drop-in route runs on the fast search. On November 9, 2026 production took 1, 5, 10 and 20 searches a second through it and answered 718 of 720. The median was 0.82 s at 1 search a second and 1.07 s at 20 a second, and the 95th percentile stayed between 1.09 and 1.73 s. One account can send up to 8,800 searches a minute; a call over that gets a 429 with Retry-After and is not charged.
You decide what is kept, on each key
Give GPT Researcher a key with zero_retention and a search made with it keeps no request text and no answer after the reply. It is not in the history and its log lines carry neither. The charge keeps the account, the key, the request ID, the price and the time. 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 takes a request in plain words and returns every match on the live web as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value.
The other retrievers in GPT Researcher, and what each costs
Tavily
GPT Researcher's default retriever, 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. Its address is fixed in GPT Researcher's code. With RETRIEVER=searx and SpecStream, a search costs $0.005 from a balance that never resets.
Serper
Search sold in credit packs: $1.00 per 1,000 in the pack of 50,000, with credits valid for 6 months and 2,500 free queries to start. Keep RETRIEVER=serper and set SERPER_API_BASE to https://api.specstream.ai/serper: the same retriever reads the live web, with top-up credit that never expires.
Bing
Microsoft retired the Bing Search APIs on August 11, 2025, and GPT Researcher's bing retriever still calls that address. Microsoft's replacement, Grounding with Bing Search, costs $14 per 1,000 transactions inside Azure AI Agents. SpecStream answers GPT Researcher at $5 per 1,000 through searx or serper.
The google retriever calls the Custom Search JSON API, which is closed to new customers and ends for existing customers on January 1, 2027. It costs $5 per 1,000 queries and stops at 10,000 a day. SpecStream costs the same $5 per 1,000 with no daily limit.
Exa
A search API priced at $7 per 1,000 requests for auto and fast search. SpecStream costs $5 per 1,000 searches and scores 64.0 item F1 on all 200 WideSearch tasks.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to run GPT Researcher on 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. Set spend_cap_cents on the key to cap what a long research run can spend.
2. In GPT Researcher's .env, set the retriever and its address.
RETRIEVER=searx
SEARX_URL=https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY3. Check the key from a terminal with the call the retriever sends. A 200 with results means GPT Researcher gets the same.
curl "https://api.specstream.ai/searxng/$SPECSTREAM_API_KEY/search?q=test&format=json"4. Run a research task as you do today. Each search shows up in your SpecStream request log with its price.
Frequently asked questions
Something we didn't answer? Talk to a human
How do I change the retriever in GPT Researcher?
RETRIEVER, in .env. For SpecStream, set RETRIEVER=searx with SEARX_URL=https://api.specstream.ai/searxng/YOUR_KEY, or RETRIEVER=serper with SERPER_API_BASE=https://api.specstream.ai/serper.What is GPT Researcher's default retriever?
RETRIEVER to searx or serper and pointing it at SpecStream costs $0.005 a search.How do I use SearXNG with GPT Researcher without hosting it?
SEARX_URL=https://api.specstream.ai/searxng/YOUR_KEY and RETRIEVER=searx. SpecStream answers in SearXNG's JSON at $0.005 a search, so there is no instance to run and no JSON format to turn on.Can GPT Researcher's Serper retriever use another base URL?
SERPER_API_BASE, which defaults to https://google.serper.dev. Set it to https://api.specstream.ai/serper and send the SpecStream key in SERPER_API_KEY; the reply keeps Serper's organic[] shape.Does the Bing retriever in GPT Researcher still work?
bing retriever calls that address. Use searx or serper pointed at SpecStream.How much does GPT Researcher cost to run on SpecStream?
429 is not charged.Sources
SpecStream wrote this page. GPT Researcher's settings come from its source on GitHub, and each provider's figure from that company's own page.
- GPT Researcher searx retrievergithub.com/assafelovic/gpt-researcher/blob/main/gpt_researcher/retrievers/searx/searx.py, read Nov 10, 2026
- GPT Researcher serper retrievergithub.com/assafelovic/gpt-researcher/blob/main/gpt_researcher/retrievers/serper/serper.py, read Nov 10, 2026
- GPT Researcher tavily retrievergithub.com/assafelovic/gpt-researcher/blob/main/gpt_researcher/retrievers/tavily/tavily_search.py, read Nov 10, 2026
- GPT Researcher bing retrievergithub.com/assafelovic/gpt-researcher/blob/main/gpt_researcher/retrievers/bing/bing.py, read Nov 10, 2026
- GPT Researcher google retrievergithub.com/assafelovic/gpt-researcher/blob/main/gpt_researcher/retrievers/google/google.py, read Nov 10, 2026
- GPT Researcher default configgithub.com/assafelovic/gpt-researcher/blob/main/gpt_researcher/config/variables/default.py, read Nov 10, 2026
- GPT Researcher search engines docsdocs.gptr.dev/docs/gpt-researcher/search-engines, read Nov 10, 2026
- Google Custom Search JSON API overviewdevelopers.google.com/custom-search/v1/overview, read Nov 10, 2026
- Microsoft, Bing Search API retirementlearn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement, read Nov 10, 2026
- Grounding with Bing Search pricingmicrosoft.com/en-us/bing/apis/grounding-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
- Serperserper.dev/, read Nov 10, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, 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




