scrapingbench

What cost per finished task means for scraping APIs

Cost per finished task is all the API and model spend on a track, failed tasks included, divided by the tasks the agent finished. Model cost is a list-price estimate for Claude Haiku 5.5.

cost per finished task = (API spend + model spend, on every task) ÷ tasks finished

A price list tells you what one call costs. An agent pays for every call it makes, pays the model to read each response, and pays for the tasks it gets wrong too. This figure puts all of that over the answers that came out right, so it's the number to compare when you choose a web data API for an agent.

Scrape 40 tasks · Test heading and structure preservation on documentation pages, plus package versions and JS fields.

Scrape: cost per finished task, lowest first, with tasks done
ProviderCost per finished taskTasks done95% interval
TinyFish0.71¢31 of 40 (78%)61%–92%
Spider0.88¢37 of 40 (93%)81%–100%
You.com1.00¢29 of 40 (73%)56%–89%
Scrapfly1.17¢36 of 40 (90%)79%–100%
Linkup1.23¢34 of 40 (85%)71%–96%
String1.33¢35 of 40 (88%)76%–97%
Context.dev1.36¢38 of 40 (95%)85%–100%
Firecrawl1.67¢32 of 40 (80%)66%–92%
Browserbase1.93¢30 of 40 (75%)60%–89%
Jina Reader4.26¢6 of 40 (15%)5%–26%

TinyFish cost the least per finished scrape task, 0.71¢, and finished 31 of 40 (78%). Context.dev finished the most tasks, 38 of 40 (95%), at 1.36¢ per finished task. The highest cost per finished task, Jina Reader's 4.26¢, is 6 times the lowest.

Each scrape task could use up to 2 tool calls, 60 seconds and $0.10. A task that went over failed, and its spend still counts.

Re-measured from the stored v2 responses; no provider was called again. The agent could read every byte of each response, 32 KB at a time. Page coverage compares each response with a copy of the page fetched once on 2026-10-20; pages that changed since the run are left out. Every provider ran on its default settings. Jina Reader ran under a 5,000-token rejecting budget. Most core tasks ask for a docs heading.

All scrape results and charts

Map 15 tasks · Discover canonical URLs within a verified documentation scope.

Map: cost per finished task, lowest first, with tasks done
ProviderCost per finished taskTasks done95% interval
Context.dev0.98¢12 of 15 (80%)60%–100%
String0.98¢14 of 15 (93%)80%–100%
Firecrawl1.32¢13 of 15 (87%)67%–100%

Context.dev and String cost the least per finished map task, 0.98¢ each. String also finished the most tasks, 14 of 15 (93%). The highest cost per finished task, Firecrawl's 1.32¢, is 1.3 times the lowest.

Each map task could use up to 2 tool calls, 120 seconds and $0.25. A task that went over failed, and its spend still counts.

Re-measured from the stored v2 responses; no provider was called again. URLs outside the requested section, query-string variants and non-HTML files don't count; the section's own URL always counts, since it was the tool's input.

All map results and charts

Crawl 12 tasks · Return every scoped documentation URL and its HTML title.

Crawl: cost per finished task, lowest first, with tasks done
ProviderCost per finished taskTasks done95% interval
Scrapfly3.49¢12 of 12 (100%)100%–100%
Context.dev5.86¢11 of 12 (92%)75%–100%
Firecrawl8.29¢12 of 12 (100%)100%–100%

Scrapfly cost the least per finished crawl task, 3.49¢, and finished 12 of 12 (100%). That ties it with Firecrawl for the most tasks done. The highest cost per finished task, Firecrawl's 8.29¢, is 2.4 times the lowest.

Each crawl task could use up to 1 tool call, 600 seconds and $2.00. A task that went over failed, and its spend still counts.

Re-measured from the stored v2 responses; no provider was called again. A crawl task is done when the agent returns the right pages. Exact page titles are reported separately and don't decide the score.

All crawl results and charts

Short answers

What does cost per finished task mean for a scraping API?

Cost per finished task is all the API and model spend on a track, failed tasks included, divided by the tasks the agent finished. Model cost is a list-price estimate for Claude Haiku 5.5. A task counts as finished only when a script confirms every field of the agent's answer, so the figure is what one correct answer cost.

Methodology

How is cost per finished task different from price per request?

A price per request or per credit is what one call costs. An agent can make several calls per task (up to 2 on scrape, 3 on search, 2 on map and 1 on crawl here), pays the model to read every response, and fails some tasks. Cost per finished task puts all of that over the tasks that came out right, so an API with cheap calls that often fail can cost more per finished task than one with pricier calls that work. Billing only for successful requests is a different thing: a request can succeed and the task still fail because the answer is wrong, and the model's spend is paid either way.

Which web data API is cheapest per finished task?

Cost per finished task counts all API and model spend, failures included, divided by tasks done. The cheapest on each track: scrape: TinyFish at 0.71¢; search: TinyFish at 0.97¢; map: Context.dev at 0.98¢; crawl: Scrapfly at 3.49¢.

Every provider's cost

How far can these cost figures be trusted?

They come from one benchmark run, from one server, with Claude Haiku 5.5 as the only agent model, at test volume. The task scores have 95% intervals, but the costs don't, so a small cost difference isn't a ranking. Check each provider's current pricing for your own volume.

FAQ

How tasks are graded is on the methodology page, each provider's cost on every track is on the providers page, and the cheapest Firecrawl alternatives per track are on the Firecrawl alternatives page.