<!-- twin of https://specstream.ai/migrate/anysearch -->
# AnySearch API compatible: change the address, keep the code

Compared on Nov 13, 2026. The page: https://specstream.ai/migrate/anysearch

SpecStream answers AnySearch's `POST /v1/search` and `POST /v1/extract` in AnySearch's own JSON. A search of up to 10 results costs $0.001 and a page read $0.0008. AnySearch Pro lists $3 per 1,000 calls, for a search or for a page.

The switch is one address: `https://api.specstream.ai/anysearch` in place of `https://api.anysearch.com`, with a SpecStream key as the Bearer token. Your code reads `data.results[]` as before.

SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks. New accounts get $10 of credit, no card.

[Get an API key](https://specstream.ai/signup?src=alternatives-migrate-anysearch&utm_source=alternatives-md&utm_campaign=migrate-anysearch&returnTo=%2Fworkspace%2Fsearch%3Froute%3Danysearch) New accounts get $10 of credit, no card. It covers 10,000 searches or 12,500 pages.

## AnySearch to SpecStream, parameter by parameter and field by field

| | SpecStream | AnySearch |
|---|---|---|
| Search address | `POST https://api.specstream.ai/anysearch/v1/search` | `POST https://api.anysearch.com/v1/search` |
| Extract address | `POST https://api.specstream.ai/anysearch/v1/extract` | `POST https://api.anysearch.com/v1/extract` |
| The key | A SpecStream key as `Authorization: Bearer`, on every call | An AnySearch key as `Authorization: Bearer`. A call with no header is limited by IP address and counted against the daily free quota |
| `max_results` | 1 to 10, 10 when you send none | 1 to 10, default 10 |
| `format` | `json` or `markdown` fills each result's `content` with the text of its page closest to the query, at no extra cost | `json` or `markdown`. Markdown changes the result content, and the outer response is still JSON |
| `zone`, `language` | `cn` sets the country of the search to China. `language` sets its language | `cn` or `intl`, and a preferred language such as `zh-CN` or `en` |
| Extract | One URL a call, `content` up to 50,000 characters, $0.0008 a page. A page that cannot be read answers `422` and is not charged | One URL a call, `content` limited to 50,000 characters. One call for valid content |
| Price | $0.001 a search of up to 10 results and $0.0008 a page read | Pro: $3 per 1,000 calls, listed down from $5, sold as a one-time call pack. A search is one call and a page is one call |
| Free to start | $10 of credit once, no card: 10,000 searches or 12,500 pages | 1,000 calls a day. A spent day answers HTTP 402 until 00:00 UTC |

## The AnySearch API reference, on SpecStream

### The call, before and after

```
# Before
curl -X POST https://api.anysearch.com/v1/search \
  -H "Authorization: Bearer $ANYSEARCH_API_KEY" -H "Content-Type: application/json" \
  -d '{"query": "Global AI Semiconductor Industry Analysis", "max_results": 5}'

# After
curl -X POST https://api.specstream.ai/anysearch/v1/search \
  -H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
  -d '{"query": "Global AI Semiconductor Industry Analysis", "max_results": 5}'
```

The body and the parser stay. The base address changes to `https://api.specstream.ai/anysearch`, and the key changes. Every parameter and field below is what the route answers on November 13, 2026.

### Every parameter the route uses

Used in the search: `query` (required), `max_results` (1 to 10, 10 when you send none), `language`, and `zone` (`cn` sets the country of the search to China).

Used to shape the reply: `format` set to `json` or `markdown` reads each result's page and fills `content` with the text of that page closest to the query. The price stays $0.001. Without `format`, a result has `title`, `url` and `snippet`.

`tag` and `params` choose AnySearch's vertical sources. The route answers the general search: send no `tag`, or a tag of the `general` domain. A call that names another capability, such as `finance.quote`, answers `400` and is not charged.

### Every field that comes back

The reply is AnySearch's envelope: `code` 0, `message` `success`, `request_id` and `data`. `data.results` is the list, each result with `title`, `url`, `snippet`, and `content` when you send `format`. `data.metadata` has `total_results` and `search_time_ms`.

One field is added beside `data`: `specstream`, with what the Search API returns beyond AnySearch's fields, including the call's `price_usd`. A parser that reads `data` never sees it.

### Extract

```
curl -X POST https://api.specstream.ai/anysearch/v1/extract \
  -H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
  -d '{"url": "https://www.python.org/downloads/"}'
```

The reply's `data` has `url`, `title` and `content`. `url` is the address you sent, also after a redirect, and `content` stops at 50,000 characters, both as on AnySearch. Each page read is one Extract API page at $0.0008. A page that cannot be read answers `422` with `error_code` `extract_failed` and is not charged.

AnySearch's extract takes one URL a request and does not read PDF files. SpecStream's own [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=migrate-anysearch) at `POST /v1/extract` reads up to 20 pages or documents a call, PDF, Word and Excel included, on the same key.

### Errors in AnySearch's form

A refusal answers `code` -1 with `message`, `request_id` and `error_code`, and keeps its HTTP status. A missing or wrong key is `401`. A bad field is `400`. An empty balance is `402`. When search is busy, the route answers `429` with `Retry-After`. None of them is charged.

AnySearch's docs warn that its HTTP 402 may contain a password and an API key, and tell clients to keep the response body out of logs. A `402` from SpecStream says the balance is empty and holds no credentials, so it can be logged whole.

### What 100,000 questions cost on each

On AnySearch Pro a search is one call and each page read is one more, at $3 per 1,000 calls. On SpecStream a search of up to 10 results costs $0.001 and a page $0.0008. An agent that searches once and reads three pages per question pays $1,200 per 100,000 questions on AnySearch Pro and $340 on SpecStream.

The compare page has the plans side by side: [AnySearch alternatives](https://specstream.ai/alternatives/anysearch?utm_source=alternatives&utm_campaign=migrate-anysearch).

### In an MCP client

Replace `https://api.anysearch.com/mcp` with `https://api.specstream.ai/mcp`. SpecStream's server runs over Streamable HTTP with OAuth or an API key, and the agent searches, reads pages and runs Deep Search from the same balance. Setup for each client is in the [MCP docs](https://specstream.ai/docs/mcp?utm_source=alternatives&utm_campaign=migrate-anysearch).

### The most accurate web search API

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=migrate-anysearch) page.

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

Create the 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, its answer is not reused for another call, and its log lines carry neither. `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=migrate-anysearch) 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=migrate-anysearch) returns every match for a request in plain words as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value. The most a run can cost is approved before it starts.

## What else AnySearch users price

### Exa

A search API on Exa's own index, at $7 per 1,000 requests on `auto` and $4 on `lite` for up to 10 results, with its own request and reply. SpecStream answers Exa's call as well, at `https://api.specstream.ai/exa`, for $0.001 a search.

### Tavily

A search API sold in credits at $0.008 each pay as you go: a basic search takes 1 credit and an advanced search 2. SpecStream answers Tavily's `POST /search` at `https://api.specstream.ai/tavily` for $0.001 a basic search.

### Brave Search API

A search API on Brave's own index at $5 per 1,000 requests and 50 queries per second. SpecStream answers Brave's call at `https://api.specstream.ai/res/v1/web/search` at $1 per 1,000, a fifth of Brave's rate.

## How to migrate, step by step

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

2. Set the base address to `https://api.specstream.ai/anysearch` where your code has `https://api.anysearch.com`, and send the SpecStream key as the Bearer token. In Python:

```
import os
import requests

BASE = "https://api.specstream.ai/anysearch"  # was https://api.anysearch.com
HEADERS = {"Authorization": f"Bearer {os.environ['SPECSTREAM_API_KEY']}"}

response = requests.post(
    f"{BASE}/v1/search",
    headers=HEADERS,
    json={"query": "Global AI Semiconductor Industry Analysis", "max_results": 5, "format": "markdown"},
    timeout=30,
)
response.raise_for_status()
for result in response.json()["data"]["results"]:
    print(result["title"], result["url"])

page = requests.post(f"{BASE}/v1/extract", headers=HEADERS, json={"url": "https://www.python.org/downloads/"}, timeout=60)
print(page.json()["data"]["content"][:500])
```

3. In JavaScript:

```
const response = await fetch("https://api.specstream.ai/anysearch/v1/search", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SPECSTREAM_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ query: "Global AI Semiconductor Industry Analysis", max_results: 5 }),
});
const result = await response.json();
for (const item of result.data.results) console.log(item.title, item.url);
```

4. Send the key on every call. A call with no `Authorization` header answers `401`. Read `402` as an empty balance and `429` as a call to send again after `Retry-After`. None of them is charged.

5. When your product needs every match in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet and the facts to bring back, quotes the most it can cost, and delivers the rows after you approve.

## Frequently asked questions

### Is there an AnySearch compatible API?

Yes. SpecStream answers AnySearch's `POST /v1/search` and `POST /v1/extract` at `https://api.specstream.ai/anysearch` in AnySearch's JSON, for $0.001 a search of up to 10 results and $0.0008 a page read.

### How do I migrate from the AnySearch API?

Change one base address: `https://api.specstream.ai/anysearch` in place of `https://api.anysearch.com`, and a SpecStream key as the Bearer token. The body and the code that reads `data.results[]` stay as they are.

### How much does the AnySearch API cost?

AnySearch Pro lists $3 per 1,000 calls, down from $5, as a one-time call pack, and its free plan gives 1,000 calls a day. On SpecStream a search of up to 10 results is $0.001 and a page read is $0.0008, and new accounts get $10 of credit with no card.

### Do AnySearch's vertical tags work?

No. The route answers the general search, with no `tag` or a tag of the `general` domain. A call that names another capability answers `400` and is not charged.

### Does /v1/extract work?

Yes. It takes one URL and returns `data.url`, `data.title` and `data.content` up to 50,000 characters, at $0.0008 a page. A page that cannot be read answers `422` with `extract_failed` and is not charged.

### Do calls with no API key work?

No. Every call carries a SpecStream key as the Bearer token, and a call with no key answers `401`. A new account's $10 of credit covers 10,000 searches.

### Does SpecStream have an MCP server?

Yes, at `https://api.specstream.ai/mcp` over Streamable HTTP, with OAuth or an API key. It searches, reads pages and runs Deep Search on one balance.

## Sources

SpecStream wrote this page. Each AnySearch fact comes from AnySearch's own docs and pricing page, and each other provider's figure from that company's own page. The route's behavior is taken from its code, read on November 13, 2026.

- [AnySearch Search API docs](https://anysearch.com/docs/api-endpoints/v1-search.md), read Nov 13, 2026
- [AnySearch Web Content Extraction API docs](https://anysearch.com/docs/api-endpoints/v1-extract.md), read Nov 13, 2026
- [AnySearch authentication](https://anysearch.com/docs/auth.md), read Nov 13, 2026
- [AnySearch MCP server setup](https://anysearch.com/docs/mcp-install.md), read Nov 13, 2026
- [AnySearch pricing](https://www.anysearch.com/pricing), read Nov 13, 2026
- [Exa pricing](https://exa.ai/docs/admin/pricing.md), read Nov 13, 2026
- [Tavily API credits](https://docs.tavily.com/documentation/api-credits.md), read Nov 13, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 13, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 13, 2026
- [SpecStream pricing](https://specstream.ai/pricing), read Nov 13, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 13, 2026
