# Read rate-limit status

`GET /v1/rate-limit`

General minute request and free-model hourly/daily counters. Does not enumerate all key, model or upstream limits.

Base URL: `https://api.simplellm.eu`. Authenticate using `Authorization: Bearer $SIMPLELLM_API_KEY`.

## Example request

~~~bash
curl --fail-with-body https://api.simplellm.eu/v1/rate-limit \
  -H "Authorization: Bearer $SIMPLELLM_API_KEY"
~~~

## Responses

### HTTP 200

Successful response

Content-Type: `application/json`

| Field | Type | Required | Meaning |
| --- | --- | --- | --- |
| `limit_rpm` | `integer` | No | General minute request bucket. |
| `used_rpm` | `integer` | No | General minute request bucket. |
| `remaining_rpm` | `integer` | No | General minute request bucket. |
| `limit_rph` | `integer` | No | Free-model rph bucket. |
| `used_rph` | `integer` | No | Free-model rph bucket. |
| `remaining_rph` | `integer` | No | Free-model rph bucket. |
| `limit_rpd` | `integer` | No | Free-model rpd bucket. |
| `used_rpd` | `integer` | No | Free-model rpd bucket. |
| `remaining_rpd` | `integer` | No | Free-model rpd bucket. |
| `limit_tph` | `integer` | No | Free-model tph bucket. |
| `used_tph` | `integer` | No | Free-model tph bucket. |
| `remaining_tph` | `integer` | No | Free-model tph bucket. |
| `limit_tpd` | `integer` | No | Free-model tpd bucket. |
| `used_tpd` | `integer` | No | Free-model tpd bucket. |
| `remaining_tpd` | `integer` | No | Free-model tpd bucket. |
| `reset_seconds` | `integer` | No | Minute-bucket reset only. |
| `banned` | `boolean` | No |  |
| `banned_until` | `string` | No |  |

Illustrative response shape only; IDs, timestamps and counters below are synthetic, not live limits or customer data.

~~~json
{
  "limit_rpm": 0,
  "used_rpm": 0,
  "remaining_rpm": 0,
  "limit_rph": 0,
  "used_rph": 0,
  "remaining_rph": 0,
  "limit_rpd": 0,
  "used_rpd": 0,
  "remaining_rpd": 0,
  "limit_tph": 0,
  "used_tph": 0,
  "remaining_tph": 0,
  "limit_tpd": 0,
  "used_tpd": 0,
  "remaining_tpd": 0,
  "reset_seconds": 0,
  "banned": false,
  "banned_until": "example"
}
~~~

## Error handling

Errors can occur in authentication, billing, routing or the upstream service; not every status applies to every route.

| Status | Meaning |
| --- | --- |
| 400 | Invalid request |
| 401 | Invalid credentials |
| 402 | Insufficient credits |
| 403 | Access denied |
| 404 | Model or resource not found |
| 429 | Rate or capacity limit |
| 500 | Internal error |
| 502 | Routing or upstream error |
| 503 | Temporarily unavailable |
| 504 | Deployment timeout |

See [Troubleshooting](/docs/errors.html) for response examples and [Rate limits & retries](/docs/limits.html) for retry rules.

## Machine-readable schema

[Download OpenAPI JSON](/openapi.json). Operation ID: `getRateLimit`.
