# Get key

> Get one inference key's metadata by its public hash, using a management key.

`GET https://api.numes.ai/api/v1/keys/{hash}`

Source: https://0.0.0.0:3000/docs/api-reference/keys/get-key
Authorization: Bearer management key

The `hash` is the SHA-256 of the full key and appears in every key object. A deleted or unknown key returns `404`.

```request
{
  "method": "GET",
  "path": "/keys/5d41402abc4b2a76b9719d911017c592ae2f5e8f5d9c4b1e0a3f6e7d8c9b0a1f",
  "auth": "management"
}
```

```json title="Response 200"
{
  "data": {
    "hash": "5d41402abc4b2a76b9719d911017c592ae2f5e8f5d9c4b1e0a3f6e7d8c9b0a1f",
    "label": "sk-...-v1-3f9a...c21e",
    "name": "Customer 1042",
    "billing_currency": "USD",
    "disabled": false,
    "limit": 25,
    "limit_remaining": 21.9,
    "limit_reset": "monthly",
    "usage": 3.1,
    "usage_daily": 0.4,
    "usage_weekly": 1.2,
    "usage_monthly": 3.1,
    "created_at": "2026-09-28T12:00:00Z",
    "updated_at": null,
    "expires_at": "2027-01-01T00:00:00Z"
  }
}
```

## Headers

- `X-Request-Id` (string; Length 1–128): Correlation ID, not an idempotency key. Inference request IDs recorded with a generation are unique per account. A traffic-admitted request reusing a recorded ID returns 400 invalid_request. Traffic admission rejection takes precedence over this conflict, including for reused IDs; it performs no generation lookup and writes no generation, result or attempt. Rate-limit rejection returns 429 rate_limited with Retry-After; an inference limiter outage retains 500 server.

## Path parameters

- `hash` (string; required; Pattern ^[a-f0-9]{64}$)

## Response 200 (application/json)

- `data` (object; required)
  - `hash` (string; required)
  - `label` (string; required)
  - `name` (string; required)
  - `billing_currency` (enum<string>; one of USD, BTC): Immutable settlement currency; omitted for management keys.
  - `disabled` (boolean; required)
  - `limit` (number | null; required)
  - `limit_remaining` (number | null; required)
  - `limit_reset` (enum<string> | null; required; one of daily, weekly, monthly)
  - `usage` (number; required)
  - `usage_daily` (number; required)
  - `usage_weekly` (number; required)
  - `usage_monthly` (number; required)
  - `created_at` (string<date-time>; required)
  - `updated_at` (string<date-time> | null; required)
  - `expires_at` (string<date-time> | null; required)

## Response default (application/json)

- `error` (object; required)
  - `code` (integer; required)
  - `message` (string; required)
  - `metadata` (object)
- `openrouter_metadata` (object)
