Billing
The webforai platform is metered in credits. Every operation reports a credit amount; nothing else is counted — no per-seat pricing, no request tiers, no minimum commitment.
Credit schedule
| operation | credits |
|---|---|
scrape via fetch | 1 |
scrape via browser | 2 |
scrape via proxy-fetch (subscription only) | 2 |
scrape via proxy-browser (subscription only) | 3 |
screenshot option | +1 |
rehostImages option | +1 per started 5 images |
The default auto engine has no price of its own: the
operation bills the engine that actually produced the result (so 1 credit when a plain fetch
sufficed, 2 when the page needed browser rendering), and only that engine.
Batch and crawl jobs bill per successfully converted page using the same schedule. A page that fails is not billed, and neither is a request that errors before the conversion runs.
Price
- 1,000 credits per month free — no subscription, no card.
- Beyond that, a metered monthly subscription with graduated tiers per calendar month:
| credits in the month | price per credit | per 1,000 fetch pages | per 1,000 browser pages |
|---|---|---|---|
| first 1,000 | free | free | free |
| 1,001 – 100,000 | $0.001 | $1.00 | $2.00 |
| 100,001 – 1,000,000 | $0.0007 | $0.70 | $1.40 |
| above 1,000,000 | $0.0005 | $0.50 | $1.00 |
Months are calendar months in UTC: the free allowance, the tiers and the spend cap all reset on the 1st at 00:00 UTC. Each tier applies only to the credits inside it. 1,000 free credits is 1,000 fetch scrapes, or
500 browser-rendered or proxy-fetch pages, every month. For example, 50,000 auto pages a
month where 20% need a browser is 60,000 credits: 1,000 free + 59,000 × $0.001 = $59.
Proxy engines need a subscription
proxy-fetch and proxy-browser — and auto with a non-auto region such as "jp", which
runs on them — are available with an active subscription only. On the free allowance they are
refused with 402 payment_required before anything runs, and nothing is billed. The free
allowance covers fetch, browser and auto. The public demo never uses the proxy.
Spend cap
Every subscription has a monthly spend cap: $50 by default, adjustable on the
dashboard from $1 to $5,000 (there is no
"unlimited"). When this calendar month's estimated bill reaches the cap, further requests
return 402 spend_cap_reached until you raise the cap or the month ends, and a running batch
or crawl job stops instead of converting further pages. The cap is checked before each operation against
usage already recorded, so requests that are in flight at the same moment can each finish and
overshoot it by their own credits (a few cents at most in practice).
How usage is counted
- Without a subscription, requests run until the month's free 1,000 credits are used, then
return
402 payment_required. - With a subscription, requests run until the spend cap.
- Only successful operations are billed, each exactly once — retries on our side never
double-count. The dashboard's
Usageview shows the same records your invoice is built from.
Managing the subscription
Checkout and the billing portal are both reachable from the dashboard. Cancelling drops you back to the free allowance rather than disabling the account.
Self-hosting
Billing is optional. Running your own instance without STRIPE_SECRET_KEY starts the platform in
free-allowance-only mode — everything works, nothing is metered externally, and you pay Cloudflare
and your proxy provider directly instead. If you do want metering, pnpm stripe:setup creates the meter and
the metered price for you. See the
apps/platform README.

