# Get current billing period usage

**GET** `/v1/usage`

## Responses

### 200 — Period summary. In bytes or dual billing mode, includes byte fields
and structured bandwidth/credits objects.
- `period_start`
- `period_end`
- `credits_used`
- `credits_single`
- `credits_bulk`
- `credits_monitor`
- `credits_scrape`
- `credits_search`
- `credits_limit`
- `credits_remaining`
- `has_overage`
- `overage_credits`
- `plan_name`
- `plan_price_cents`
- `plan_type`
- `topup_spent_cents`
- `topup_balance_bytes`
- `period_days_elapsed`
- `bytes_used`
- `bytes_single`
- `bytes_bulk`
- `bytes_scrape`
- `bytes_monitor`
- `bytes_limit`
- `bytes_remaining`
- `rollover_bytes`
- `topup_bytes`
- `request_count`
- `request_count_previous_period`
- `playground_api_key_id`
- `bandwidth`
- `bandwidth.used_bytes`
- `bandwidth.limit_bytes`
- `bandwidth.remaining_bytes`
- `bandwidth.topup_bytes`
- `bandwidth.purchased_topup_bytes`
- `bandwidth.granted_topup_bytes`
- `bandwidth.rollover_bytes`
- `credits`
- `credits.used`
- `credits.limit`
- `credits.remaining`
- `credits.topup_credits`
- `credits.purchased_topup_credits`
- `credits.granted_topup_credits`
- `credits.rollover_credits`

### 401 — Unauthorized. The request carried no valid credential, and no work was
performed. The unified `Error` envelope carries one of the codes below
in `error.code`; match on the code, never on the prose.

- `invalid_api_key` — a bearer API key was presented and rejected:
  unknown, revoked, expired or malformed. The bearer-only operations
  (`/v1/webhook-deliveries*` among them) also return it when no
  `Authorization` header is sent. `GET /v1/account` is the exception
  to "malformed": it returns `invalid_api_key` only for a key that
  starts `sk_test_` or `sk_live_` and is unknown, revoked or expired.
- `unauthorized` — the `Authorization` header is absent or malformed on
  an operation that also accepts a dashboard session (the dual-auth and
  billing operations). `GET /v1/account` also returns it, for no
  `Authorization` header and for any bearer value that does not start
  `sk_test_` or `sk_live_` (that value is checked as a dashboard
  session token).

Not retryable as-is: supply a valid API key first.
- `status`
- `error`
- `error.code`
- `error.message`
- `error.http_status`
- `error.failed_at`
- `error.details`