Billing summary
/v1/billingRequest
https://api.scrapercompany.com/v1/billingAuthenticate with your API key in the x-api-key header (see Authentication).
Example request
curl "https://api.scrapercompany.com/v1/billing" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY"Response
200 — Plan, balance and current period.
{
"mode": "shadow",
"plan": {
"code": "starter",
"name": "Starter",
"monthly_credits": 50000,
"price_usd": 49,
"concurrency": 10
},
"credits": {
"balance": 48210,
"reserved": 20,
"available": 48190,
"credits_used": 1790,
"credits_refunded": 0,
"billable_requests": 312
},
"period": {
"start": "2026-10-01T00:00:00+00:00",
"end": "2026-11-01T00:00:00+00:00"
},
"subscription": {
"status": "active",
"stripe_managed": true
}
}Response fields
Fields marked required are always present; others appear when they apply.
- modestringrequired
Credit metering mode:
shadow(metered and recorded, never blocks) during the beta;enforceonce paid plans are on sale.One of
offshadowenforce - planobjectrequired
Show 5 child fieldsHide child fields
- plan.codestringrequired
Plan code.
One of
freestartergrowthscaleenterprise - plan.namestringrequired
- plan.monthly_creditsintegerrequired
Credits granted at the start of each period.
- plan.price_usdintegerrequired
Monthly price in USD; 0 = free, -1 = custom (sales).
- plan.concurrencyintegerrequired
Concurrent metered requests allowed once enforcement is on.
- creditsobjectrequired
Show 6 child fieldsHide child fields
- credits.balanceintegerrequired
Credits on the account. In shadow mode this can go negative; the overdraft is forgiven at renewal.
- credits.reservedintegerrequired
Credits held by requests that are still running.
- credits.availableintegerrequired
balance - reserved. - credits.credits_usedintegerrequired
Credits charged this period.
- credits.credits_refundedintegerrequired
Credits returned this period.
- credits.billable_requestsintegerrequired
Requests charged this period.
- periodobjectrequired
Show 2 child fieldsHide child fields
- period.startstring (date-time)required
- period.endstring (date-time)required
Renewal time; unspent credits expire then.
- subscriptionobject
Show 2 child fieldsHide child fields
- subscription.statusstring
- subscription.stripe_managedboolean
Errors
Errors return a JSON body with a detail field. Failed requests are not charged. See Errors for the full list and retry advice.
| Status | Meaning | Retry? |
|---|---|---|
401Unauthorized | Missing or invalid API key. {"detail":"missing or invalid API key"} | No, fix the request |
404Not Found | The property, stay, job or record was not found. {"detail":"job not found"} | No, fix the request |
429Too Many Requests | Too many requests: the key's requests-per-minute limit was exceeded, or (once credit enforcement is on) the plan's concurrent-request limit. No rate-limit or Retry-After headers are sent; back off and retry. {"detail":"rate limit 60/min exceeded"} | Yes, with backoff |
Try it
- Export your key:
export SCRAPERCOMPANY_API_KEY=sk_...(no key yet? request access). - Copy the cURL example above and run it in a terminal.
- Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.