---
title: "List the API keys this credential can see"
method: GET
path: "/v1/keys"
tags: ["Keys"]
---

# List the API keys this credential can see

`GET /v1/keys`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/keys`
- Auth: HTTP bearer

The tenant's `companyId`, its MCP URL, and the keys visible to the caller — a user-bound credential sees the keys bound to that user, a `brain:admin` (or M2M) credential sees every key in the tenant. Secrets and hashes are never returned: a row carries a display `prefix` only. `issuableScopes` is what THIS credential may grant, and `issuingEnabled` is false on a deployment with no database-backed key store. Source: src/keys/keys.controller.ts.

Required scope: `brain:read`.

## Response `200`

Visible keys plus the connection values.

- KeyListResponse
  - `companyId` string, required
  - `issuableScopes` string[], required
  - `issuingEnabled` boolean, required
  - `keys` ApiKeySummary[], required
    - `createdAt` string
    - `createdBy` string
    - `expiresAt` string
    - `id` string, required
    - `lastUsedAt` string
    - `name` string, required
    - `prefix` string, required
    - `revokedAt` string
    - `scopes` string[], required
    - `userId` string
  - `mcpUrl` string, required

## Other responses

- `401`: Missing or unknown bearer key.
- `403`: The key lacks the required scope.

---

[API](https://skmtc.dev/inite/apis/inite-brain-platform-api.md) · [All operations](https://skmtc.dev/inite/apis/inite-brain-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inite/apis/inite-brain-platform-api/revisions/c7c3eb5e304b?raw)
