---
title: "GET /v4/workspaces/{workspaceId}/api-keys"
method: GET
path: "/v4/workspaces/{workspaceId}/api-keys"
tags: ["Workspace API Keys"]
---

# GET /v4/workspaces/{workspaceId}/api-keys

`GET /v4/workspaces/{workspaceId}/api-keys`

## Request

- Base URL: `https://api.merkl.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.merkl.xyz/v4/workspaces/{workspaceId}/api-keys`
- Auth: `apiKey` (a scheme the document does not define)

List the caller's own keys and those of identities the caller manages. Workspace-wide `api_key.manage` lists all. Managing the credentials of a service account lets the holder act with that service account's rights.

## Path parameters

- `workspaceId` string, uuid, required

## Response `200`

Response for status 200

- object
  - `apiKeys` object[], required
    - `id` string, required
    - `workspaceId` string, nullable, required
    - `userId` string, nullable, required: The identity that holds the key: a person or a service account
    - `prefix` string, required
    - `description` string, nullable, required
    - `tier` number, required
    - `issuedByUserId` string, nullable, required: The person who issued the key. Absent for historical keys
    - `createdAt` string, required
    - `expiresAt` string, nullable, required
    - `revokedAt` string, nullable, required
    - `holderKind` union, required
      - string
      - string
    - `issuedByName` string, nullable, required: Display name of the issuer, when it can be resolved

## Changes

- **2026-10-22** `b32d82e3d5c9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/merkl/apis/merkl-api/changes/v4/workspaces/:workspaceId/api-keys/get.md)

---

[API](https://skmtc.dev/merkl/apis/merkl-api.md) - [All operations](https://skmtc.dev/merkl/apis/merkl-api/llms.txt) - [OpenAPI document](https://skmtc.dev/merkl/apis/merkl-api/revisions/60ffe2c7d887?raw)
