---
title: "GET /v1/quotas — quota usage for the key's org."
method: GET
path: "/v1/quotas"
tags: ["quotas"]
---

# GET /v1/quotas — quota usage for the key's org.

`GET /v1/quotas`

Return current resource usage, plan limits, and organization-specific quota overrides.

## Response `200`

Quota usage

- QuotaUsage — Resolved quota limits and current usage for an organization. Limits are resolved via COALESCE: per-org override > plan. Every limit is `Option`: `None` = unlimited (counts/budgets) or the system/node max (per-sandbox vcpu/memory/disk). There is no magic 0.
  - `hard_cap` boolean, required — Whether the plan hard-stops at its included pools (no overflow). DERIVED (not a stored column): true iff the resolved plan is unpriced — an unpriced plan has no overage path, so its pools become walls.
  - `included_memory_gib_hours` integer, nullable — Included memory GiB-hours/month; `None` = unlimited.
  - `included_vcpu_hours` integer, nullable — Included vCPU-hours/month; `None` = unlimited. On `hard_cap` plans this is the compute wall; on priced plans, usage beyond it is metered overage.
  - `memory_gib_hours_used` number, double, required — Memory GiB-hours consumed this billing month (compute-on-read from `sandbox_runs`).
  - `vcpu_hours_used` number, double, required — vCPU-hours consumed this billing month (compute-on-read from `sandbox_runs`).
  - `concurrent_ephemeral_running` integer, required — Currently running/starting ephemeral sandboxes.
  - `concurrent_persistent_running` integer, required — Currently running/starting persistent sandboxes.
  - `included_disk_gib_hours` integer, nullable — Included writable-disk GiB-hours/month (display/billing only — never a wall).
  - `included_storage_gib` integer, nullable — Included durable-storage GiB/month.
  - `is_suspended` boolean, required — Whether sandbox usage has been manually suspended for the organization.
  - `max_concurrent_ephemeral_running` integer, nullable — Maximum simultaneously-running ephemeral sandboxes.
  - `max_concurrent_persistent_running` integer, nullable — Maximum simultaneously-running persistent sandboxes.
  - `max_disk_size_mib_per_sandbox` integer, nullable — Maximum writable disk size (MiB) per sandbox.
  - `max_memory_mib_per_sandbox` integer, nullable — Maximum memory (MiB) per sandbox.
  - `max_sandboxes` integer, nullable — Maximum total sandboxes the org can have.
  - `max_total_storage_gib` integer, nullable — Per-org durable-storage hard cap (GiB).
  - `max_uptime_minutes_per_sandbox` integer, nullable — Maximum uptime per sandbox (minutes), if set.
  - `max_vcpus_per_sandbox` integer, nullable — Maximum CPU cores per sandbox.
  - `pool_exhausted` boolean, required — Snapshot of [`PoolUsage::pool_exhausted`] at read time, for API consumers — true when this org's sandboxes are being stopped and starts refused.
  - `total_sandboxes` integer, required — Total sandboxes (all states) for the org.

## Other responses

- `401` — Unauthorized
- `404` — Org not found

---

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