Credits

Requests are billed in credits. The cost depends on how hard the target was to reach, not on how long the request took or how much data came back.

The transport tier sets the cost

A request is routed across transport tiers automatically, and you are charged for the tier that succeeded. The tiers are checked in order, and the first one that applies determines the cost:

Static fast HTTP fetchdefault1 credit
Dynamic headless renderwhen js is set5 credits
Stealth armor bypasswhen stealth is set15 credits

These tiers are a ladder, not a sum. Setting both js and stealth costs 15 credits, not 20. Stealth includes the headless render it supersedes. A request is only ever billed at the highest tier it needed.

Schema extraction is additive

The structured extraction pass is the one cost that adds to the transport tier rather than replacing it, because it runs on top of whatever fetch produced the page. It costs 2 credits and applies whenever a schema is supplied.

So a stealth fetch with a schema pass costs 15 + 2 = 17 credits, and a plain static fetch with a schema pass costs 1 + 2 = 3.

Static fetch1
Static fetch + schema3
Dynamic render5
Dynamic render + schema7
Stealth armor15
Stealth armor + schema17

The rate

Credits are sold at $1 per 1,000 credits, and each plan includes a monthly allowance. See pricing for the tiers.

When credits are spent

Credits are consumed on successful delivery. A request that returns nothing usable is not billed.

The cost is computed and checked before any upstream work begins. If your balance cannot cover a request, it is refused up front with 402 rather than after a crawl has already run, so a request that fails on quota costs you nothing.

The 402 response includes the numbers you need to decide what to do next:

required

What this request would have cost, in credits.

balance

Your current balance at the moment of the request.

Keeping the bill down

The single largest lever is the transport tier. Most pipelines escalate everything to stealth out of caution and pay 15× the static rate for pages that never needed it.

Two things help. First, only set stealth on targets that defend themselves. The tier is chosen per request, so a pipeline can escalate selectively. Second, cache: if a page is stable between runs, fetching it again costs the full credit price for data you already have.

Need volume pricing or a custom parser?