---
title: "Credits and budget"
method: GET
path: "/credits"
tags: ["Credits"]
---

# Credits and budget

`GET /credits`

Read the balance, the amount held by requests in flight, the amount available now, the current period spend and the spend cap behind the API key. Read-only, charges nothing, never cached.

## Response `200`

Credits and budget

- Credits
  - `object` string, required
  - `balance_cents` integer, required — Stored ledger balance in US cents. Open holds are already taken out of it. Negative when the workspace owes for usage that settled after the balance ran out. The same number a 402 reports as details.current_balance_cents.
  - `held_cents` integer, required — Cents reserved by requests currently in flight. Informational: already inside balance_cents, never subtract it again.
  - `available_cents` integer, required — balance_cents floored at zero. What a new request can be settled against now.
  - `currency` 'usd', required
  - `period` object, required
    - `start` string, date-time, required — Start of the current billing period: the subscription period while the subscription is active or trialing, otherwise the calendar month in UTC.
    - `spent_cents` integer, required — Settled spend in the current period. Open holds are not spend yet.
  - `spend_cap` object, required
    - `limit_cents` integer, nullable, required — Configured monthly spend cap, or null when none is set.
    - `hard` boolean, required — True when reaching the cap refuses new optimization, benchmark and deployment work; false when it only alerts. Always false when there is no cap.
    - `used_cents` integer, nullable, required — What the cap is measured against: settled spend plus declared open maximums. Null when there is no cap.
    - `remaining_cents` integer, nullable, required — limit_cents minus used_cents, floored at zero, or null when there is no cap.
    - `gates_inference` boolean, required — Always false: the cap never refuses an inference request.
  - `plan_tier` string, required — The entitled workspace tier, the same value X-RateLimit-Tier carries.
  - `as_of` string, date-time, required

## Other responses

- `401` — Missing or invalid API key
- `403` — Key scope mismatch or plan limit exceeded
- `429` — Rate limit exceeded
- `503` — Endpoint stopped, provisioning, or at capacity

---

[API](https://skmtc.dev/runinfra/apis/runinfra-api.md) · [All operations](https://skmtc.dev/runinfra/apis/runinfra-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/runinfra/runinfra-api/revisions/dbd314122f80/schema)
