Benchmarks
Measured, with the misses left in.
We run the same pages and queries through Pageteer and other APIs, and score each answer for correct content, not just a 200. Last run: October 14, 2026.
Pass rate and speed
Each page and query ran 2 times per provider, uncached. Speed is measured on passing calls: the median, and the slowest 1 in 20 (p95).
| Task | Provider | Passed | Median | p95 |
|---|---|---|---|---|
| Page reads | Pageteer | 78% (28/36) | 0.7s | 4.3s |
| Jina Reader | 89% (32/36) | 3.0s | 15.5s | |
| Screenshots | Pageteer | 100% (12/12) | 5.2s | 10.1s |
| Jina Reader | 92% (11/12) | 5.8s | 8.1s | |
| Search | Pageteer | 95% (19/20) | 5.8s | 7.7s |
Where we lost: Jina Reader got through more bot-protected pages. Pageteer was blocked by Reddit, stopped at a Cloudflare challenge on Stack Overflow (we never solve CAPTCHAs), and returned too little content from Amazon and Zillow. Blocked and challenged requests were not charged. Jina missed Amazon and Reddit, and returned no image for one screenshot.
Search speed: a fresh search takes about 5.8s because we pace queries to the search engines we use. Repeating a query with max_age returns the cached result in about 0.1s, free.
848 public pages, scored against reference text
The public firecrawl/scrape-content-dataset-v1 dataset pairs each URL with the text a person marked as the page's content. We ran it through Pageteer on October 14, 2026 and scored it exactly like an independent study of Firecrawl and Tavily, whose published numbers are shown beside ours. Dead links are left out for each provider.
| Provider | Returned content | At least 10% of the text | Text returned, all pages | Text returned, pages with content | Median | p95 |
|---|---|---|---|---|---|---|
| PageteerOur run, October 14, 2026 | 83.1% | 70.9% | 51.4% | 61.8% | 1.5s | 11.8s |
| FirecrawlPublished study, spring 2026 | 70.3% | 62.2% | 48.9% | 69.7% | 1.9s | 6.5s |
| TavilyPublished study, spring 2026 | 87.1% | 84.1% | 65.0% | 74.6% | 0.3sper batch of 5 URLs | 1.5s |
Where we lost: Tavily returned content on more pages and more of each page's text, and Firecrawl returned more of the text on the pages it read. Most of our misses are bot challenges: we stop at them rather than solve them, and those requests are free.
How it's scored: words are compared with the reference text, lower-cased. “Text returned” is the share of the reference words found in the answer. Speed is measured on pages that returned content in under 30 seconds. Firecrawl and Tavily ran on their free tiers; we did not re-run them, so their numbers come from a different week and network.
Price per 1,000 requests
List prices on each provider's cheapest plan that fits, before free credits, checked October 14, 2026. Pageteer is shown at its starting rate of $0.30 per 1,000 credits; volume rates go lower. In the benchmark, page reads with mode: "auto" averaged 1.56 credits each.
| Provider | Page read, no JavaScript | Page read, real browser | Screenshot | Search | Plan needed |
|---|---|---|---|---|---|
| Pageteer | $0.30 | $1.50 | $1.50 | $0.60 | None: pay as you go |
| Firecrawl | $0.83 | $0.83 | – | $1.66 | Standard, $83/mo billed yearly (100K credits) |
| ScrapingBee | $0.20 | $0.98 | $0.98 | – | Freelance, $49/mo (250K credits) |
| Tavily | $1.60 | – | – | $8.00 | None: $0.008 per credit |
| Exa | $1.00 | – | – | $7.00 | None: billed per request |
| Browserless | – | $1.25 | $1.25 | – | Prototyping, $25/mo (20K units of up to 30s) |
- Firecrawl search is 2 credits per 10 results. ScrapingBee charges 1 credit without JavaScript and 5 with it. Tavily's page read is its Extract endpoint (1 credit per 5 URLs). Exa search is its default mode with up to 10 results; its page read is Contents. A Browserless unit is up to 30 seconds of browser time.
- Jina Reader is free without a key at 20 requests a minute; keyed use is billed in tokens, so it is not in the table.
- Pageteer charges nothing for our errors, timeouts, blocked requests or CAPTCHA pages, and nothing for cache hits. Full pricing
How we test
- Page reads: 18 pages: static sites, docs, wikis, news, JavaScript apps, code hosts, shops and bot-protected sites. A pass means the expected phrase is in the content and the content is long enough, so block pages and empty app shells fail.
- Screenshots: 6 pages, including JavaScript-heavy product pages. A pass means a real PNG or JPEG of at least 10 KB.
- Search: 10 developer queries. A pass means the expected site is in the top 5 results.
- Every provider runs uncached: Pageteer search sends
max_age=0and Jina Reader getsx-no-cache. A rate-limit response is retried and the wait counts toward latency. Jina Reader ran without a key, paced to its 20 requests a minute. - The run was made from DigitalOcean NYC3, the same region as the Pageteer API, which saves Pageteer roughly one network round trip compared with a call from elsewhere.
- Jina Reader is the only other provider we have run ourselves. Firecrawl and Tavily appear in the public dataset results from a published study; the rest appear in the price table only.