Scraper API Pricing and Requests

Understand how Scraper API requests are counted across free, subscription, and Pay as you Go usage.

Scraper API pricing is based on requests. One successfully extracted page uses one request from your balance. There are no request multipliers for JavaScript rendering, proxy type, geo-targeting, or output format.

Request Counting

The request model is intentionally simple for page extraction work:

  • One page extraction equals one request.
  • A batch job counts each successfully extracted URL as one request.
  • A crawl job counts each successfully extracted page as one request.
  • JavaScript rendering does not cost extra requests.
  • Requesting Markdown, HTML, or both does not cost extra requests.
  • Geo-targeting does not cost extra requests.
  • Failed extraction requests are not charged.
  • Authentication errors, validation errors, and requests rejected before extraction are not charged.

Some dashboard, API, or billing surfaces may still use older token or credit naming, such as tokens_charged, estimated_tokens, tokens_charged_total, or tokens_reserved. For Scraper API billing, read those values as charged, estimated, or reserved requests.

Endpoint Usage

Not every API endpoint extracts a page. Use this table to understand how each endpoint category relates to request balance.

Endpoint categoryRequest balance behavior
Single-page extractionA successful POST /v1/extract extraction uses one request.
Async extractionThe completed extraction uses one request when the page is successfully extracted.
Batch extractionEach successfully extracted URL in the batch uses one request.
Crawl jobsEach successfully extracted crawled page uses one request.
MapDiscovers URLs only. The response does not include tokens_charged; use the dashboard to confirm overall balance changes.
Statistics, webhooks, job lookup, and health checksThese endpoints do not extract page content. They are used to manage, inspect, or monitor Scraper API work.

Free Tier

The free tier includes 1,500 requests every month. You do not need a credit card to start using the free tier.

Free tier requests:

  • Renew every billing month.
  • Expire at the end of the billing month.
  • Do not roll over to the next month.
  • Stop working when the monthly free allowance runs out, unless you upgrade or add paid requests.

Subscription Plans

Subscription plans include a monthly request allowance. Unused subscription requests roll over to the next month with no rollover cap while your subscription remains active.

Use the Geonode dashboard to see the currently available subscription tiers, included monthly requests, and current prices. The dashboard is the source of truth for plan availability and billing details.

Subscription requests:

  • Renew every billing month.
  • Roll over when unused.
  • Stay available while the subscription remains active.
  • Can be combined with Pay as you Go requests if your account has both balances.

Pay as you Go

Pay as you Go lets you buy request top-ups without committing to a subscription. Pay as you Go requests are prepaid and do not expire.

Use the Geonode dashboard to see the available top-up sizes and current prices for your account.

Pay as you Go requests:

  • Are prepaid.
  • Do not expire.
  • Can be used for bursty workloads.
  • Remain available even if you do not use the API every month.

What Happens When You Run Out

If you run out of available requests, the API returns 402. Add more requests from the dashboard, buy a Pay as you Go top-up, or upgrade to a subscription plan.

{
  "code": "PAYMENT_REQUIRED",
  "message": "Insufficient request balance.",
  "correlation_id": "req_...",
  "retryable": false
}

The exact message may vary, but the response tells you that the request could not be processed because the account does not have enough available requests.

Checking Usage

You can check remaining requests in the Geonode dashboard. Use the dashboard when you need to confirm:

  • Remaining free requests for the current billing month.
  • Current subscription allowance and rollover balance.
  • Pay as you Go balance.

Billing Examples

If you extract one static page as Markdown, it uses one request.

{
  "url": "https://example.com",
  "formats": ["markdown"],
  "render_js": false
}

If you extract the same page as Markdown and HTML, it still uses one request.

{
  "url": "https://example.com",
  "formats": ["markdown", "html"],
  "render_js": false
}

If you render a JavaScript-heavy page before extracting it, it still uses one request.

{
  "url": "https://quotes.toscrape.com/js/",
  "formats": ["markdown"],
  "render_js": true
}

If the extraction fails, the failed extraction is not charged.

For batch and crawl jobs, check token_summary.tokens_charged_total on the job status response to see how many requests have been charged so far. token_summary.tokens_reserved shows the amount still reserved for queued or processing items.

On this page