---
title: "What this key may do, its agent's daily spending limit with what is left, the machine time the account can still run without credit, the account's limits with what it uses of each, and its credit with how long it lasts."
method: GET
path: "/v1/limits"
tags: ["limits"]
---

# What this key may do, its agent's daily spending limit with what is left, the machine time the account can still run without credit, the account's limits with what it uses of each, and its credit with how long it lasts.

`GET /v1/limits`

## Request

- Base URL: `https://api.withruntime.com`
- URL: `https://api.withruntime.com/v1/limits`
- Auth: HTTP bearer

A key is full, read (read-only: every read, no write) or selected. An owner may set a daily limit on the agent a key belongs to, at https://withruntime.com/account/keys; a key can read it here but never change it. When a create, wake, extension or renewal would take the agent past it, the request fails with spending_limit_reached (402). The account's limits (sandboxes at once, their vCPUs and memory, volumes, snapshots and the rest) come with what it uses of each now, the numbers a create past one is refused quota_exceeded by. credit says what is left, how many days it lasts at this month's pace, and who adds more: an account opened with a wallet that no person pays for adds its own with POST /v1/billing/topups. Money is integer microdollars in strings.

## Response `200`

Success

- object
  - `access` 'full' | 'read' | 'selected' | 'null', nullable, required: full: every action in every product. read: every read and nothing else (a read-only key). selected: the actions the key names.
  - `daily` object, required
    - `limitMicros` string, nullable, required: The most this agent may commit in any 24 hours. Integer microdollars, as a string, or null when the agent has no daily limit.
    - `usedMicros` string, required: What this agent committed in the last 24 hours: charges settled plus money still on hold. Integer microdollars, as a string (1,000,000 = $1).
    - `remainingMicros` string, nullable, required: What is left under the limit right now. Integer microdollars, as a string, or null when the agent has no daily limit.
    - `window` '24h', required: The limit counts a rolling 24 hours.
  - `trial` object, nullable, required: Machine time an account without credit can still run, in milliseconds, the same figures as GET /v1/usage, or null when the account has none. totalMs, usedMs and reservedMs count free hours an account was given before 5 October 2026; availableMs is the larger of those hours left and this month's free usage, as time at the largest size an account without credit runs (2 vCPU, 4096 MiB). A sandbox that has not ended holds its whole lease in reservedMs; what it did not use comes back when it ends.
    - `totalMs` integer, required: Free hours given before 5 October 2026; 0 for an account given none.
    - `usedMs` integer, required: Of those hours, used by sandboxes that ended.
    - `reservedMs` integer, required: Of those hours, held for sandboxes that have not ended.
    - `availableMs` integer, required: What a new sandbox without credit can still use: the larger of total - used - reserved and this month's free usage.
    - `offer` 'hours' | 'monthly', required: hours: the account was given free hours before 5 October 2026 and keeps them. monthly: free usage every month only.
    - `renewsAt` string, date-time, required: When the free usage renews: the 1st of next month, 00:00 UTC.
  - `account` object[], nullable, required: Every limit the account is held to, with what it uses of each now: the same numbers that refuse a create with quota_exceeded (its details.limit names the row), as https://withruntime.com/account/limits shows them. Null when they can't be read.
    - `limit` string, required: <kind>.<dimension>, such as sandbox.count, sandbox.vcpu, sandbox.memory_mib or volume.count.
    - `label` string, required: The limit in words.
    - `unit` 'count' | 'mib', required: What max and used count: things, or MiB.
    - `max` integer, required: The most the account may hold.
    - `used` integer, required: What it holds now.
  - `credit` object, required
    - `availableMicros` string, required: The account's credit left now, as GET /v1/usage's available: credited less spent, expired and held. Integer microdollars, as a string (1,000,000 = $1).
    - `dailyPaceMicros` string, nullable, required: A day of usage at this month's pace (settled usage so far over the time the month has run; last month's while this one is under three days old). Integer microdollars, as a string, or null when nothing is being spent.
    - `runwayDays` integer, nullable, required: Whole days the credit lasts at that pace, rounded down; null when nothing is being spent. The console's Home says the same.
    - `lowBelowDays` integer, required: Credit lasting fewer days than this is low: the credit.low webhook and the owners' notice are sent then.
    - `state` 'ok' | 'low' | 'empty', required: low: under lowBelowDays left at this pace. empty: none left; running paid sandboxes pause and new ones are refused.
    - `addedBy` 'owner' | 'agent', required: Who adds credit. owner: a person, on the website (https://withruntime.com/account/billing). agent: the account was opened with a wallet and no person pays for it, so its own agents add credit with POST /v1/billing/topups (`npx withruntime billing topup <usd>`).

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/withruntime/apis/runtime-cloud-api.md) · [All operations](https://skmtc.dev/withruntime/apis/runtime-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/withruntime/apis/runtime-cloud-api/revisions/6f4012286988?raw)
