Skip to the page

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

SpecStreamElestio managed SearXNGRailway SearXNG template
What you runNothing. 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 updatesOne SearXNG service in your Railway project, from the template's image. Patch releases install in the nightly update window
JSON outputOn for every key. format=json answers in SearXNG's shape: query, number_of_results and results[] with title, url and contentOff until you add json to the formats in settings.yml and restart. Until then a JSON request gets a 403 ForbiddenOn. The template runs SearXNG with a JSON search API
Who can call itWhoever 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 nameAnyone who reaches your HTTPS endpoint. SearXNG's limiter throttles clients it takes for scrapers, and an agent looks like oneOther 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 blockedWhen search is busy the route answers 429 with SearXNG's own error body and a Retry-After header, and nothing is chargedUpstream 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 offThe rate limiter is off. Each engine request times out after 8 seconds, with one retry
Where results come fromSpecStream's search across several engines. When the first search finds fewer results than asked, it searches more engines and their next pages before it answersThe upstream engines the instance queries. Elestio's page puts SearXNG at more than 70 search servicesGeneral search on DuckDuckGo, Brave, Qwant, Wikipedia, Wikidata and Currency, plus developer, package and science engines
What a result holdstitle, url and content in SearXNG's shape. The Extract API reads the full text of up to 20 pages a call, on the same keytitle, url, content (the snippet) and engineresults, answers, infoboxes and suggestions
Price$1 per 1,000 searches of up to 10 results. A call that returns no results costs nothingFrom $11 a month for the instance, with unlimited usageRailway usage for the service. The Hobby plan has a $5 minimum and includes $5 of monthly usage credits
Accuracy97.9 F-score on all 1,000 SimpleQA Verified questions (978 correct) and 64.0 item F1 on all 200 WideSearch tasksSearXNG aggregates the results of the search services it queriesEach query goes to many engines and comes back as their combined results

Why teams that want a hosted SearXNG choose SpecStream

Other ways to get a hosted SearXNG API

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?
Yes. SpecStream answers SearXNG's JSON at 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?
Elestio's managed SearXNG starts at $11 a month. On Railway the template runs as usage on your plan, and the Hobby plan has a $5 minimum with $5 of monthly usage credits. SpecStream charges $1 per 1,000 searches, and new accounts get $10 of credit, no card.
Why does my SearXNG instance return 403 for format=json?
Because 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?
Not for steady use. 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 the same JSON on a key that is yours.
Which apps work with the SpecStream SearXNG address?
Any app with a setting for the SearXNG URL: put 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?
Only if you want it to. Zero retention is a field on each key, and a search made with such a key keeps no request text and no answer after the reply. The charge keeps the account, the key, the request ID, the price and the time.

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.

  1. SpecStream pricingspecstream.ai/pricing, read Nov 12, 2026
  2. SpecStream for agentsspecstream.ai/agents.md, read Nov 12, 2026
  3. Elestio managed SearXNGelest.io/open-source/searxng, read Nov 12, 2026
  4. 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
  5. Railway SearXNG templaterailway.com/deploy/searxng-api, read Nov 12, 2026
  6. Railway pricingrailway.com/pricing, read Nov 12, 2026
  7. SearXNG Search API docsdocs.searxng.org/dev/search_api.html, read Nov 12, 2026
  8. SearXNG: why use a private instancedocs.searxng.org/own-instance.html, read Nov 12, 2026
  9. Parallel: SearXNG vs. Parallelparallel.ai/articles/searxng-vs-parallel.md, read Nov 12, 2026