---
title: "Admin List Handles"
method: GET
path: "/v1/admin/handles"
tags: ["admin"]
---

# Admin List Handles

`GET /v1/admin/handles`

## Request

- Base URL: `https://www.tandem-cc.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.tandem-cc.com/v1/admin/handles`
- Auth: none declared

List every handle in the system (admin only, read-only).

Diagnostic added 2026-06-06: the tandem.cc -> tandem-cc.com cutover
surfaced that real handles still live under the OLD @tandem.cc domain
(the gated migration #7 that renames them hasn't run). This lets us
eyeball exactly which local parts are taken and under which domain, so
we know the full scope the availability fix (_handle_taken) now covers.

Grouped/ordered by domain then local part. Returns no tokens or secrets
— just the public-ish handle id, display name, signed_by, is_tandem,
created_at.

## Headers

- `X-Tandem-Api-Key` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tandem-cc/apis/tandem-api.md) · [All operations](https://skmtc.dev/tandem-cc/apis/tandem-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tandem-cc/apis/tandem-api/revisions/3b804877b47c?raw)
