Skip to content

Read a tenant's limits

View as Markdown
GET
/v1/system/tenants/{tenantId}/limits
curl --request GET \
--url https://example.com/v1/system/tenants/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/limits \
--header 'Authorization: Bearer <token>'

The tenant’s limits as stored, in the shape PUT takes: to change one, read them, change it and put them all back. A limit that isn’t set is absent, and isn’t enforced. From a runtime that counts it, inUse says how much of each counted limit the tenant uses now (projectsInProduction), which can be over a limit lowered below it. Takes system:tenants:limits. A closing tenant’s limits can be read.

tenantId
required
string format: uuid

The tenant’s id.

The tenant’s limits.

Media typeapplication/json
object
tenantId
required
string format: uuid
limits
required

The tenant’s limits that are set. A limit that isn’t set is absent, and isn’t enforced.

object
apiRequestsPerMinute

API requests a minute. Past it: 429 rate-limit-exceeded.

integer
>= 1
webhookReceivesPerMinute

Webhook deliveries received a minute, across the tenant’s triggers. Past it: 429.

integer
>= 1
runsAtOnce

Runs executing at once. Past it, a new run waits as pending.

integer
>= 1
runsPending

Runs waiting as pending. Past it, a new run is refused with 429.

integer
>= 1
toolCallsInFlight

Tool calls in flight to the tenant’s pack services. Past it, a call waits for a slot.

integer
>= 1
approvalsPending

Approvals waiting for a decision. Past it, the step that asks fails, naming the limit.

integer
>= 1
projectsInProduction

Projects in production at once. Past it, putting another project in production is refused with 403 production-limit-reached. Lowering it takes no project out of production.

integer
>= 1
inUse

How much of each limit that counts something the tenant uses now, whether the limit is set or not: on GET …/limits only, and only from a runtime that counts it. A limit can be lowered below it: nothing is taken back, and the next one waits until the count is under the limit.

object
projectsInProduction
required

The tenant’s projects in production.

integer
Examplegenerated
{
"tenantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"limits": {
"apiRequestsPerMinute": 1,
"webhookReceivesPerMinute": 1,
"runsAtOnce": 1,
"runsPending": 1,
"toolCallsInFlight": 1,
"approvalsPending": 1,
"projectsInProduction": 1
},
"inUse": {
"projectsInProduction": 1
}
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

A tenant’s key or session (system-principal-required), or a system key without system:tenants:limits (system-scope-missing).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

No tenant with that id, or a purged one (tenant-not-found).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

See also