Billing & Plans
A crawl that fails at every provider is free: you only pay when a provider delivers a page.
| Plan | What you get |
|---|---|
| Free start | 100 credits. No credit card required, no expiry. Full feature access. |
| Pay as you go | Buy credits in bulk. No monthly commitment, no expiration. |
| Enterprise | Unlimited jobs, custom invoicing, volume discounts, dedicated support. |
Credits
Section titled “Credits”Each job costs 1 credit. The credit leaves your balance when the job is submitted, and it comes back automatically if the crawl then fails at every provider — you never have to ask for it. The returned credit is its own line in your transaction history, and your balance reflects it as soon as the job reaches its final state.
The rule is the same whether the crawl runs on our provider accounts (managed) or on your own provider keys (BYO).
Submitting the same URL again creates a new job and charges a new credit. A returned credit is not a free retry.
What counts as a failed crawl
Section titled “What counts as a failed crawl”Your credit comes back when:
- every provider in the workflow failed or was blocked;
- we could not store the page after fetching it;
- nothing ran at all.
Your credit is kept when:
- the page was fetched and stored before a later step (extraction, delivery) failed — the page is yours and you can still retrieve it through the job;
- the page no longer exists (HTTP 404 or 410) — that is a real answer about the URL, every provider bills it as delivered, and so do we.
A failed job tells you which of the two happened. The job resource carries a one-line note saying whether its credit was returned or kept, and why.
Scraping JSON or plain text
Section titled “Scraping JSON or plain text”Output validation checks that a provider returned a real HTML page rather than a CAPTCHA, a block page, or an empty body, and it runs on every service node by default. If a rung fetches JSON or plain text instead of HTML, set an output format on that node (Parse, Screenshot, or Markdown) or switch output validation off for it — otherwise every fetch is rejected as not HTML, and the job is refunded rather than delivered. See Service nodes for both settings.
Checking your balance
Section titled “Checking your balance”curl https://api.justcrawl.io/api/v1/plans/status \ -H "Authorization: Bearer YOUR_API_KEY"Response:
{ "plan": "trial", "canSubmitJobs": true, "remainingCredits": 84, "trialDaysLeft": null, "isTrialExpired": false}trialDaysLeft is null when your free credits carry no expiry date.
When credits run out
Section titled “When credits run out”Job submission returns HTTP 402 Payment Required. Existing scheduled jobs will not run. Recharge credits to resume.
Recharging
Section titled “Recharging”Submit a recharge request from Settings > Billing or via API:
curl -X POST https://api.justcrawl.io/api/v1/plans/recharge-request \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "orgCountry": "US", "phone": "+1234567890", "expectedMonthlyVolume": "10000-50000" }'Recharge requests are processed manually. You’ll receive credits once payment is confirmed.
Transaction history
Section titled “Transaction history”View all credit transactions — charges from jobs, credits returned for failed crawls, and credits added by a recharge:
curl https://api.justcrawl.io/api/v1/plans/transactions?page=1&pageSize=25 \ -H "Authorization: Bearer YOUR_API_KEY"Cost estimation
Section titled “Cost estimation”Each workflow shows an estimated cost per 1,000 requests on the workflow list page. This uses your vendor pricing configuration and the probability-weighted expected cost formula (accounting for fallback probability). The estimate counts every attempt the routing may make; crawls that fail at every provider are returned to you, so what you are billed can come in under the estimate.