<!-- twin of https://specstream.ai/migrate/spider -->
# Spider (spider.cloud) compatible: change the address

Compared on Nov 10, 2026. The page: https://specstream.ai/migrate/spider

Since November 10, 2026 SpecStream answers Spider's `POST /scrape` and `POST /search` in Spider's own JSON. A page costs $0.0008, $0.80 per 1,000, and a search $0.005. Spider bills bandwidth at $1 per GB plus CPU minutes.

The switch is one line: `https://api.specstream.ai/spider` in place of `https://api.spider.cloud`, and a SpecStream key as the Bearer token. The request body and your parser stay.

The SpecStream Extract API scores 0.908 F1 on WCXB. A page that gives no text costs nothing, credit you buy never expires, and a new account gets $10 of credit, no card.

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

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

| | SpecStream | Spider |
|---|---|---|
| Address | `POST https://api.specstream.ai/spider/scrape` and `/spider/search`, also under `/spider/v1/` | `POST https://api.spider.cloud/scrape`, `/crawl` and `/search` |
| The key | A SpecStream key as `Authorization: Bearer` | A Spider key as `Authorization: Bearer sk-...` |
| Scrape | `url`, several by commas, `return_format` as `markdown`, `text`, `raw`, `empty` or a list, `return_page_links` and `metadata` applied | `url`, `return_format` (default `raw`), `return_page_links`, `metadata` and request options |
| Search | `search`, `search_limit` or `num`, `page`, `tbs` and operators such as `site:` applied. Up to 10 results $0.005 | `search` with result and crawl options |
| Reply | A scrape answers a list, one object a page: `url`, `content`, `status`, `error`, `costs`, `links`, `metadata`. A search answers `content[]` with `title`, `description`, `url` | The same list per page, with `costs.vendor` naming the provider that served it |
| Errors | Spider's own `{"error", "code"}`: `400` with no `url` or no `search`, `401` for a wrong key. A busy call gets `429` with `Retry-After` and is not charged | Standardized HTTP response codes |
| Price | $0.80 per 1,000 pages, the same for every page, and $5 per 1,000 searches | Pay as you go from $1 per GB of content plus $0.0001 per minute of CPU. Unlimited from $40 a month for 2 concurrent requests |
| Failed page | A page that gives no text is not charged, and its `costs` is null | Failed requests cost $0 |
| Free to start | $10 of credit, no card, which covers 12,500 pages | Pay as you go top-ups from $5 |

## The Spider reference, on SpecStream

### The call, before and after

```
# Before
curl -X POST https://api.spider.cloud/scrape \
  -H "Authorization: Bearer $SPIDER_API_KEY" -H "Content-Type: application/json" \
  -d '{"url": "https://en.wikipedia.org/wiki/Web_scraping", "return_format": "markdown"}'

# After
curl -X POST https://api.specstream.ai/spider/scrape \
  -H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
  -d '{"url": "https://en.wikipedia.org/wiki/Web_scraping", "return_format": "markdown"}'
```

The reply is Spider's: a list with one object a page, `[{"url": "...", "content": "# Web scraping ...", "status": 200, "error": null, "costs": {"total_cost": 0.0008}}]`.

spider-client 0.1.93 writes `https://api.spider.cloud` into every call and takes no other address, so the switch is in your own HTTP call: the address and the key. The bodies Spider documents run unchanged, and the `/v1/` paths answer too.

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

Scrape, applied: `url`, one or several by commas, `return_format` as `markdown`, `text`, `raw`, `empty` or a list (the first format wins), `return_page_links` and `metadata`. A page the site answers `404` comes back with `status` 404 and `costs` null.

Search, applied: `search`, `search_limit` or `num`, `page`, `tbs` such as `qdr:w`, and operators such as `site:`. A search that names no count gets 10 results.

Refused, in Spider's own `{"error", "code"}` body: a scrape with no `url` or a search with no `search` 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/spider.md) lists each one and its result.

Spider's `POST /crawl` answers every page in one reply, and it is not served at `/spider/crawl`. A crawl on SpecStream is a job you start and then read: Firecrawl's `/v2/crawl` on the same key, at $0.0008 a page.

### Every field that comes back

