Skip to content
Billing

Billing summary

GET/v1/billing
Free

Request

GEThttps://api.scrapercompany.com/v1/billing

Authenticate 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.

200 response
{
  "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; enforce once paid plans are on sale.

    One ofoffshadowenforce

  • planobjectrequired
    Show 5 child fields
    • plan.codestringrequired

      Plan code.

      One offreestartergrowthscaleenterprise

    • 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 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 fields
    • period.startstring (date-time)required
    • period.endstring (date-time)required

      Renewal time; unspent credits expire then.

  • subscriptionobject
    Show 2 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.

StatusMeaningRetry?
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

  1. Export your key: export SCRAPERCOMPANY_API_KEY=sk_... (no key yet? request access).
  2. Copy the cURL example above and run it in a terminal.
  3. Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.