Current-period usage against the plan allowance
Usage for the current period, with credit allowance arithmetic in micro-credits (1 credit = 1000000), plus the monthly allowance the API enforces.
Requires scope: read
Usage for the current period, with credit allowance arithmetic in micro-credits (1 credit = 1000000), plus the monthly allowance the API enforces. Takes no parameters.
Every organization has a monthly credit allowance (1,000 credits unless an operator set a
different limit for the organization), counted per allowance month: from 00:00 UTC on the day of
the month the organization was created to the same day of the next month. When it is used up,
requests are refused with 402 ERR::LIMIT::QUOTA_EXCEEDED until allowance.resets_at.
allowanceis the number the API enforces, and the one to show as "credits left":allowance.remaining_micro. Itsused_microis the enforcement counter, which includes credits currently HELD for in-flight work (an open browser session holds its wholesession_ttlprice, a batch job holds the price of its unfinished items) as well as credits spent. It is omitted when the deployment has no allowance counter, or when the counter could not be read (a warning then says so).creditsis METERED usage from the usage rollup for the period: spent credits only, batch items included, but not credits held for work still running. It can therefore be lower thanallowance.used_micro.- With no subscription (the usual case), the organization is on the free plan:
plannames the currentfreeplan,plan.subscription_statusisnone,plan.period_sourceisallowance_month, andcredits.included_microis the enforced monthly limit. The period is the allowance month, not a billing period. - With a subscription,
period_sourceissubscription, the period is the billing period andcredits.included_microis the plan's included credits. The enforced limit is stillallowance.limit_micro.
Pitfalls:
- There is no money figure. Overage pricing is computed only at invoicing.
unattributedusually equalsmetricstoday because per-engine attribution is not populated.
Authorization
bearerAuth Authorization: Bearer <key>. Read the key from the SPICRAWL_API_KEY environment
variable; never hard-code or log it. spicrawl_test_… keys can never spend live
credits. Scopes: scrape, batch, sessions (granted by default), browser
and read (granted deliberately). A missing scope is 403 ERR::AUTH::INSUFFICIENT_SCOPE naming the scope.
In: header
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/v1/usage/summary"{ "period": { "start": "2026-09-01", "end": "2026-10-01", "days": 30, "bounds": "[start, end)" }, "period_elapsed_days": 21, "plan": { "code": "growth", "name": "Growth", "version": 3, "subscription_status": "active", "period_source": "subscription" }, "credits": { "included_micro": 100000000000, "used_micro": 42500000000, "remaining_micro": 57500000000, "overage_micro": 0, "overage_micro_cents_per_credit": 90000, "used_basis_points": 4250 }, "allowance": { "limit_micro": 1000000000, "limit_credits": 1000, "limit_source": "default", "unlimited": false, "used_micro": 430000000, "remaining_micro": 570000000, "window_start": "2026-09-14T00:00:00Z", "resets_at": "2026-10-14T00:00:00Z" }, "metrics": { "requests": 10630, "credits": 42500000000, "engine_ms": 18200000 }, "unattributed": { "requests": 10630, "credits": 42500000000, "engine_ms": 18200000 }, "usage_as_of": "2026-09-22T11:55:00Z", "stale_seconds": 300}