---
title: "Plan, subscription status, and usage against every quota"
method: GET
path: "/billing/usage"
tags: ["billing"]
---

# Plan, subscription status, and usage against every quota

`GET /billing/usage`

## Request

- Base URL: `https://api.indraft.io`
- URL: `https://api.indraft.io/billing/usage`
- Auth: HTTP bearer

Plan, subscription state, and usage against every quota, served from the control plane rather than the workspace. That separation is deliberate: billing state has to be readable when a workspace is at its storage ceiling, and checking whether you are over budget must not consume the budget.

## Response `200`

Success

- object
  - `plan` string, required
  - `status` string, required
  - `metrics` object[], required
    - `metric` string, required
    - `used` integer, required
    - `limit` integer, required
  - `activity` object
    - `interactions` integer, required
    - `tasks` integer, required
  - `capacity` object
    - `bytes` integer, required
    - `ceilingBytes` integer, required
    - `fractionUsed` integer, required
    - `warning` 'none' | 'approaching' | 'critical', required
    - `operatorAlert` boolean, required
    - `projection` object, required
      - `observedDays` integer, required
      - `bytesPerDay` integer, required
      - `monthsToCeiling` integer, required
      - `reachesCeilingAt` string, required
    - `indexedRecords` integer
  - `overage` object
    - `pooled` object, required
      - `records` integer, required
      - `changes` integer, required
    - `lines` object[], required
      - `metric` 'records' | 'changes', required
      - `over` integer, required
      - `blocks` integer, required
      - `blockSize` integer, required
      - `perBlockMinor` integer, required
      - `amountMinor` integer, required
    - `seatsMinor` integer, required
    - `totalMinor` integer, required
    - `cappedTo` string, required
    - `savedMinor` integer, required

## Other responses

- `401`: No credential, or one that has been revoked.
- `403`: Authenticated, and this capability is not held.
- `429`: Infrastructure protection tripped. This is not a product quota.
- `500`: A defect on our side. The hint says so, and carries an incident id.

---

[API](https://skmtc.dev/indraft/apis/indraft-api.md) · [All operations](https://skmtc.dev/indraft/apis/indraft-api/llms.txt) · [OpenAPI document](https://skmtc.dev/indraft/apis/indraft-api/revisions/d9bb05346d66?raw)
