QuantDinger web search without a SearXNG server
One setting.
QuantDinger's SearXNG provider works without a SearXNG server: SpecStream answers SearXNG's JSON search at its own address. QuantDinger's own SearXNGSearchProvider read 10 results from it on November 10, 2026.
Set SEARCH_SEARXNG_BASE_URL=https://api.specstream.ai/searxng/<key> in QuantDinger's .env, with your SpecStream key in the address. QuantDinger adds /search and sends its usual call.
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.
QuantDinger web search providers and SpecStream, from each company's own pages and QuantDinger's source on Nov 10, 2026
| SpecStream | SearXNG (self-hosted) | Tavily | SerpApi | Google Custom Search | |
|---|---|---|---|---|---|
| QuantDinger setting | SEARCH_SEARXNG_BASE_URL=https://api.specstream.ai/searxng/<key> | SEARCH_SEARXNG_BASE_URL set to your instance's address | TAVILY_API_KEYS. SEARCH_PROVIDER=tavily is the default | SERPAPI_KEYS | SEARCH_GOOGLE_API_KEY and SEARCH_GOOGLE_CX. The address https://www.googleapis.com/customsearch/v1 is fixed in the code |
| What you run | Nothing. SpecStream answers at api.specstream.ai | Your own instance on Docker or Podman, with the json format turned on and a Valkey database for its limiter | Nothing. Tavily's API | Nothing. SerpApi's API | Nothing, but a new project gets no key: closed to new customers, and existing customers have until January 1, 2027 |
| Price | $5 per 1,000 searches of up to 10 results | No API price. You pay to host the instance | $0.008 a credit on pay as you go, 1 credit a basic search, so $8 per 1,000 | $25 a month for 1,000 searches on Starter | $5 per 1,000 queries after 100 free a day, for existing customers only |
| Free start | $10 of credit, no card, which covers 2,000 searches | Free software you install | 1,000 credits a month, no card | 250 searches a month | 100 queries a day |
| Limit | No limit per key and no daily limit. A busy call gets a 429 with Retry-After and is not charged | What your instance and its upstream engines allow. Engines can answer a public instance with CAPTCHAs or ban its IP address | On a monthly plan, requests stop when the month's credits run out | 200 successful searches an hour on Starter | 10,000 queries a day |
| What comes back to QuantDinger | SearXNG's results[] with title, url and content, the fields the provider reads | SearXNG's results[] from the engines it queries | Tavily's own JSON, read by QuantDinger's Tavily provider | SerpApi's own JSON, read by QuantDinger's SerpAPI provider | The URL, title and text snippets of each result, in Google's own format |
| 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 | The external search services your instance passes the query to | Tavily's search API | Google results, through SerpApi | The Programmable Search Engine you configured |
Why QuantDinger users point its SearXNG provider at SpecStream
The change is one line in .env
QuantDinger, an "Open-Source AI Quant Research Platform", searches the web for its research agents. Its SearXNG provider is written for a "Self-hosted SearXNG metasearch provider", reads its address from SEARCH_SEARXNG_BASE_URL and adds /search. Before and after, in .env:
# .env, before: your own SearXNG instance
SEARCH_PROVIDER=searxng
SEARCH_SEARXNG_BASE_URL=http://localhost:8080# .env, after: no instance to run
SEARCH_PROVIDER=searxng
SEARCH_SEARXNG_BASE_URL=https://api.specstream.ai/searxng/<your SpecStream key>QuantDinger asks the provider named in SEARCH_PROVIDER first, then falls back in its own order. The provider sends no key of its own, so the SpecStream key goes in the path of the address, and SpecStream reads it from there.
A key in an address, made for this one use
A key in an address can end up in logs, such as a proxy's access log or a debug line. So make a key for QuantDinger alone under Agents & API in the workspace, with a spending limit. If the address leaks, revoke that key: a revoked key gets a 401 from then on.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "quantdinger", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 2000, "zero_retention": true}'spend_cap_cents is the most the key can spend, here $20, and with zero_retention a search made with it keeps no request text and no answer after the reply.
SearXNG's JSON, so the provider's parser reads it
QuantDinger sends q, format=json and pageno=1, with categories, engines and language from its settings. SpecStream reads q and pageno, answers format=json, and accepts the other three with no error. The reply has results[] with title, url and content, which the provider turns into its own results.
The call QuantDinger makes, in Python with requests:
import os, requests
key = os.environ["SPECSTREAM_API_KEY"]
reply = requests.get(
f"https://api.specstream.ai/searxng/{key}/search",
params={"q": "NVDA earnings guidance", "format": "json", "pageno": 1, "categories": "general"},
).json()
for result in reply["results"]:
print(result["title"], result["url"], result["content"])Every parameter and field of the route is in the SearXNG migration guide, and how SpecStream compares with running SearXNG is on the SearXNG page.
$5 per 1,000 searches, with no daily limit
QuantDinger asks for page 1, a search of 10 results at $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
The SpecStream Search API scores 97.9 F-score on all 1,000 official SimpleQA Verified questions, with 978 correct, and 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. The Extract API scores 0.908 F1 on WCXB. Each score and its method is on the benchmarks page.
Every drop-in call runs the fast search. 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, its 95th percentile stayed between 1.09 and 1.73 s, and it answered 718 of 720 calls.
Search, pages and rows on one key
The same account 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, and the most a run can cost is approved before it starts.
Other web search providers in QuantDinger
Your own SearXNG instance
The same provider pointed at a server you run on Docker or Podman, with the json format turned on and a Valkey database for the limiter. Its results are those of the engines it queries. SpecStream answers the same call with no server, at $0.005 a search.
Tavily
QuantDinger's default provider, with keys in TAVILY_API_KEYS. Tavily gives 1,000 credits a month, then bills $0.008 a credit on pay as you go, 1 credit a basic search. SpecStream costs $0.005 a search, and its credit never expires.
SerpApi
Keys go in SERPAPI_KEYS. SerpApi's Starter plan is $25 a month for 1,000 searches and 200 searches an hour, after 250 free a month. SpecStream has no plan and no hourly cap, at $5 per 1,000.
Google Custom Search, until January 1, 2027
QuantDinger calls https://www.googleapis.com/customsearch/v1 with SEARCH_GOOGLE_API_KEY and SEARCH_GOOGLE_CX, and the address cannot be changed. Google closed the API to new customers and ends it on January 1, 2027. SpecStream keeps QuantDinger searching after that date through the SearXNG setting.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to give QuantDinger web search with SpecStream
1. Create a key for QuantDinger under Agents & API in the SpecStream workspace, with a spending limit. A new account gets $10 of credit, no card, which covers 2,000 searches.
2. Check the address with the call QuantDinger will send. A 200 with results means QuantDinger gets the same.
curl "https://api.specstream.ai/searxng/$SPECSTREAM_API_KEY/search?q=test&format=json&pageno=1"3. Set the provider and the address in QuantDinger's .env:
SEARCH_PROVIDER=searxng
SEARCH_SEARXNG_BASE_URL=https://api.specstream.ai/searxng/<your SpecStream key>4. Restart the backend and run a research task. Each search shows in your SpecStream request log with its price.
Frequently asked questions
Something we didn't answer? Talk to a human
How do I set up web search in QuantDinger?
SEARCH_SEARXNG_BASE_URL=https://api.specstream.ai/searxng/<key> and SEARCH_PROVIDER=searxng in .env. QuantDinger's own SearXNG provider read 10 results this way on November 10, 2026, with no SearXNG server running.Do I need to run a SearXNG instance for QuantDinger?
https://api.specstream.ai/searxng, so the provider gets results at $0.005 a search with nothing to install.Where does the SpecStream key go in SEARCH_SEARXNG_BASE_URL?
/searxng/, because QuantDinger's SearXNG provider sends no key of its own. Make a key for this one use with a spending limit, and revoke it if the address ever leaks.What is the best search provider for QuantDinger?
How much does QuantDinger web search cost with SpecStream?
Can QuantDinger keep using Google Custom Search?
Sources
SpecStream wrote this page. QuantDinger's settings come from its source and README on GitHub, and each provider's figure from that company's own page.
- QuantDinger READMEraw.githubusercontent.com/OpenByteInc/QuantDinger/main/README.md, read Nov 10, 2026
- QuantDinger, app/services/search.pyraw.githubusercontent.com/OpenByteInc/QuantDinger/main/backend_api_python/app/services/search.py, read Nov 10, 2026
- QuantDinger, app/config/data_sources.pyraw.githubusercontent.com/OpenByteInc/QuantDinger/main/backend_api_python/app/config/data_sources.py, read Nov 10, 2026
- QuantDinger, env.exampleraw.githubusercontent.com/OpenByteInc/QuantDinger/main/backend_api_python/env.example, read Nov 10, 2026
- SearXNG Search APIdocs.searxng.org/dev/search_api.html, read Nov 10, 2026
- SearXNG, own instancedocs.searxng.org/own-instance.html, read Nov 10, 2026
- SearXNG, Docker installationdocs.searxng.org/admin/installation-docker.html, read Nov 10, 2026
- SearXNG, limiterdocs.searxng.org/admin/searx.limiter.html, read Nov 10, 2026
- Tavily pricingtavily.com/pricing, read Nov 10, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 10, 2026
- SerpApi pricingserpapi.com/pricing, read Nov 10, 2026
- Google Custom Search JSON API overviewdevelopers.google.com/custom-search/v1/overview, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




