Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /applications | Create application |
GET | /applications | List applications |
GET | /applications/access-graph | Access graph for policy visualization (dashboard/admin) |
GET | /applications/:id | Get application |
PATCH | /applications/:id | Update application |
DELETE | /applications/:id | Archive application |
POST | /applications/:id/rotate-secret | Rotate client secret |
GET | /applications/:id/oauth | Get OAuth config |
PATCH | /applications/:id/oauth | Update OAuth config |
GET | /applications/:id/integrations | List attached integrations |
PUT | /applications/:id/integrations | Replace all integrations |
POST | /applications/:id/integrations/:integrationId | Attach integration |
DELETE | /applications/:id/integrations/:integrationId | Detach integration |
id and integrationId path params are UUIDs.
Create application
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display name for the application |
oauth | object | Yes | OAuth configuration (see below) |
OAuth object
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "public" or "confidential" |
redirectUris | string[] | Yes | Allowed OAuth redirect URIs |
pkceRequired | boolean | No | Require PKCE for auth code flow (default true) |
scopes | string[] | No | Allowed OAuth scopes |
allowedResources | string[] | No | Allowed resource indicators |
Response
The create response includes the full application object. Theoauth.clientSecret field is only present in create and rotate-secret responses — store it immediately.
List applications
limit and cursor query parameters.
Privileged users (admin/owner) can add all=true to list applications across the organization.
Get access graph
Admin-only endpoint used by the dashboard to visualize app ↔ integration access edges.| Parameter | Type | Description |
|---|---|---|
includePolicy | boolean | Include computed policy overlays in the graph response |
Get application
Response fields
Response shape:{ "application": { ... } }
| Field | Type | Description |
|---|---|---|
id | string | Application ID |
name | string | Display name |
ownerUserId | string | ID of the user who created the application |
createdAt | string | ISO 8601 timestamp |
updatedAt | string | ISO 8601 timestamp |
archivedAt | string | null | Set when the application is archived |
canModify | boolean | Whether the current user can edit this application |
activeSessionCount | number | Sessions currently active |
idleSessionCount | number | Sessions idle but not expired |
liveSessionCount | number | Sessions connected right now |
totalSessionCount | number | All sessions (any state) |
mcpUrlTemplate | string | null | MCP URL template generated for the application |
integrations | object[] | Attached integrations |
oauth | object | null | OAuth configuration |
Update application
Archive application
archivedAt and revokes all active sessions. This does not permanently delete the application. Returns HTTP 204 with no response body.
Rotate client secret
oauth.clientSecret. The previous secret is invalidated immediately. Store the new secret — it will not be shown again.