---
title: "Read subscription usage and routing advice"
method: GET
path: "/subscription/v1/usage"
---

# Read subscription usage and routing advice

`GET /subscription/v1/usage`

## Request

- Base URL: `https://api.nano-gpt.com/api`
- URL: `https://api.nano-gpt.com/api/subscription/v1/usage`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Requires an inference API key. For monitoring without spending permissions, use a usage:read management token with /api/management/v1/subscription/usage. Input-token quotas count tokens, not requests.

## Response `200`

Subscription quotas and billing-routing advice. Unavailable counters are null with degraded=true.

- object
  - `active` boolean, required
  - `state` 'active' | 'grace' | 'inactive', required
  - `limits` object, required
    - `dailyInputTokens` number, nullable, required
    - `weeklyInputTokens` number, nullable, required
    - `dailyImages` number, nullable, required
  - `dailyInputTokens` object, nullable, required: Null when this quota is not configured or applicable. Unavailable counters are null with degraded=true. percentUsed is a fraction and may exceed 1. resetAt is UNIX epoch milliseconds.
    - `used` number, nullable, required
    - `remaining` number, nullable, required
    - `percentUsed` number, nullable, required
    - `resetAt` number, nullable, required
    - `degraded` boolean
  - `weeklyInputTokens` object, nullable, required: Null when this quota is not configured or applicable. Unavailable counters are null with degraded=true. percentUsed is a fraction and may exceed 1. resetAt is UNIX epoch milliseconds.
    - `used` number, nullable, required
    - `remaining` number, nullable, required
    - `percentUsed` number, nullable, required
    - `resetAt` number, nullable, required
    - `degraded` boolean
  - `dailyImages` object, nullable, required: Null when this quota is not configured or applicable. Unavailable counters are null with degraded=true. percentUsed is a fraction and may exceed 1. resetAt is UNIX epoch milliseconds.
    - `used` number, nullable, required
    - `remaining` number, nullable, required
    - `percentUsed` number, nullable, required
    - `resetAt` number, nullable, required
    - `degraded` boolean
  - `tokens` object, nullable: Null when this quota is not configured or applicable. Unavailable counters are null with degraded=true. percentUsed is a fraction and may exceed 1. resetAt is UNIX epoch milliseconds.
    - `used` number, nullable, required
    - `remaining` number, nullable, required
    - `percentUsed` number, nullable, required
    - `resetAt` number, nullable, required
    - `degraded` boolean
  - `period` object, required
    - `currentPeriodEnd` string, date-time, nullable, required
  - `usageUnits` 'tokens': Present for token-based trials.
  - `tokenLimits` object: Present for token-based trials.
    - `total` number, required
  - `routing` object: Inference-key-specific billing-policy advice. Does not check current balance, consumed nonzero spend/request caps, or provider health.
    - `recommendedMode` 'subscription' | 'paygo' | 'unavailable'
    - `reason` string
    - `subscriptionQuotaAvailable` boolean, nullable
    - `paidSpendPolicyAllowsBalance` boolean

## Other responses

- `401`: Missing or invalid inference API key
- `429`: Authentication rate limited
- `500`: Unable to read usage
- `503`: Authentication temporarily unavailable

## Changes

- **2026-11-03** `cc8b07d75689`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nano-gpt/apis/nanogpt-api/changes/subscription/v1/usage/get.md)

---

[API](https://skmtc.dev/nano-gpt/apis/nanogpt-api.md) - [All operations](https://skmtc.dev/nano-gpt/apis/nanogpt-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nano-gpt/apis/nanogpt-api/revisions/cc8b07d75689?raw)
