<!-- twin of https://specstream.ai/web-search/lobehub -->
# LobeHub web search without hosting SearXNG: one variable

Compared on Nov 10, 2026. The page: https://specstream.ai/web-search/lobehub

LobeHub's default search provider is `searxng`, so a self-hosted LobeChat searches only when `SEARXNG_URL` points at an instance with the JSON format turned on. SpecStream answers SearXNG's JSON at its own address, with no container to run.

Set `SEARXNG_URL=https://api.specstream.ai/searxng/YOUR_KEY` in `.env` and restart. To read pages on the same key, add `CRAWLER_IMPLS=firecrawl`, `FIRECRAWL_URL=https://api.specstream.ai/firecrawl/v2` and the key in `FIRECRAWL_API_KEY`.

SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions. A search of up to 10 results costs $0.005, with no daily limit. A new account gets $10 of credit, no card, which covers 2,000 searches.

[Get an API key](https://specstream.ai/signup?src=alternatives-web-search-lobehub&utm_source=alternatives-md&utm_campaign=web-search-lobehub&returnTo=%2Fworkspace%2Fagents%3Ftab%3Dkeys) New accounts get $10 of credit, no card. It covers 2,000 searches.

## The web search providers LobeHub offers, from each company's own pages on Nov 10, 2026

| | SpecStream | SearXNG, self-hosted | Firecrawl | Tavily | Exa | Brave |
|---|---|---|---|---|---|---|
| Role in LobeHub | Search provider through `SEARXNG_URL` or `FIRECRAWL_URL`, and page reader through `FIRECRAWL_URL`, on one key | The default search provider when `SEARCH_PROVIDERS` is not set | Search provider and page reader | Search provider and page reader | Search provider and page reader | Search provider |
| Price of a search | $5 per 1,000 searches, with up to 10 results a search | No fee. You run the server, and the engines it queries may enforce CAPTCHAs or ban its IP address | 2 credits per 10 results | $0.008 a credit on pay as you go. A basic search is 1 credit | $7 per 1,000 requests on auto, $4 per 1,000 on lite | $5 per 1,000 requests |
| Price of reading pages | $0.80 per 1,000 pages through `/firecrawl/v2/scrape`, and a page with no text is not charged | Reads no pages. LobeHub's default readers are jina, naive, search1api and browserless | The free plan reads 1,000 pages a month. The Hobby plan is $19 a month | A basic extract costs 1 credit for every 5 successful URLs | $1 per 1,000 pages per content type | Not a page reader in LobeHub |
| How you start | $10 of credit, no card. It covers 2,000 searches | A working Docker or Podman installation, and the JSON format turned on | A free plan of 500 searches or 1,000 pages | 1,000 free credits every month | $10 in credits on sign up, no payment method required | $5 in free credits every month |
| How long credit lasts | Credit you buy never expires | No credit to buy | Monthly plans, from $19 a month for Hobby | On a monthly plan, requests stop when the month's credits run out | The free balance resets to $10 on the first of every month | Prepaid credits |
| Address setting in LobeHub | `SEARXNG_URL` and `FIRECRAWL_URL` in `.env` | `SEARXNG_URL` | `FIRECRAWL_URL`, default `https://api.firecrawl.dev/v2` | None. LobeHub's code fixes the address at `https://api.tavily.com` | None. LobeHub's code fixes the address at `https://api.exa.ai` | None. LobeHub's code fixes the address at `https://api.search.brave.com/res/v1` |

## Why LobeHub admins point SEARXNG_URL at SpecStream

### The .env before and after

LobeHub reads `SEARXNG_URL` from the server's environment and adds `/search` with `format=json` to it. SpecStream answers that call at `https://api.specstream.ai/searxng/<key>`, with the key as a part of the address, so LobeHub sends no header and needs none.

```
# .env before: a SearXNG container you host
SEARCH_PROVIDERS=searxng
SEARXNG_URL=http://searxng:8080

# .env after: no container
SEARCH_PROVIDERS=searxng
SEARXNG_URL=https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY
```

`SEARCH_PROVIDERS` can stay unset, because `searxng` is LobeHub's default. Remove the SearXNG service from your `docker-compose.yml` once search answers.

This is the call LobeHub sends, and the one to try first from a shell:

```
curl "https://api.specstream.ai/searxng/$SPECSTREAM_API_KEY/search?q=latest+LobeHub+release&format=json"
```

### Read pages on the same key

LobeHub reads the pages it cites with the crawlers named in `CRAWLER_IMPLS`. Set it to `firecrawl` and point `FIRECRAWL_URL` at SpecStream, with the version in the address. LobeHub adds `/scrape` and sends the key as a Bearer token.

```
# .env, added after the SearXNG lines
CRAWLER_IMPLS=firecrawl
FIRECRAWL_URL=https://api.specstream.ai/firecrawl/v2
FIRECRAWL_API_KEY=YOUR_SPECSTREAM_KEY
```

```
curl -X POST https://api.specstream.ai/firecrawl/v2/scrape \
  -H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
  -d '{"url": "https://lobehub.com"}'
```

### Already on Firecrawl? Change one URL

With `SEARCH_PROVIDERS=firecrawl`, LobeHub searches through `FIRECRAWL_URL` and adds `/search`. Set the address to `https://api.specstream.ai/firecrawl/v2` and put the SpecStream key in `FIRECRAWL_API_KEY`: the search and the page reads both run on SpecStream, in Firecrawl's JSON. The [Firecrawl migration guide](https://specstream.ai/migrate/firecrawl?utm_source=alternatives&utm_campaign=web-search-lobehub) lists every field.

```
# .env before
SEARCH_PROVIDERS=firecrawl
CRAWLER_IMPLS=firecrawl
FIRECRAWL_API_KEY=fc-...

# .env after
SEARCH_PROVIDERS=firecrawl
CRAWLER_IMPLS=firecrawl
FIRECRAWL_URL=https://api.specstream.ai/firecrawl/v2
FIRECRAWL_API_KEY=YOUR_SPECSTREAM_KEY
```

### What stays the same

LobeHub's own SearXNG and Firecrawl code reads the reply, unchanged. The SearXNG route returns `results[]` with `title`, `url` and `content`, 10 results a search. The Firecrawl route returns `data.web[]` for a search and `data.markdown` for a page. Every parameter and field is in the [SearXNG migration guide](https://specstream.ai/migrate/searxng?utm_source=alternatives&utm_campaign=web-search-lobehub).

### $0.005 a search and $0.0008 a page

A search of up to 10 results costs $0.005, which is $5 per 1,000, with no daily limit. Each page read through the Firecrawl scrape or Exa contents route costs $0.0008, which is $0.80 per 1,000 pages, and a page with no text costs nothing.

There is no monthly plan, no credit pack that expires and no reset on the first of the month. Credit you buy never expires.

### The most accurate web search API in the world

On SimpleQA Verified the SpecStream Search API scores 97.9 F-score on all 1,000 official questions, 978 of them correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks. The Extract API scores 0.908 F1 on WCXB. Every score and its method is on the [benchmarks](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=web-search-lobehub) page.

### About one second a search, measured under load

Every drop-in route runs on the fast search. On November 9, 2026 production took 1, 5, 10 and 20 searches a second through it and answered 718 of 720. The median was 0.82 s at 1 search a second and 1.07 s at 20 a second, and the 95th percentile stayed between 1.09 and 1.73 s. One account can send up to 26,666 searches a minute; a call over that gets a `429` with `Retry-After` and is not charged.

### You decide what is kept, on each key

Give LobeHub a key with `zero_retention` and a search made with it keeps no request text and no answer after the reply. It is not in the history and its log lines carry neither. The charge keeps the account, the key, the request ID, the price and the time. `spend_cap_cents` is the most the key can spend.

```
curl -X POST https://api.specstream.ai/v1/account/keys \
  -H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
  -d '{"name": "production", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'
```

### Search, pages and rows on one key

The same key reads up to 20 pages or documents a call with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=web-search-lobehub) 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=web-search-lobehub) takes a request in plain words and returns every match on the live web as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value.

