<!-- twin of https://specstream.ai/searxng-hosted-api -->
# SearXNG hosted API in 2026: its JSON at one address, $1 per 1,000

Compared on Nov 12, 2026. The page: https://specstream.ai/searxng-hosted-api

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.

[Get an API key](https://specstream.ai/signup?src=alternatives-searxng-hosted-api&utm_source=alternatives-md&utm_campaign=searxng-hosted-api&returnTo=%2Fworkspace%2Fsearch%3Froute%3Dsearxng) 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](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=searxng-hosted-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](https://specstream.ai/pricing?utm_source=alternatives&utm_campaign=searxng-hosted-api) 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](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=searxng-hosted-api) 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](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=searxng-hosted-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](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=searxng-hosted-api) 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 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

### 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.

- [SpecStream pricing](https://specstream.ai/pricing), read Nov 12, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 12, 2026
- [Elestio managed SearXNG](https://elest.io/open-source/searxng), read Nov 12, 2026
- [Elestio guide: self-host SearXNG for an AI agent](https://blog.elest.io/give-your-ai-agent-private-web-search-self-host-searxng/), read Nov 12, 2026
- [Railway SearXNG template](https://railway.com/deploy/searxng-api), read Nov 12, 2026
- [Railway pricing](https://railway.com/pricing), read Nov 12, 2026
- [SearXNG Search API docs](https://docs.searxng.org/dev/search_api.html), read Nov 12, 2026
- [SearXNG: why use a private instance](https://docs.searxng.org/own-instance.html), read Nov 12, 2026
- [Parallel: SearXNG vs. Parallel](https://parallel.ai/articles/searxng-vs-parallel.md), read Nov 12, 2026
