Getting started
Credits & billing
What each call costs, why failures are free, rollover, top-ups and spend caps.
Vermin bills in credits. Every response reports credits_used, and the dashboard's usage page shows the same numbers per request, key and endpoint. There are no surprise multipliers: what the response says is what you pay.
The golden rule: failures are free#
If a request fails (the site blocked us, the origin timed out, our browsers were full, the model couldn't fit your schema) it costs 0 credits. Always. Partial work is billed only for what succeeded: a crawl that scrapes 480 of 500 pages charges 480 page credits, and an extract over 10 URLs where 2 fail charges for 8.
What things cost#
| Operation | Credits | Notes |
|---|---|---|
| Scrape (fetch or render) | 1 | Rendering and screenshots included |
| Scrape with actions | 2 | +1 for click/scroll/type/wait |
| Scrape on premium proxy | 15 | Total, only when allowed |
| Crawl | 1 / page | Per page scraped successfully |
| Map | 2 / 10 fetches | Robots, sitemap files, pages and renders count; minimum 2, at most 28 |
| Search | 5 / 10 results | Rounded up; scraped results add scrape credits |
| Extract | 10 / URL | Includes the scrape; 24 on premium |
| Brand | 5 | 1 when served from cache |
| Anything that fails | 0 | Always |
Tiers and escalation#
Scrapes run with tier: "auto" by default:
- fetch: plain HTTP. Fast and cheap. Most of the web.
- render: a headless browser, used when the quality check says the page needs JavaScript. Same price as fetch: rendering and screenshots are included.
- premium: residential proxies for bot-walled sites. Only used when you allow it (
allowPremium: trueortier: "premium"), because it costs 15 credits a page.
You're charged for the tier that succeeded, never for the attempts before it. The quality.escalations field tells you what was tried, e.g. fetch→render: js_required.
Caching#
Pass maxAge (milliseconds) to accept a cached copy. Cached brand lookups cost 1 credit instead of 5; identical search queries are cached for about 10 minutes.
Plans, rollover and overage#
| Plan | Price | Credits / month | Rollover | Overage / 1K |
|---|---|---|---|---|
| Free | $0/mo | 1,000 (+2,000 on signup) | — | Hard stop |
| Starter | $19/mo | 12,000 | 1 month | $1.50 |
| Pro | $89/mo | 150,000 | 1 month | $0.80 |
| Growth | $249/mo | 600,000 | 1 month | $0.50 |
| Scale | $449/mo | 1,500,000 | 1 month | $0.35 |
| Enterprise | Custom | 3,000,000+ | 1 month | Volume |
- Monthly credits reset on your billing date. On paid plans, unused credits roll over for one month, so a quiet month isn't wasted.
- Signup bonus credits (Free plan) never expire.
- Overage: paid plans keep working past their allowance at the per-1K overage rate, billed at the end of the cycle. The Free plan stops with
insufficient_creditsinstead of billing you. - Top-ups: buy one-off credit packs in Dashboard → Billing. They're spent after your monthly credits and don't expire while you're subscribed.
Spend caps and alerts#
Set a monthly spend cap in the dashboard and Vermin will refuse billable requests with spend_cap_reached once you hit it: a hard ceiling for runaway loops. Usage alerts email you (and fire the usage.alert webhook) at the thresholds you choose.