## The other providers in LobeHub, and what each costs

### SearXNG, self-hosted

LobeHub's default. It needs a working Docker or Podman installation, and an instance without the JSON format answers `403`. An engine that answers too many requests is suspended for 3,600 seconds, and one that shows a CAPTCHA for 86,400. SpecStream answers the same call at $0.005 a search, with no server to run.

### Firecrawl

Search at 2 credits per 10 results, on a free plan of 500 searches or 1,000 pages and paid plans from $19 a month for Hobby. Set `FIRECRAWL_URL` to `https://api.specstream.ai/firecrawl/v2` and the same calls cost $0.005 a search and $0.0008 a page, on credit that never expires.

### Tavily

Search and extract billed in credits at $0.008 each on pay as you go, with 1,000 free credits a month. LobeHub fixes Tavily's address at `https://api.tavily.com`. SpecStream searches the live web at $0.005 a search through `SEARXNG_URL`, with 97.9 F-score on all 1,000 SimpleQA Verified questions.

### Exa

Search at $7 per 1,000 requests on auto and $4 on lite, and page contents at $1 per 1,000 pages per content type. LobeHub fixes Exa's address at `https://api.exa.ai`. SpecStream reads pages at $0.80 per 1,000 through `FIRECRAWL_URL`.

### Brave

