Cost table
| Operation | Cost |
|---|---|
Scrape in standard mode | 1 credit per page |
Scrape in stealth mode | 3 credits per page |
Scrape in auto mode | 1 credit if resolved to standard, 3 credits if escalated to stealth |
| Cache hit | 0 credits (any mode) |
| Failed scrape (timeout, upstream error, block) | 0 credits |
| Crawl | 1 credit per page discovered and scraped |
metadata.proxyMode. Your usage history also tracks it; see /v1/usage/history.
Tiers
| Tier | Monthly credits | Rate limit (req/min) | Concurrent jobs |
|---|---|---|---|
| Free | 1,000 | 10 | 2 |
| Pro | 5,000 | 60 | 10 |
| Business | 50,000 | 200 | 50 |
| Enterprise | 500,000 | 1,000 | 200 |
Checking your balance
When billing runs
Reader charges credits after a scrape succeeds, not before. The pre-flight check only verifies you have enough to start the request; the actual deduction happens once the content is in your response. Forauto mode, the pre-flight check is optimistic: it assumes 1 credit per page (the standard price). If auto escalates and the real cost ends up at 3x, your balance can briefly dip below zero for that request. Your next request gets a 402 insufficient_credits error until you top up or your credits reset.
This matches how metered billing works everywhere else: you don’t want a single escalation to fail your batch mid-run, and you don’t want to pre-authorize the maximum cost on every request.
Insufficient credits
Estimating batch costs
Before running a large batch, estimate the bill:auto mode, estimate the mix based on what you know:
- 90%+ of typical web pages resolve to
standard(1 credit) - Sites known to bot-wall hard (Amazon, LinkedIn, booking sites) will resolve to
stealth(3 credits)
metadata.proxyMode across the results. You’ll have a real escalation rate instead of a guess. See Cost estimation.
Next
- Proxy modes: what drives cost
- Caching: free cache hits
- Rate limits: requests per minute, not credits

