<!-- twin of https://specstream.ai/migrate/tavily-map -->
# Tavily map compatible: change the address

Compared on Nov 10, 2026. The page: https://specstream.ai/migrate/tavily-map

Since November 10, 2026 SpecStream answers Tavily's `POST /map` in Tavily's own JSON. A map costs $0.0008, one page read, for up to 5,000 URLs. Tavily charges 1 API credit per 10 pages mapped.

The switch is one line: `TavilyClient(api_key=KEY, api_base_url="https://api.specstream.ai/tavily")` in place of `TavilyClient(api_key="tvly-...")`. `client.map()` and your parser stay.

Crawls run on the same key at `https://api.specstream.ai/firecrawl/v2/crawl`, $0.0008 a page. The Extract API scores 0.908 F1 on WCXB, and a new account gets $10 of credit, no card.

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

## Tavily map to SpecStream, parameter by parameter and field by field

| | SpecStream | Tavily |
|---|---|---|
| Address | `POST https://api.specstream.ai/tavily/map` | `POST https://api.tavily.com/map` |
| The key | A SpecStream key as `Authorization: Bearer`, or `api_key` in the body | A Tavily key as `Authorization: Bearer tvly-...` |
| Parameters applied | `url` (a bare host too), `limit`, `max_depth`, `select_paths`, `exclude_paths`, `select_domains` and `exclude_domains` | The same, plus `instructions`, `max_breadth` and `allow_external` |
| URLs a map | 50 by default, up to 5,000 | `limit` default 50 |
| Reply | `base_url`, `results` as URL strings, `response_time` and `request_id` | The same, plus `usage` |
| Errors | Tavily's own: `400` for a bad pattern or `max_depth` past 5, `401` for a wrong key. A busy call gets `429` with `Retry-After` and is not charged | `400` invalid request, `401` key wrong or missing, `429` with `Retry-After`, `432` plan limit exceeded |
| Price | $0.0008 a map, whatever its size | 1 API credit per 10 pages, 2 per 10 with `instructions`. Pay as you go is $0.008 a credit |
| Crawl | Not at `/tavily/crawl`. Firecrawl's crawl on the same key at `https://api.specstream.ai/firecrawl`, $0.0008 a page | `POST /crawl`, 1 credit per 5 successful extractions |
| Free to start | $10 of credit, no card, which covers 12,500 maps | 1,000 free API credits a month |

## The Tavily map reference, on SpecStream

### The call, before and after

```
# Before
curl -X POST https://api.tavily.com/map \
  -H "Authorization: Bearer $TAVILY_API_KEY" -H "Content-Type: application/json" \
  -d '{"url": "https://quotes.toscrape.com/", "select_paths": ["/author/.*"]}'

# After
curl -X POST https://api.specstream.ai/tavily/map \
  -H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
  -d '{"url": "https://quotes.toscrape.com/", "select_paths": ["/author/.*"]}'
```

The reply is Tavily's: `{"base_url": "https://quotes.toscrape.com/", "results": ["https://quotes.toscrape.com/author/Albert-Einstein", ...], "response_time": ..., "request_id": "..."}`.

With tavily-python 0.8.5 the change is one line: `TavilyClient(api_key=KEY, api_base_url="https://api.specstream.ai/tavily")`. `client.map(url)` runs as before, and the same client's `search` and `extract` answer at that address too.

### What the route reads, and what it refuses

Applied: `url`, also as a bare host such as `quotes.toscrape.com`, `limit`, `max_depth` (depth 1 is the start page's links, a deeper map adds the pages the site's sitemaps publish), and the regular expressions in `select_paths`, `exclude_paths`, `select_domains` and `exclude_domains`.

Refused, in Tavily's own status and body: a pattern that is not a valid regular expression gets `400` before the map is charged, `max_depth` past 5 gets `400`, and a wrong key gets `401`. Every parameter was measured on production on Nov 10, 2026, and the full [pass table](https://specstream.ai/specstream/dialects/tavily_site.md) lists each one and its result.

Tavily's `POST /crawl` answers every page's content in one reply, and it is not served at `/tavily/crawl`. A crawl on SpecStream is a job you start and then read: Firecrawl's `/v2/crawl` on the same key, with `includePaths`, `excludePaths`, `limit` and `maxDiscoveryDepth`.

### Every field that comes back

`base_url`, `results` as a list of URL strings, `response_time` in seconds and `request_id`. The route does not return `usage`; the price of a map is fixed at $0.0008.

### One price a map

On Tavily a map costs 1 API credit per 10 pages, so a map of 500 URLs is 50 credits, $0.40 at $0.008 a credit. On SpecStream every map that gives links costs $0.0008, one page read, up to 5,000 URLs. A busy call gets `429` with `Retry-After` and charges nothing. Credit you buy never expires.

