---
title: "List the Bearer actor's connected MCP clients"
method: GET
path: "/auth/v1/account/grants"
tags: ["Auth"]
---

# List the Bearer actor's connected MCP clients

`GET /auth/v1/account/grants`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/auth/v1/account/grants`
- Auth: API key in header `apikey` and HTTP bearer

Machine route (apikey + user Bearer; `auth.grants.list()` in @run402/functions). Returns the live OAuth grants that MCP clients (ChatGPT, Claude, Codex) hold on this app's `/_run402/oauth/*` server for the user identified by the token, most recently approved first. No token material.

## Response `200`

Live grants for the Bearer actor in this project.

- object
  - `grants` object[], required
    - `id` string, uuid, required: The grant id; pass it to the revoke route.
    - `client_id` string, required: A client metadata document URL or a registered cl_… id.
    - `client_name` string, nullable, required: Display name at approval; self-declared (unverified) when verified_host is null.
    - `verified_host` string, nullable, required: Host of the client_id URL for a metadata-document client; null for a registered client.
    - `created_at` string, date-time, required: When the user approved the client.
    - `last_used_at` string, date-time, nullable, required: The client's last MCP request with this grant (one-minute resolution); null when unused since approval.
    - `expires_at` string, date-time, required: When the grant ends and the client must be approved again.
    - `scopes` string[], required

## Other responses

- `401`: Missing or invalid authentication. Run402-originated JSON bodies use the canonical ErrorEnvelope.

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
