SearXNG hosted API in 2026
Its JSON at one address, $1 per 1,000.
A hosted SearXNG is still an instance you set up. Elestio manages one from $11 a month, and a Railway template deploys one with no authentication. On a stock instance, format=json returns 403 until json is added to its formats.
SpecStream answers SearXNG's JSON at https://api.specstream.ai/searxng/<key>, with nothing to deploy. Put that address where your app asks for the SearXNG URL and results[] comes back as before. Searches cost $1 per 1,000, and new accounts get $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 10,000 searches.
SpecStream and hosted SearXNG side by side
| SpecStream | Elestio managed SearXNG | Railway SearXNG template | |
|---|---|---|---|
| What you run | Nothing. One address, https://api.specstream.ai/searxng/<key> | A SearXNG instance on a dedicated virtual machine. Elestio handles installation, backups, monitoring and software and OS updates | One SearXNG service in your Railway project, from the template's image. Patch releases install in the nightly update window |
| JSON output | On for every key. format=json answers in SearXNG's shape: query, number_of_results and results[] with title, url and content | Off until you add json to the formats in settings.yml and restart. Until then a JSON request gets a 403 Forbidden | On. The template runs SearXNG with a JSON search API |
| Who can call it | Whoever holds the key. The key goes in the address, in key=, in X-API-Key, as a Bearer token or as the Basic password or user name | Anyone who reaches your HTTPS endpoint. SearXNG's limiter throttles clients it takes for scrapers, and an agent looks like one | Other services in the same Railway project, over its private network. SearXNG has no authentication, so with a public domain anyone with the URL can query it |
| Busy or blocked | When search is busy the route answers 429 with SearXNG's own error body and a Retry-After header, and nothing is charged | Upstream engines can rate limit or block the instance for a while. Elestio's guide sends you to the /stats page to find failing engines and turn them off | The rate limiter is off. Each engine request times out after 8 seconds, with one retry |
| Where results come from | SpecStream's search across several engines. When the first search finds fewer results than asked, it searches more engines and their next pages before it answers | The upstream engines the instance queries. Elestio's page puts SearXNG at more than 70 search services | General search on DuckDuckGo, Brave, Qwant, Wikipedia, Wikidata and Currency, plus developer, package and science engines |
| What a result holds | title, url and content in SearXNG's shape. The Extract API reads the full text of up to 20 pages a call, on the same key | title, url, content (the snippet) and engine | results, answers, infoboxes and suggestions |
| Price | $1 per 1,000 searches of up to 10 results. A call that returns no results costs nothing | From $11 a month for the instance, with unlimited usage | Railway usage for the service. The Hobby plan has a $5 minimum and includes $5 of monthly usage credits |
| Accuracy | 97.9 F-score on all 1,000 SimpleQA Verified questions (978 correct) and 64.0 item F1 on all 200 WideSearch tasks | SearXNG aggregates the results of the search services it queries | Each query goes to many engines and comes back as their combined results |
Why teams that want a hosted SearXNG choose SpecStream
Change one setting, keep the rest
# Before: a hosted instance
curl "https://your-searxng.example.io/search?q=self-hosted+vector+database&format=json"
# After
curl "https://api.specstream.ai/searxng/$SPECSTREAM_API_KEY/search?q=self-hosted+vector+database&format=json"The reply keeps SearXNG's keys, so the code that reads results[].url and results[].content runs as before. Where a setting takes the whole search address, give it https://api.specstream.ai/searxng/<key>/search. categories=images returns image results with img_src and thumbnail_src, and format=html returns SearXNG's own results page for apps that read HTML.
No instance, no settings.yml
On Elestio you still edit settings.yml to turn on JSON and restart the service, and you check /stats when engines start to fail. The Railway template ships with no authentication, so it stays on Railway's private network unless you open it to anyone with the URL. SpecStream is one address with a key, and the search behind it is ours to run.
Pay per search, not per server
A managed instance on Elestio starts at $11 a month whether your agent searches or not. On SpecStream, $11 pays for 11,000 searches of up to 10 results, and a call that returns no results costs nothing. Each key carries the spending limit you give it. A new account gets $10 of credit, no card, which covers 10,000 searches. Every rate is on the pricing page.
The most accurate web search API in the world
SpecStream scores 97.9 F-score on all 1,000 official SimpleQA Verified questions (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.
You decide what is kept
Zero retention is a field on each key. A search made with such a key keeps no request text and no answer after the reply. A key can also send its searches out only from our server in Madrid, in the EU, with eu_egress_only.
Search, pages and rows on one key
The Extract API reads up to 20 pages or documents a call at $0.80 per 1,000 pages, and a page with no text is not charged. Deep Search returns every match on the live web as structured rows at 5¢, 15¢ or $1 a row, with the most a run can cost quoted before it starts. Agents connect to https://api.specstream.ai/mcp.
Other ways to get a hosted SearXNG API
SpecStream
The live web data engine. It answers SearXNG's JSON at https://api.specstream.ai/searxng/<key> for $1 per 1,000 searches and scores 97.9 F-score on all 1,000 SimpleQA Verified questions. The Extract API costs $0.80 per 1,000 pages, and Deep Search returns every match as structured rows at 5¢, 15¢ or $1 a row.
Your own server
SearXNG's install guide needs a working Docker or Podman installation, and its limiter needs a Valkey database. Parallel's comparison puts the server at $5 to $20 a month, before the code that fetches and reads pages. SpecStream reads pages through the Extract API on the same key.
A public SearXNG instance
Free and open to everyone who has its URL. The SearXNG docs say many public instances have the JSON format disabled, and that public use can lead upstream engines to enforce CAPTCHAs or ban the instance's IP. SpecStream answers format=json on every key.
Parallel Search API
A search API with its own request shape: Turbo and Fast cost $1 per 1,000 requests, Basic and Advanced $5 per 1,000. Moving to it means new code. SpecStream answers the SearXNG request your app already sends, so the move is the address.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move to a hosted address
1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 10,000 searches.
2. Set the SearXNG address to https://api.specstream.ai/searxng/<key>, or https://api.specstream.ai/searxng/<key>/search where the setting takes the whole search address.
import os
import requests
BASE = "https://api.specstream.ai/searxng/" + os.environ["SPECSTREAM_API_KEY"] # was your instance URL
reply = requests.get(
BASE + "/search",
params={"q": "self-hosted vector database", "format": "json"},
).json()
for result in reply["results"]:
print(result["title"], result["url"], result["content"])3. Leave the rest. A call of up to 10 results is one search at $0.001. Every search is in your account's request log, and the key stops at the spending limit you set.
Hosted SearXNG questions
Something we didn't answer? Talk to a human
Is there a hosted SearXNG API?
https://api.specstream.ai/searxng/<key> for $1 per 1,000 searches, with no instance to deploy. Elestio and Railway host a SearXNG instance for you, which you still configure and keep running.How much does hosted SearXNG cost?
Why does my SearXNG instance return 403 for format=json?
json is not in the instance's formats. SearXNG returns 403 Forbidden for a format its settings do not enable. Add json under formats in the search: block of settings.yml and restart, or point your app at SpecStream, where JSON is on for every key.Can I use a public SearXNG instance as an API?
Which apps work with the SpecStream SearXNG address?
https://api.specstream.ai/searxng/<key> where the instance URL goes. Apps that read SearXNG's HTML page, such as Khoj, get it with format=html.Does SpecStream keep my searches?
Sources
SpecStream wrote this page. Each figure about another product comes from that company's own page, or the page named beside it, read on Nov 12, 2026.
- SpecStream pricingspecstream.ai/pricing, read Nov 12, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 12, 2026
- Elestio managed SearXNGelest.io/open-source/searxng, read Nov 12, 2026
- Elestio guide: self-host SearXNG for an AI agentblog.elest.io/give-your-ai-agent-private-web-search-self-host-searxng/, read Nov 12, 2026
- Railway SearXNG templaterailway.com/deploy/searxng-api, read Nov 12, 2026
- Railway pricingrailway.com/pricing, read Nov 12, 2026
- SearXNG Search API docsdocs.searxng.org/dev/search_api.html, read Nov 12, 2026
- SearXNG: why use a private instancedocs.searxng.org/own-instance.html, read Nov 12, 2026
- Parallel: SearXNG vs. Parallelparallel.ai/articles/searxng-vs-parallel.md, read Nov 12, 2026




