---
title: "Query current rate limiting status across the system."
method: GET
path: "/api/v1/rate-limit/status"
---

# Query current rate limiting status across the system.

`GET /api/v1/rate-limit/status`

**Access**: Restricted to users with `role: "SUPERADMIN"`
**Purpose**: Provides visibility into current rate limiting state for monitoring
  and debugging.

**Response Schema**:
```json
{
  "message": "Rate limiting status retrieved successfully",
  "data": {
    "enabled": true,
    "storage_type": "database",
    "total_active_limits": 1,
    "active_limits": [
      {
        "key": "user:123",
        "identifier": "user:123",
        "type": "user",
        "occurred_at": "2025-11-02T10:15:30+00:00",
        "expires_at": "2025-11-02T10:16:30+00:00",
        "limit_definition": "5 per minute",
        "limit": 5,
        "current_count": null,
        "time_window_seconds": 60,
        "retry_after_seconds": 60,
        "user_info": {
          "id": "123",
          "email": "user@example.com",
          "name": "John Doe",
          "role": "USER"
        }
      }
    ]
  }
}
```

**Response Fields**:
- `enabled`: Whether rate limiting is active.
    - `storage_type`: Backend storage type reported by the status endpoint.
    - `total_active_limits`: Count of currently active rate limit entries.
    - `active_limits`: Array with metadata for each active rate limit, including:
  - `key`: Identifier used by the limiter storage (e.g., `user:<uuid>`).
  - `identifier`: User or IP identifier associated with the limit.
  - `type`: Limit category such as `user`, `ip`, or `auth`.
  - `occurred_at`: Timestamp when the most recent 429 was recorded.
  - `expires_at`: Timestamp when the limit will automatically expire.
  - `limit_definition`: Human-readable description of the breached rule.
        - `limit`: Parsed numeric request limit when available.
  - `current_count`: Latest known request count (may be null).
  - `time_window_seconds`: Time window for the limit in seconds.
  - `retry_after_seconds`: Retry hint provided by the limiter, if available.
        - `user_info`: Contextual user information for user-type limits
            (null otherwise).

**Error Responses**:
- `403 Forbidden`: User does not have SUPERADMIN privileges
- `401 Unauthorized`: Valid JWT token required
- `500 Internal Server Error`: Failed to query rate limiting status

## Response `200`

Success

- object

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.dev/trends/apis/trends-earth-api.md) · [All operations](https://skmtc.dev/trends/apis/trends-earth-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trends/trends-earth-api/revisions/6bdbc0b84666/schema)
