레퍼런스HTTP APILimits & receipts

Installation limits and installation-wide usage

GET
/v1/limits

Reads the limits this installation runs under (execution slots, queued input per session, storage, turn length, per-session cost and token limits, provider retries) and the usage against the installation-wide ones, summed over every owner. Use it to explain STORAGE_LIMIT_EXCEEDED, a full input queue, or sessions waiting in queued for a slot. usage.outputs is the bytes of session outputs kept in the object store, shown beside storage and never enforced.

Without scope, or with scope=installation, only the workspace owner, signed in, reads it: any other member and every API key get 403.

scope=me gives any signed-in member the per-session limits alone (queued_input_limit_per_session, max_turn_seconds, session_cost_limit_usd, session_token_limit), with no usage; an API key gets 403. It changes nothing.

Scope: sessions:read (API key or cookie session).

Authorization

headerAuthorizationBearer <token>

For servers and scripts: an API key sent as an HTTP bearer token, Bearer <key>. It holds exactly the scopes it was issued with; a key issued before scopes existed holds none. It never needs the CSRF header, and it cannot manage agents, members, teams or API keys. Issue one in the web console under Settings → API keys; each operation names the scope it needs.

Scope: sessions:read

Query Parameters

scope?string

installation (the default) for the limits and the installation-wide usage, me for the per-session limits alone.

Default"installation"
Value in"installation""me"

Response Body

The limits and usage as of refreshed_at.

application/json
  1. response
scope*string
refreshed_at*string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
limits*
usage*
Example Request
curl -X GET 'https://example.com/v1/limits'
Example Response
{  "scope": "installation",  "refreshed_at": "2026-10-11T08:15:43Z",  "limits": {    "execution_slot_limit": 4,    "queued_input_limit_per_session": 20,    "storage_limit_bytes": 1073741824,    "max_turn_seconds": 3600,    "session_cost_limit_usd": "20",    "session_token_limit": null,    "provider_max_retries": 2  },  "usage": {    "execution_slots_used": 1,    "queued_input_count": 3,    "storage": {      "used_bytes": 524288,      "accounted_content": [        "input_messages"      ],      "updated_at": "2026-10-11T08:14:00Z"    },    "outputs": {      "used_bytes": 3145728,      "updated_at": "2026-10-11T08:12:30Z",      "complete": true    },    "archived_events": {      "used_bytes": 18712,      "updated_at": "2026-10-05T05:00:12Z"    }  }}