GET /v1/limits
Returns every limit that applies to the caller with its current usage: concurrency, rates, quotas and size caps per product, plus the key's spend cap. Any valid credential may call it. The IDs match the `limit` member of `429` and `422` problems.

Authentication

Bearer Token (b3os_sk_ API key or b3os_pat_ token) API Key (cookie: __Host-b3os_session)

Responses

200 The limits.
application/json
object string REQUIRED
Enum: limits
org_id string REQUIRED
project_id string REQUIRED
key_id string | null REQUIRED
spend object REQUIRED
cap_usd number | null REQUIRED
used_usd number REQUIRED
period_start string (date-time) REQUIRED
period_end string (date-time) REQUIRED
items object[] REQUIRED
Array of:
id string REQUIRED
Limit ID, also used in the `limit` member of problems.
product string REQUIRED
kind string REQUIRED
Enum: concurrency, rate, quota, size, duration
limit number | null REQUIRED
unit string REQUIRED
window_s integer
current number
reset_s integer
Seconds until the window or quota resets.
401 Missing, malformed, expired or revoked credentials (`unauthorized`).
403 Authenticated but not allowed (`forbidden`, `egress_denied`).
429 A rate, concurrency or quota limit applies (`rate_limited`, `concurrency_limited`, `quota_exceeded`).
500 Something failed inside B3OS (`internal`). Retry with backoff.
503 The node or the product is not available right now (`node_unavailable`, `product_unavailable`, `capacity_unavailable`).
curl -X GET 'https://beta-api.b3os.org/v1/limits' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/limits', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/v1/limits', headers=headers)print(response.json())
200 Response
{  "object": "limits",  "org_id": "org_01m5t5hthd29mm5wpza5ndd6mm",  "project_id": "prj_01m5t3pf8heewxt65ej3dm577y",  "key_id": "key_01m5t5csy2wt4e3er052chyf1x",  "spend": {    "cap_usd": 50,    "used_usd": 1.42,    "period_start": "2026-10-01T00:00:00.000Z",    "period_end": "2026-11-01T00:00:00.000Z"  },  "items": [    {      "id": "sandboxes.concurrent",      "product": "sandboxes",      "kind": "concurrency",      "limit": 10,      "unit": "sandboxes",      "current": 2    },    {      "id": "vision.scrape.rpm",      "product": "vision",      "kind": "rate",      "limit": 60,      "unit": "requests",      "window_s": 60,      "current": 14,      "reset_s": 38    },    {      "id": "routines.steps.daily",      "product": "routines",      "kind": "quota",      "limit": 50000,      "unit": "steps",      "window_s": 86400,      "current": 1290,      "reset_s": 7200    }  ]}
Ask a question... ⌘I