---
title: "Connected apps (OAuth connections)"
description: "List and revoke the OAuth/MCP applications connected to your account, such as Claude's remote MCP connector."
---

Uptimeify lets you connect third-party apps (like Claude Desktop / Claude.ai) via [MCP OAuth](/api/mcp). These two endpoints let the signed-in user list and revoke their own connections. They power the **Settings → Connected apps** page in the dashboard.

Both endpoints are **session-authenticated** (browser cookie), not token-based: they are not part of the `wsm_`/`wsma_` API-token surface, and every operation is strictly scoped to the caller's own connections.

## List connections

`GET /api/oauth/connections`

Returns the caller's own live OAuth connections, one entry per connected client. "Live" means the grant still has an open refresh window. Returns an empty array when the user has no connections.

### Example (cURL)

```bash
curl -X GET "$BASE_URL/api/oauth/connections" \
  -H "Cookie: $SESSION_COOKIE" \
  -H "Accept: application/json"
```

### Response

```json
[
  {
    "client_id": "claude-desktop",
    "client_name": "Claude",
    "connected_at": "2026-06-01T09:12:00.000Z",
    "last_active": "2026-07-20T14:03:00.000Z",
    "scope": "read-only"
  }
]
```

| Field | Type | Description |
| --- | --- | --- |
| `client_id` | string | The OAuth client identifier. |
| `client_name` | string | Human-readable application name. |
| `connected_at` | string (ISO 8601) | When the connection was first authorized. |
| `last_active` | string (ISO 8601) | Most recent token activity for this client. |
| `scope` | string | Always `"read-only"`: connected apps can never create, edit, or delete anything. |

## Revoke a connection

`DELETE /api/oauth/connections/:clientId`

Revokes the caller's own grant for the given client: deletes its access/refresh tokens and consent record immediately. The app loses access right away; reconnecting requires the user to go through OAuth consent again.

### Example (cURL)

```bash
curl -X DELETE "$BASE_URL/api/oauth/connections/claude-desktop" \
  -H "Cookie: $SESSION_COOKIE"
```

### Response

```json
{ "revoked": true, "client_id": "claude-desktop" }
```

## Common errors

| Status | `data.code` | Meaning |
| --- | --- | --- |
| 401 | `unauthorized` | No active session (not signed in). Both endpoints. |
| 400 | `missingClientId` | `DELETE` only: the `:clientId` path parameter is missing. |
| 404 | `unknownOauthConnection` | `DELETE` only: the caller has no connection for that `client_id` (already revoked, expired, or never connected). See [error codes](/api/error-codes-and-known-pitfalls). |
