---
title: "List OAuth grants the caller has authorized (Connected apps)"
method: GET
path: "/api/me/connected-apps"
tags: ["Tokens"]
---

# List OAuth grants the caller has authorized (Connected apps)

`GET /api/me/connected-apps`

## Request

- Base URL: `https://tre-app.com`
- URL: `https://tre-app.com/api/me/connected-apps`
- Auth: one of:
  - API key in cookie `__Secure-authjs.session-token`
  - API key in cookie `authjs.session-token`

Requires the authenticated web session; every Bearer token, including admin scope, receives 403 FORBIDDEN (Connected apps require the web session), and OAuth access tokens 401. Each app is one live grant: client name, workspace, scope, and last use (lastUsedAt is the last token mint — the code exchange or a refresh — not the last MCP call).

## Response `200`

Success

- ConnectedAppsResponse
  - `apps` ConnectedApp[], required
    - `id` string, uuid, required
    - `clientId` string, required: CIMD URL of the OAuth client.
    - `clientName` string, required
    - `workspace` string, required: Workspace slug the grant is bound to.
    - `scope` 'read' | 'write' | 'admin', required
    - `createdAt` string, date-time, required
    - `lastUsedAt` string, date-time, nullable, required: Last token mint for this grant (the code exchange or a refresh), not the last MCP call.

## Other responses

- `400`: Invalid request
- `401`: Unauthenticated
- `403`: Connected apps require the web session; Bearer tokens cannot list grants
- `404`: Not found
- `409`: Conflict
- `429`: Rate limited
- `500`: Internal server error
- `503`: Temporarily unavailable

---

[API](https://skmtc.dev/tre-app/apis/tre-rest-api.md) · [All operations](https://skmtc.dev/tre-app/apis/tre-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tre-app/apis/tre-rest-api/revisions/26a7187a05fc?raw)
