A free, self-hosted metasearch engine. It asks other search services your query and returns one merged list, as a web page or as JSON.
In our stackLast reviewed October 31, 2026
SearXNG is a free metasearch engine. You send it one query, it asks a spread of other search services, merges what comes back and hands you a single list. It doesn't track or profile the person searching. The project began in mid-2021 as a fork of the older searx and is licensed AGPL-3.0.
You run it yourself, usually as a Docker container, so the search happens on your own machine instead of inside someone else's account. That's the appeal and the catch. No key. No per-query fee. But it works by reading other engines' result pages, and those engines push back when queries arrive too fast, so plan for a throttle, a machine that stays on, and updates you have to read before you apply them.
We haven't measured its recall against a paid search API, so treat it as a first pass and open the page before you rely on anything it returns.
The tools we'd run next to SearXNG, and what each pairing covers.
SearXNG is first in our web search order and has been since 7 Oct 2026. It runs as one Docker container on a single machine, reachable only from that machine, with JSON output on and the Google engine off. A small Python wrapper sends each query to it, holds the whole machine to one query every 3 seconds, retries once after 45 seconds if no engine answers, and prints one JSON object per query: title, link, snippet and which engines replied. Our research work reads that JSON. A result is a pointer, never a source, so we open the page before we cite anything.
From the SearXNG pricing page · verified October 31, 2026
The dollar cost is zero. The real cost is a machine that stays on (ours is a laptop, so search only works while it's awake), the time it takes to pull new images and re-read changed settings, and attention to how fast queries go out. Bursts are what trigger bans from the upstream engines, not total volume. Our throttle works out at about 1,200 queries an hour. We haven't logged an update cadence, so we can't tell you how often upkeep comes round.
Rather not run it yourself? We build and run stacks like this for clients. See our methodology
Choose Exa when you'd rather pay for a hosted search API than keep a container up and manage engine bans.
Choose Apify when you need a ready-made scraper for one specific site, not a general web search.
Yes. It's open source under AGPL-3.0, with no account, no key and no per-query fee. What you pay in is a machine that stays on, upkeep when you update, and care about how fast you send queries.
Once JSON output is turned on in the settings file, its search endpoint returns JSON when you ask for it. We call it from a short Python script. We haven't checked whether the project ships an MCP server or an official command line tool, so we don't claim one.
On 7 Oct 2026 four research lanes ran at full speed. DuckDuckGo and Qwant started serving CAPTCHAs, and Brave and Google suspended us for 180 seconds. Bursts were the problem, not volume. We now send one query every 3 seconds across the machine.
Treat each result as a pointer, not a source. The page you land on sets how much weight a claim can carry, and a snippet is never evidence.
We haven't measured, so we can't give you a comparison. We keep a paid option on pause and would revisit it only if recall proved too thin.
The docs recommend Docker Compose: download the compose file and the example environment file from the repo's container folder, copy the example to a real one, run docker compose up -d, then edit the core settings file. A single docker run also works, mapping a host port to the container's port 8080 and mounting config and data folders. If you expose it beyond your own machine, the docs advise a reverse proxy.
Tell us how your motion runs today. We'll show you what we'd engineer.
Contact us