# List account API keys

`GET /v1/keys/`



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/keys/ \
  -H "Authorization: Bearer $SIMPLELLM_API_KEY"
~~~

## Responses

### HTTP 200

Successful response

Content-Type: `application/json`

| Field | Type | Required | Meaning |
| --- | --- | --- | --- |
| `api_keys` | `array<APIKey>` | No |  |
| `api_keys[].id` | `string` | No |  |
| `api_keys[].user_id` | `string` | No |  |
| `api_keys[].key_prefix` | `string` | No | Public prefix only, never the key secret. |
| `api_keys[].name` | `string / null` | No |  |
| `api_keys[].rate_limit_rpm` | `integer / null` | No |  |
| `api_keys[].rate_limit_tpm` | `integer / null` | No |  |
| `api_keys[].max_concurrent` | `integer / null` | No |  |
| `api_keys[].balance_enabled` | `boolean` | No |  |
| `api_keys[].balance_sc` | `number` | No |  |
| `api_keys[].balance_limit_sc` | `number` | No |  |
| `api_keys[].created_at` | `string` | No |  |
| `api_keys[].last_used_at` | `string / null` | No |  |
| `api_keys[].revoked_at` | `string / null` | No |  |

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

~~~json
{
  "api_keys": [
    {
      "id": "00000000-0000-4000-8000-000000000000",
      "user_id": "00000000-0000-4000-8000-000000000000",
      "key_prefix": "sk-example",
      "name": null,
      "rate_limit_rpm": null,
      "rate_limit_tpm": null,
      "max_concurrent": null,
      "balance_enabled": false,
      "balance_sc": 0,
      "balance_limit_sc": 0,
      "created_at": "2026-09-14T00:00:00Z",
      "last_used_at": null,
      "revoked_at": null
    }
  ]
}
~~~

## 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: `listKeys`.