### Scored on the official benchmarks

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

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

Create the key with `zero_retention` and a call made with it keeps no request text and no answer after the reply. `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}'
```

### Pages, search and rows on one key

The same key answers Tavily's `/search` at $0.005 and `/extract` at $0.0008 a page, and reads up to 20 pages or documents a call with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=migrate-tavily-map). [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=migrate-tavily-map) 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 full comparison is on the [Tavily alternative](https://specstream.ai/alternatives/tavily?utm_source=alternatives&utm_campaign=migrate-tavily-map) page.

## What else Tavily map users price

### Firecrawl map and crawl

Map and crawl in credits: a map is 1 credit a call and Hobby is $19 a month for 5,000 credits. SpecStream answers Firecrawl's `/v2/map` and `/v2/crawl` at `https://api.specstream.ai/firecrawl`, $0.0008 a map or a page.

### Spider

A scrape and crawl API billed by bandwidth, from $1 per GB, plus CPU time. SpecStream answers Spider's scrape and search at `https://api.specstream.ai/spider`, and a page costs $0.0008.

### Crawl4AI

An open-source crawler you host and run yourself. SpecStream answers the Crawl4AI server's `/crawl` and `/md` at `https://api.specstream.ai/crawl4ai`, with no server to keep up.

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

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

```
import requests

BASE = "https://api.specstream.ai/tavily"  # was https://api.tavily.com

reply = requests.post(
    f"{BASE}/map",
    headers={"Authorization": f"Bearer {SPECSTREAM_KEY}"},
    json={"url": "https://quotes.toscrape.com/", "limit": 100, "exclude_paths": ["/tag/.*"]},
    timeout=60,
)
reply.raise_for_status()
for url in reply.json()["results"]:
    print(url)
```

3. In JavaScript:

```
const reply = await fetch("https://api.specstream.ai/tavily/map", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.SPECSTREAM_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ url: "quotes.toscrape.com", max_depth: 2, limit: 500 }),
});
const { base_url, results } = await reply.json();
console.log(base_url, results.length);
```

4. Read `429` as a call to send again after `Retry-After`. It is not charged.

## Frequently asked questions

### Is there a Tavily map compatible API?

Yes. Since Nov 10, 2026 SpecStream answers Tavily's `POST /map` at `https://api.specstream.ai/tavily/map` with Tavily's reply, as measured on production. A map costs $0.0008.

### How do I migrate from Tavily map?

Change one address: `https://api.tavily.com` becomes `https://api.specstream.ai/tavily`, and a SpecStream key goes in the Bearer token. `url`, `limit`, `max_depth`, `select_paths`, `exclude_paths`, `select_domains` and `exclude_domains` keep their meaning.

### How much does Tavily map cost?

1 API credit per 10 pages, 2 per 10 with `instructions`, and pay as you go is $0.008 a credit. On SpecStream a map of up to 5,000 URLs costs $0.0008.

### Does the Tavily Python SDK work with SpecStream?

Yes. tavily-python 0.8.5 works with `api_base_url="https://api.specstream.ai/tavily"`, as tested on production on Nov 10, 2026. `map`, `search` and `extract` run on that address.

### Does SpecStream answer Tavily crawl?

Not at `/tavily/crawl`. Since Nov 10, 2026 crawls run on the same key at `https://api.specstream.ai/firecrawl/v2/crawl`, in Firecrawl's form, at $0.0008 a page with text.

### Which Tavily map fields does SpecStream not return?

`usage`. `base_url`, `results`, `response_time` and `request_id` come back on every reply.

## Sources

SpecStream wrote this page. Each Tavily figure comes from Tavily's own pages, and each other provider's figure from that company's own page. The route's behavior comes from its code and the pass table measured on production.

- [Tavily map](https://docs.tavily.com/documentation/api-reference/endpoint/map), read Nov 10, 2026
- [Tavily crawl](https://docs.tavily.com/documentation/api-reference/endpoint/crawl), read Nov 10, 2026
- [Tavily pricing](https://tavily.com/pricing), read Nov 10, 2026
- [Tavily API credits](https://docs.tavily.com/documentation/api-credits.md), read Nov 10, 2026
- [SpecStream Tavily map pass table](https://specstream.ai/specstream/dialects/tavily_site.md), read Nov 10, 2026
- [Spider pricing](https://spider.cloud/pricing), read Nov 10, 2026
- [Firecrawl pricing](https://www.firecrawl.dev/pricing), read Nov 10, 2026
- [Firecrawl billing](https://docs.firecrawl.dev/billing.md), read Nov 10, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
