# Admin

Keys and usage.

Keys and usage.

## listKeys

`GET /v1/keys`

Local API keys (never the secret)

| Response | Means |
|---|---|
| 200 | Keys. |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |

## createKey

`POST /v1/keys`

Create a key; the secret is shown once

Request body: `application/json`.

| Field | Type | What it is |
|---|---|---|
| `name` | string |  |
| `scopes` | array of `devices:read`, `devices:control`, `apps:manage`, `scenarios:run`, `agent:run`, `credentials:fill`, `recordings:read`, `admin` |  |
| `deviceIds` | array of string |  |
| `policyProfile` | string |  |
| `mcpToolProfile` | `core`, `testing`, `full` | Which MCP tools a client sees over HTTP (`core` 15 tools, `testing`, or `full`); `/mcp?profile=` overrides it per connection. |
| `expiresAt` | string |  |

| Response | Means |
|---|---|
| 201 | Created. `ApiKeyCreated` |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |

## revokeKey

`DELETE /v1/keys/{keyId}`

Revoke a key at once

| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
| `keyId` | path | yes | string |  |

| Response | Means |
|---|---|
| 204 | Revoked. |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |

## getUsage

`GET /v1/usage`

Model spend, run counts and device time

| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
| `from` | query | no | string |  |
| `to` | query | no | string |  |
| `groupBy` | query | no | `day`, `device`, `actor`, `model` |  |

| Response | Means |
|---|---|
| 200 | Usage. `Usage` |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |