<!-- twin of https://specstream.ai/web-search/openclaw -->
# OpenClaw web search: the setting that points it at SpecStream

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

Four OpenClaw web search plugins take a base address that SpecStream answers: Parallel, Tavily, Brave and SearXNG. On November 10, 2026 the Parallel and Tavily plugins' own code ran on production with only that address and the key changed.

In the Parallel plugin, set `plugins.entries.parallel.config.webSearch.baseUrl` to `https://api.specstream.ai/parallel` and put your SpecStream key in `apiKey`. The agent's `web_search` tool calls our address and reads the results as before.

SpecStream is the most accurate web search API in the world: 97.9 F-score on all 1,000 SimpleQA Verified questions, at $5 per 1,000 searches. New accounts get $10 of credit, which covers 2,000 searches.

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

## Each OpenClaw search setting and its value for SpecStream, from OpenClaw's plugin source on Nov 10, 2026

| | Setting in OpenClaw | Value for SpecStream | What OpenClaw sends by default |
|---|---|---|---|
| Parallel | `plugins.entries.parallel.config.webSearch.baseUrl`, key in `apiKey` | `https://api.specstream.ai/parallel` ([Parallel migration guide](https://specstream.ai/migrate/parallel?utm_source=alternatives&utm_campaign=web-search-openclaw)) | `https://api.parallel.ai`, with `/v1/search` added |
| Tavily web search | `plugins.entries.tavily.config.webSearch.baseUrl`, key in `apiKey` | `https://api.specstream.ai/tavily` ([Tavily migration guide](https://specstream.ai/migrate/tavily?utm_source=alternatives&utm_campaign=web-search-openclaw)) | `https://api.tavily.com`, with `/search` added |
| Tavily extract | The same Tavily `baseUrl` and `apiKey` | `https://api.specstream.ai/tavily` ([Tavily Extract migration guide](https://specstream.ai/migrate/tavily-extract?utm_source=alternatives&utm_campaign=web-search-openclaw)) | `https://api.tavily.com`, with `/extract` added |
| Tavily by environment | `TAVILY_BASE_URL` and `TAVILY_API_KEY` on the Gateway | `https://api.specstream.ai/tavily` ([Tavily migration guide](https://specstream.ai/migrate/tavily?utm_source=alternatives&utm_campaign=web-search-openclaw)) | `https://api.tavily.com` when neither is set |
| SearXNG | `plugins.entries.searxng.config.webSearch.baseUrl`, key in the address | `https://api.specstream.ai/searxng/<key>` ([SearXNG migration guide](https://specstream.ai/migrate/searxng?utm_source=alternatives&utm_campaign=web-search-openclaw)) | No default: the plugin stops until an address is set |
| SearXNG by environment | `SEARXNG_BASE_URL` on the Gateway | `https://api.specstream.ai/searxng/<key>` ([SearXNG migration guide](https://specstream.ai/migrate/searxng?utm_source=alternatives&utm_campaign=web-search-openclaw)) | No default |
| Brave | `plugins.entries.brave.config.webSearch.baseUrl`, key in `apiKey` | `https://api.specstream.ai` ([Brave migration guide](https://specstream.ai/migrate/brave?utm_source=alternatives&utm_campaign=web-search-openclaw)) | `https://api.search.brave.com`, with `/res/v1/web/search` added |
| Firecrawl | `plugins.entries.firecrawl.config.webSearch.baseUrl` | None. The plugin accepts only Firecrawl's own host or a private one, so it stays as it is | `https://api.firecrawl.dev` |

## Why OpenClaw users set SpecStream as their search

### The setting, plugin by plugin

Each block goes in your OpenClaw config, and `tools.web.search.provider` names the plugin the agent searches with. Install the plugin first if you have not. Each value below ran on production through the plugin's own request and reply code.

Parallel: OpenClaw adds `/v1/search` to the base and sends the key as `x-api-key`. Every parameter and field is in the [Parallel migration guide](https://specstream.ai/migrate/parallel?utm_source=alternatives&utm_campaign=web-search-openclaw).

```
{
  plugins: {
    entries: {
      parallel: {
        enabled: true,
        config: {
          webSearch: {
            apiKey: "<YOUR_SPECSTREAM_KEY>",
            baseUrl: "https://api.specstream.ai/parallel",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "parallel",
      },
    },
  },
}
```

Tavily: OpenClaw adds `/search` for `web_search` and `/extract` for page reads, so one `baseUrl` serves both. `TAVILY_BASE_URL` and `TAVILY_API_KEY` on the Gateway do the same when the config has no value. See the [Tavily migration guide](https://specstream.ai/migrate/tavily?utm_source=alternatives&utm_campaign=web-search-openclaw) and the [Tavily Extract migration guide](https://specstream.ai/migrate/tavily-extract?utm_source=alternatives&utm_campaign=web-search-openclaw).

```
{
  plugins: {
    entries: {
      tavily: {
        enabled: true,
        config: {
          webSearch: {
            apiKey: "<YOUR_SPECSTREAM_KEY>",
            baseUrl: "https://api.specstream.ai/tavily",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "tavily",
      },
    },
  },
}
```

Brave: OpenClaw puts `/res/v1/web/search` on the base itself and sends the key as `X-Subscription-Token`. Every parameter and field is in the [Brave migration guide](https://specstream.ai/migrate/brave?utm_source=alternatives&utm_campaign=web-search-openclaw).

```
{
  plugins: {
    entries: {
      brave: {
        enabled: true,
        config: {
          webSearch: {
            apiKey: "<YOUR_SPECSTREAM_KEY>",
            baseUrl: "https://api.specstream.ai",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "brave",
      },
    },
  },
}
```

SearXNG: the plugin sends no key header, so the key goes in the address as its path part, and OpenClaw adds `/search`. `SEARXNG_BASE_URL` on the Gateway takes the same value. See the [SearXNG migration guide](https://specstream.ai/migrate/searxng?utm_source=alternatives&utm_campaign=web-search-openclaw).

```
{
  plugins: {
    entries: {
      searxng: {
        enabled: true,
        config: {
          webSearch: {
            baseUrl: "https://api.specstream.ai/searxng/<YOUR_SPECSTREAM_KEY>",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "searxng",
      },
    },
  },
}
```

### What OpenClaw's endpoint checks allow

OpenClaw's endpoint checks block only private network targets reached over plain http; a public `https://` address is accepted. Its Firecrawl plugin is the exception: it takes only Firecrawl's own host or a private one, so point the Tavily plugin at SpecStream for page reads.

### Check the key before you save it

This is the call OpenClaw's Tavily plugin makes for `web_search`. Run it once with your key and you see the `results[]` with `title`, `url` and `content` that the agent reads. A wrong key gets a `401`.

```
curl -X POST https://api.specstream.ai/tavily/search \
  -H "Authorization: Bearer $SPECSTREAM_KEY" -H "Content-Type: application/json" \
  -d '{"query": "open source vector databases", "max_results": 5}'
```

### $5 per 1,000 searches, with nothing to subscribe to

A search call of up to 10 results is one search at $0.005, on every provider you point at SpecStream. Each 10 results more in the same call add $0.006, up to 100 results. A page read is one Extract API page at $0.0008. A call stopped for load is not charged, and 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-openclaw) 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 takes up to 26,666 searches a minute; a call over that comes back with `Retry-After` and is not charged.

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

Create a key with `zero_retention` and a search made with it keeps no request text and no answer after the reply: not in the history, not in a log line. `spend_cap_cents` is the most the key can spend, so an agent that loops in OpenClaw stops at the cap you set.

```
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-openclaw) at $0.80 per 1,000 pages, and runs [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=web-search-openclaw): a request in plain words returns every match on the live web as rows, at 5¢, 15¢ or $1 a row, with the most a run can cost quoted before it starts.

## Other web search providers in OpenClaw

### Parallel

A search API at $1 per 1,000 requests in fast mode and $5 in basic and advanced, with 10 results a request and 600 searches a minute. With the plugin's `baseUrl` on SpecStream, the same calls cost $0.005 for up to 10 results on $10 of credit, no card.

### Tavily

A search API billed in credits: $0.008 a credit on pay as you go, 1 credit for a basic search and 2 for an advanced one. With `baseUrl` on SpecStream, a search is $0.005 and an extracted page $0.0008, with no credits to count.

### Brave Search API

A search API on Brave's own index at $5 per 1,000 requests, with $5 in free credits every month and up to 50 queries per second. SpecStream searches the whole live web at the same $5 per 1,000 through the Parallel, Tavily or SearXNG plugin, or through the Brave plugin itself with its `baseUrl` set to `https://api.specstream.ai`, with a 97.9 F-score on SimpleQA Verified.

### Firecrawl

Search and scrape billed in credits: 2 credits per 10 search results, 1 credit a page on a basic scrape, and Hobby at $19 a month. OpenClaw's Firecrawl plugin calls only Firecrawl's host. Through the Tavily plugin on SpecStream, a search is $0.005 and a page is $0.0008, with no plan to buy.

### Exa

A search API at $7 per 1,000 requests on auto and $4 on lite, with the first 10 results in the base price. SpecStream answers at $5 per 1,000 searches of up to 10 results on any of the four plugins above.

### Perplexity Search API

One endpoint at $5.00 per 1,000 successful requests, and a reply with no results is still billed. On SpecStream a search costs the same $0.005, and the agent gets the most accurate results on SimpleQA Verified.

## How to set SpecStream as web search in OpenClaw

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

2. Check the key with the call OpenClaw's Parallel plugin will make.

```
import requests

KEY = "YOUR_SPECSTREAM_KEY"
reply = requests.post(
    "https://api.specstream.ai/parallel/v1/search",
    headers={"x-api-key": KEY},
    json={"search_queries": ["open source vector databases"]},
).json()

for result in reply["results"]:
    print(result["title"], result["url"])
```

3. Install the Parallel plugin with `openclaw plugins install @openclaw/parallel-plugin` if you have not. Add its block to your OpenClaw config with `baseUrl` set to `https://api.specstream.ai/parallel` and your key in `apiKey`, then restart the Gateway.

4. Ask your agent about something from this week. `web_search` runs on SpecStream, and every call is billed as one search on your key, inside the spending limit the key carries.

When the agent needs a whole dataset in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet, quotes the most it can cost, and delivers the rows after you approve.

## Frequently asked questions

### How do I change the web search provider in OpenClaw?

Set `tools.web.search.provider` to the plugin you want and give that plugin a `baseUrl`. With `parallel` and `baseUrl` set to `https://api.specstream.ai/parallel`, the agent searches the whole live web at $5 per 1,000 searches.

### What is the Tavily base URL setting in OpenClaw?

`plugins.entries.tavily.config.webSearch.baseUrl`, or `TAVILY_BASE_URL` on the Gateway. Set it to `https://api.specstream.ai/tavily` and both `web_search` and page extraction run on SpecStream, at $0.005 a search and $0.0008 a page.

### How do I use Parallel search in OpenClaw?

Install `@openclaw/parallel-plugin`, set `plugins.entries.parallel.config.webSearch.baseUrl` to `https://api.specstream.ai/parallel` and your SpecStream key in `apiKey`. OpenClaw adds `/v1/search` and sends the key as `x-api-key`, and it ran on production on November 10, 2026.

### Do I need to host SearXNG for OpenClaw?

No. Set the SearXNG plugin's `baseUrl` to `https://api.specstream.ai/searxng/<key>` and SpecStream answers in SearXNG's JSON, at about 0.82 s a search at the median on production.

### Can OpenClaw's Firecrawl plugin use another host?

Only a private or self-hosted one: the plugin refuses any public host but Firecrawl's. The Tavily plugin on SpecStream reads pages through Tavily's extract call at $0.0008 a page.

### How much does web search in OpenClaw cost with SpecStream?

$0.005 a search of up to 10 results, $5 per 1,000 searches, on any of the four plugins. New accounts get $10 of credit, no card, and credit you buy never expires.

## Sources

SpecStream wrote this page. Each OpenClaw setting comes from the plugin's source on GitHub, and each figure on another provider from that company's own page.

- [OpenClaw Parallel plugin, search runtime](https://github.com/openclaw/openclaw/blob/main/extensions/parallel/src/parallel-web-search-provider.runtime.ts), read Nov 10, 2026
- [OpenClaw Parallel plugin, README](https://github.com/openclaw/openclaw/blob/main/extensions/parallel/README.md), read Nov 10, 2026
- [OpenClaw Tavily plugin, client](https://github.com/openclaw/openclaw/blob/main/extensions/tavily/src/tavily-client.ts), read Nov 10, 2026
- [OpenClaw SearXNG plugin, client](https://github.com/openclaw/openclaw/blob/main/extensions/searxng/src/searxng-client.ts), read Nov 10, 2026
- [OpenClaw Firecrawl plugin, client](https://github.com/openclaw/openclaw/blob/main/extensions/firecrawl/src/firecrawl-client.ts), read Nov 10, 2026
- [Parallel search modes](https://docs.parallel.ai/search/modes.md), read Nov 10, 2026
- [Parallel pricing](https://docs.parallel.ai/getting-started/pricing.md), read Nov 10, 2026
- [Parallel rate limits](https://docs.parallel.ai/getting-started/rate-limits.md), read Nov 10, 2026
- [Tavily API credits](https://docs.tavily.com/documentation/api-credits.md), read Nov 10, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 10, 2026
- [Firecrawl pricing](https://www.firecrawl.dev/pricing), read Nov 9, 2026
- [Exa pricing](https://exa.ai/docs/admin/pricing.md), read Nov 10, 2026
- [Perplexity Search API overview](https://docs.perplexity.ai/docs/search/overview.md), read Nov 10, 2026
- [Perplexity pricing](https://docs.perplexity.ai/docs/getting-started/pricing.md), 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
