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

# Key Management

> List issued keys, revoke individual keys, and bulk-revoke keys by watermark using the API.

<Info>
  The Developer Platform API requires a **Max plan**. [Upgrade in your dashboard](https://developer.sirius.menu/settings).
</Info>

## List keys

```
GET /v1/projects/:id/keys
```

Paginated list of issued keys. Raw key values are never returned — only metadata.

### Query parameters

| Param    | Default | Max | Description       |
| -------- | ------- | --- | ----------------- |
| `limit`  | 50      | 100 | Keys per page     |
| `offset` | 0       | —   | Pagination offset |

```bash theme={null}
curl "https://developer.sirius.menu/v1/projects/a1b2.../keys?limit=10" \
  -H "Authorization: Bearer sdt_..."
```

```json theme={null}
{
  "keys": [
    {
      "id": "k1a2b3c4-...",
      "user_hash": "a9f2c8...",
      "tier": "standard",
      "watermark": "4f8a2b1c9d3e7f06",
      "issued_at": 1712345678,
      "expires_at": 1712432078,
      "max_uses": null,
      "current_uses": 14,
      "revoked": 0
    }
  ],
  "total": 1842
}
```

## Revoke a key

```
POST /v1/projects/:id/keys/revoke
```

Revoke a single key by its ID. The key immediately stops working.

```bash theme={null}
curl -X POST https://developer.sirius.menu/v1/projects/a1b2.../keys/revoke \
  -H "Authorization: Bearer sdt_..." \
  -H "Content-Type: application/json" \
  -d '{ "key_id": "k1a2b3c4-..." }'
```

```json theme={null}
{ "ok": true }
```

## Bulk revoke by watermark

```
POST /v1/projects/:id/keys/revoke-bulk
```

Revoke every key with a matching watermark. Use this when a leaked script dump contains a watermark — extract the 16-character hex string from the `WM_` prefix and pass it here.

```bash theme={null}
curl -X POST https://developer.sirius.menu/v1/projects/a1b2.../keys/revoke-bulk \
  -H "Authorization: Bearer sdt_..." \
  -H "Content-Type: application/json" \
  -d '{ "watermark": "4f8a2b1c9d3e7f06" }'
```

```json theme={null}
{ "ok": true, "revoked_count": 3 }
```

The `watermark` must be exactly 16 lowercase hex characters.
