> ## Documentation Index
> Fetch the complete documentation index at: https://docs.subconscious.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate limits

> Throttling, Retry-After, and example responses

View your organization’s configured limits on the [platform Limits page](https://platform.subconscious.dev/limits). If you need higher rate limits, reach out to [support@subconscious.dev](mailto:support@subconscious.dev).

> [!NOTE]
>
> Advertised caps per model (API): [`GET /v1/models`](https://docs.subconscious.dev/api-reference/models). **429** response headers are documented on each inference endpoint in the API reference.

## Handling 429s

`POST /v1/chat/completions`, `/v1/messages`, `/v1/responses`.

| Route | `retry_after_seconds` in JSON |
| - | - |
| Chat Completions, Responses | `error.details.retry_after_seconds` |
| Messages | Use **`Retry-After`** on JSON errors (body omits the field) |

`Retry-After` is seconds until the limit counter resets (minimum 1). Rolling windows for minute/hour/day; calendar UTC month for month.

| Window | `error.code` |
| - | - |
| minute, hour | `rate_limited` |
| day, month | `quota_exceeded` |

**403** `entitlement_suspended` — no `Retry-After`.

## Example: Chat Completions / Responses (429)

**Response headers**

```http theme={null}
HTTP/1.1 429 Too Many Requests
Retry-After: 42
x-request-id: req_019c4f2a8b3d4e5f
request-id: req_019c4f2a8b3d4e5f
Content-Type: application/json
```

**Response body**

```json theme={null}
{
  "error": {
    "message": "request minute limit exceeded",
    "type": "rate_limit_error",
    "code": "rate_limited",
    "request_id": "req_019c4f2a8b3d4e5f",
    "details": {
      "retry_after_seconds": 42,
      "scope": "org:org_abc:subconscious/glm-5.3-marathon",
      "current_usage": 600
    }
  }
}
```

**Request** (normal inference auth — no extra rate-limit headers)

```http theme={null}
POST /v1/chat/completions HTTP/1.1
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## Example: Messages (429)

**Response headers**

```http theme={null}
HTTP/1.1 429 Too Many Requests
Retry-After: 42
x-request-id: req_019c4f2a8b3d4e5f
request-id: req_019c4f2a8b3d4e5f
Content-Type: application/json
```

**Response body**

```json theme={null}
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "request minute limit exceeded"
  }
}
```

**Request**

```http theme={null}
POST /v1/messages HTTP/1.1
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01
Content-Type: application/json
```

## Streaming

Before any stream bytes: JSON error + headers as above. After bytes start: HTTP 200 and the wait hint only in the stream error event (no `Retry-After` on the HTTP response).

Limit rejections are not metered as completions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.