Envelope[RateLimitsDocsResponse]
data object
anyOf
- RateLimitsDocsResponse
- null
apiKeyTransactionLimit object
anyOf
- ApiKeyTransactionLimitDoc
- null
Documentation block describing the per-API-key spend cap.
This is intentionally distinct from the per-window rate-limits exposed
via defaults / endpoints above. It exists because callers
historically conflated the two: until 2026-05 both signals surfaced as
HTTP 429 LIMIT_REACHED, leading to misguided client-side back-off
against a static spend cap that does not "free up" with time.
Now:
- Per-window rate limits — HTTP 429
LIMIT_REACHED. Retry with back-off once the window resets. - Per-API-key transaction limit — HTTP 409
API_KEY_LIMIT_EXCEEDEDwitherrorCode='api_key_transaction_limit_exceeded'. Cannot be resolved by retrying; the cap must be raised (ortransactionUsedreset) through the control plane.
descriptionDescriptionrequired
enforcedOnstring[]required
errorCodeErrorcoderequired
httpStatusHttpstatusrequired
remediationRemediationrequired
retryableRetryablerequired
statusCodeStatuscoderequired
defaults objectrequired
limitLimitrequired
windowSecondsWindowsecondsrequired
endpoints object[]required
Array [
keyKeyrequired
limitLimitrequired
methodMethodrequired
pathPathrequired
sourceSourcerequired
Possible values: [default, rule, override]
windowSecondsWindowsecondsrequired
]
errorCode object
anyOf
- string
- null
string
errors object
anyOf
- object[]
- null
Array [
codeFieldErrorCoderequired
Possible values: [MISSING, OUT_OF_RANGE, INVALID_FORMAT, INVALID_VALUE, NOT_ALLOWED, TOO_LONG, TOO_SHORT]
fieldFieldrequired
messageMessagerequired
]
statusTransactionStatusrequired
Possible values: [SUCCESS, IN_PROGRESS, PARTIALLY_COMPLETED, CANCELLED]
statusCodeStatusCoderequired
Possible values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
statusMessageStatusmessagerequired
traceIdTraceidrequired
Envelope[RateLimitsDocsResponse]
{
"data": {
"apiKeyTransactionLimit": {
"description": "string",
"enforcedOn": [
"string"
],
"errorCode": "string",
"httpStatus": 0,
"remediation": "string",
"retryable": true,
"statusCode": 0
},
"defaults": {
"limit": 0,
"windowSeconds": 0
},
"endpoints": [
{
"key": "string",
"limit": 0,
"method": "string",
"path": "string",
"source": "default",
"windowSeconds": 0
}
]
},
"errorCode": "string",
"errors": [
{
"code": "MISSING",
"field": "string",
"message": "string"
}
],
"status": "SUCCESS",
"statusCode": 0,
"statusMessage": "string",
"traceId": "string"
}