A scrape returns, for each page, `url`, `content` in the format asked, `status` with the page's own HTTP status, `error`, `costs`, `links` with `return_page_links` and `metadata` with `metadata: true`. A search returns `content[]` with `title`, `description` and `url`. The route does not return `duration_elapsed_ms`.

### One price a page, and a failed page is free

On Spider a request is billed by the gigabytes of content it pulls and the CPU minutes it uses. On SpecStream every page that gives text costs $0.0008, which is $0.80 per 1,000, a search of up to 10 results costs $0.005, and 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-spider) 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 reads up to 20 pages or documents a call with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=migrate-spider), runs crawls and site maps at `https://api.specstream.ai/firecrawl`, and searches the web at $5 per 1,000 searches. [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=migrate-spider) 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.

## What else Spider users price

### Firecrawl

Scrape, search, map and crawl in credits: Hobby is $19 a month for 5,000 credits. SpecStream answers Firecrawl's v2 calls at `https://api.specstream.ai/firecrawl`, and $19 reads 23,750 pages.

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

### ScrapingBee

A page API on monthly plans: Hobby is $19 a month for 75,000 credits, and a call costs 1 to 75 credits. SpecStream answers ScrapingBee's call at `https://api.specstream.ai/scrapingbee/api/v1/` at $0.80 per 1,000 pages.

### Tavily

Search, extract and map billed in credits at $0.008 a credit on pay as you go. SpecStream answers Tavily's calls at `https://api.specstream.ai/tavily` at $0.005 a search.

## 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 12,500 pages.

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

```
import requests

BASE = "https://api.specstream.ai/spider"  # was https://api.spider.cloud

reply = requests.post(
    f"{BASE}/scrape",
    headers={"Authorization": f"Bearer {SPECSTREAM_KEY}"},
    json={"url": "https://en.wikipedia.org/wiki/Web_scraping", "return_format": "markdown", "metadata": True},
    timeout=60,
)
reply.raise_for_status()
for page in reply.json():
    print(page["url"], page["status"], page["metadata"]["title"], len(page["content"] or ""))
```

3. A search in JavaScript:

```
const reply = await fetch("https://api.specstream.ai/spider/search", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.SPECSTREAM_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ search: "web scraping history", search_limit: 5 }),
});
const { content } = await reply.json();
for (const result of content) console.log(result.title, result.url);
```

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

## Frequently asked questions

### Is there a Spider compatible API?

Yes. Since Nov 10, 2026 SpecStream answers Spider's `POST /scrape` and `POST /search` at `https://api.specstream.ai/spider` with Spider's reply, as measured on production. A page costs $0.0008.

### How do I migrate from Spider?

Change one address: `https://api.spider.cloud` becomes `https://api.specstream.ai/spider`, and a SpecStream key goes in the Bearer token. `url`, `return_format`, `return_page_links`, `metadata`, `search`, `search_limit`, `num`, `page` and `tbs` keep their meaning.

### How much does Spider cost?

Pay as you go starts at $1 per GB of content plus $0.0001 per minute of CPU, and Unlimited starts at $40 a month. SpecStream costs $0.80 per 1,000 pages and $5 per 1,000 searches, with no plan, and its credit never expires.

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

Not as it ships: spider-client 0.1.93 writes Spider's own address into every call. Call `https://api.specstream.ai/spider/scrape` and `/spider/search` with `requests` or `fetch`, as in the steps on this page, with the same bodies.

### Does SpecStream answer Spider's crawl?

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

### Which Spider fields does SpecStream not return?

`duration_elapsed_ms`. Each page keeps `url`, `content`, `status`, `error`, `costs`, `links` and `metadata`, and each search result `title`, `description` and `url`.

## Sources

SpecStream wrote this page. Each Spider figure comes from Spider'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.

- [Spider pricing](https://spider.cloud/pricing), read Nov 10, 2026
- [Spider API reference](https://spider.cloud/docs/api), read Nov 10, 2026
- [SpecStream Spider pass table](https://specstream.ai/specstream/dialects/spider.md), read Nov 10, 2026
- [Firecrawl pricing](https://www.firecrawl.dev/pricing), read Nov 10, 2026
- [ScrapingBee pricing](https://www.scrapingbee.com/pricing/), read Nov 10, 2026
- [ScrapingBee documentation](https://www.scrapingbee.com/documentation/), read Nov 10, 2026
- [Tavily pricing](https://tavily.com/pricing), 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