Search at $5 per 1,000 requests with $5 in free credits each month, and no page reader in LobeHub. SpecStream searches at the same $5 per 1,000 and reads the pages too, on one key.

## How to set SpecStream as LobeHub's web search

1. Create a key under Agents & API in the SpecStream workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.

2. Set the search address in the `.env` of your LobeHub server.

```
SEARXNG_URL=https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY
```

3. To read pages on the same key, add the crawler lines.

```
CRAWLER_IMPLS=firecrawl
FIRECRAWL_URL=https://api.specstream.ai/firecrawl/v2
FIRECRAWL_API_KEY=YOUR_SPECSTREAM_KEY
```

4. Restart LobeHub, turn on web search in a chat and ask a question. Each search and each page shows up in your SpecStream request log with its price.

## Frequently asked questions

### How do I set up SearXNG for LobeChat?

Set one variable: `SEARXNG_URL=https://api.specstream.ai/searxng/YOUR_KEY` in the server's `.env`. SpecStream answers SearXNG's JSON, 10 results a search at $0.005, with no SearXNG container to run.

### Why is LobeChat online search not working?

Most often `SEARXNG_URL` is empty or points at an instance without the JSON format, which answers `403`. `searxng` is LobeHub's default provider, so point `SEARXNG_URL` at `https://api.specstream.ai/searxng/YOUR_KEY` and restart; a wrong key gets a `401`.

### What is the LobeChat SEARXNG_URL format?

A full URL with no path after the instance, because LobeHub adds `/search` itself. For SpecStream it is `https://api.specstream.ai/searxng/` followed by your key.

### Is there a LobeHub web search API that needs no server?

Yes: SpecStream, at $5 per 1,000 searches of up to 10 results. It answers LobeHub's SearXNG call and its Firecrawl calls, so search and page reading run on one key.

### Can LobeHub use SpecStream through Firecrawl?

Yes, with 2 lines: `FIRECRAWL_URL=https://api.specstream.ai/firecrawl/v2` and the key in `FIRECRAWL_API_KEY`. A search costs $0.005 and a page $0.0008.

### Is there a free web search for LobeChat?

A new SpecStream account gets $10 of credit with no card, which covers 2,000 searches. After that a search costs $0.005, and credit you buy never expires.

### Which web search API is best for LobeHub?

SpecStream, with 97.9 F-score on all 1,000 SimpleQA Verified questions at $5 per 1,000 searches, and about one second a search under load.

## Sources

SpecStream wrote this page. LobeHub's settings come from its source on GitHub, and each provider's figure from that company's own page.

- [LobeHub env tools.ts](https://github.com/lobehub/lobehub/blob/main/packages/env/src/tools.ts), read Nov 10, 2026
- [LobeHub search service](https://github.com/lobehub/lobehub/blob/main/apps/server/src/services/search/index.ts), read Nov 10, 2026
- [LobeHub search providers](https://github.com/lobehub/lobehub/blob/main/apps/server/src/services/search/impls/index.ts), read Nov 10, 2026
- [LobeHub SearXNG client](https://github.com/lobehub/lobehub/blob/main/apps/server/src/services/search/impls/searxng/client.ts), read Nov 10, 2026
- [LobeHub Firecrawl search](https://github.com/lobehub/lobehub/blob/main/apps/server/src/services/search/impls/firecrawl/index.ts), read Nov 10, 2026
- [LobeHub Firecrawl crawler](https://github.com/lobehub/lobehub/blob/main/packages/web-crawler/src/crawImpl/firecrawl.ts), read Nov 10, 2026
- [LobeHub Tavily, Exa and Brave providers](https://github.com/lobehub/lobehub/blob/main/apps/server/src/services/search/impls/tavily/index.ts), read Nov 10, 2026
- [SearXNG Search API](https://docs.searxng.org/dev/search_api.html), read Nov 10, 2026
- [SearXNG own instance](https://docs.searxng.org/own-instance.html), read Nov 10, 2026
- [SearXNG search settings](https://docs.searxng.org/admin/settings/settings_search.html), read Nov 10, 2026
- [SearXNG Docker installation](https://docs.searxng.org/admin/installation-docker.html), read Nov 10, 2026
- [Firecrawl pricing](https://www.firecrawl.dev/pricing), read Nov 10, 2026
- [Tavily API credits](https://docs.tavily.com/documentation/api-credits.md), read Nov 10, 2026
- [Tavily pricing](https://tavily.com/pricing), read Nov 10, 2026
- [Exa pricing](https://exa.ai/docs/admin/pricing.md), read Nov 10, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 10, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [SpecStream pricing](https://specstream.ai/pricing), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
