Skip to content
ScrapeField

Usage and billing

Every call that is charged or refunded is a row you can read, and the rows add up to what you paid. A call refused before the charge is not a row: it costs nothing, and its error says why. If the rows ever do not add up, that is a bug and we will refund the difference.

Two numbers

A call costs the credits published on the pricing page and on every endpoint’s own page. A call we fail costs 0, refunded automatically. That is the whole model — there is no third number, and nothing depends on compute time, response size, whether we had the answer cached, or anything else you cannot see before you call.

The ledger

GET /v1/usage returns one row per call, newest first — the same rows the dashboard shows under Requests. A call we failed is still a row: it costs 0, says refunded: true, and gives the credits it handed back in credits_refunded. A cache hit costs what a fetch costs, and says cached: true.

{
  "data": [
    { "ts": "2026-09-20T09:14:41Z", "endpoint": "linkedin/profile",
      "credits": 0, "refunded": true, "credits_refunded": 11,
      "cached": false, "status": 502, "duration_ms": 25004 },
    { "ts": "2026-09-20T09:12:05Z", "endpoint": "tiktok/profile",
      "credits": 3, "refunded": false, "credits_refunded": 0,
      "cached": true, "status": 200, "duration_ms": 8 },
    { "ts": "2026-09-20T09:12:03Z", "endpoint": "tiktok/profile",
      "credits": 3, "refunded": false, "credits_refunded": 0,
      "cached": false, "status": 200, "duration_ms": 412 }
  ]
}

GET /v1/account gives the same thing rolled up: credits remaining, the trial credits granted when the account was confirmed, your concurrency limit and how much of it is in use, and per-endpoint totals over your last 500 calls.

Running out

When the balance is less than a call costs, that call is refused with insufficient_credits, which says both numbers, and nothing is charged. A cheaper call still works. There is no overage. You buy credits when you choose to, or you turn on an automatic top-up on the billing page: it buys the pack you choose when the balance falls below $10 of credits. You are never billed for something you did not choose. To hear about it first, set a low-balance email on the dashboard’s billing page — it goes once each time the balance crosses your line.

Expiry

Credits do not expire. There is no plan and no billing cycle for them to expire at the end of — credits you buy stay bought.