---
title: "List OAuth apps"
method: GET
path: "/oauth-clients"
tags: ["OAuth Apps"]
---

# List OAuth apps

`GET /oauth-clients`

Returns a paginated list of OAuth apps registered by the signed-in user. Access is creator-scoped — even org admins only see apps they created themselves, so this endpoint is safe to use for per-user developer dashboards without leaking org-wide app metadata.

Each entry carries the full app configuration except the client secret, which is only ever returned at creation time and immediately after a regeneration.

Use the `status` query parameter to filter by lifecycle state (`active`, `suspended`, `revoked`) and `search` for a case-insensitive substring match against `name` or `description`.

## Query parameters

- `page` integer
- `limit` integer
- `status` 'active' | 'suspended' | 'revoked'
- `search` string

## Response `200`

List of OAuth apps

- OAuthAppListResponse — Paginated list of OAuth apps
  - `data` OAuthAppResponse[], required — List of OAuth apps
    - `id` string, required — App ID
    - `slug` string, required — URL-friendly app slug
    - `clientId` string, required — OAuth client ID
    - `name` string, required — App name
    - `description` string — App description
    - `redirectUris` string[], required — Allowed redirect URIs (always returned; may be empty)
    - `allowedGrantTypes` string[], required — Allowed grant types
    - `allowedScopes` string[], required — Allowed scopes
    - `status` 'active' | 'suspended' | 'revoked', required — App status
    - `homepageUrl` string, uri — App homepage
    - `privacyPolicyUrl` string, uri — Privacy policy URL
    - `termsOfServiceUrl` string, uri — Terms of service URL
    - `isConfidential` boolean, required — Whether app is a confidential client
    - `accessTokenLifetime` integer, required — Access token lifetime in seconds
    - `refreshTokenLifetime` integer, required — Refresh token lifetime in seconds
    - `createdAt` string, date-time, required — Creation timestamp
    - `updatedAt` string, date-time, required — Last update timestamp
  - `pagination` object, required
    - `page` integer, required — Current page number
    - `limit` integer, required — Items per page
    - `total` integer, required — Total number of items
    - `totalPages` integer, required — Total number of pages

## Other responses

- `401` — Unauthorized
- `403` — Forbidden — insufficient workspace permission to list OAuth apps
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/pipeshub-ai/apis/pipeshub-api.md) · [All operations](https://skmtc.net/pipeshub-ai/apis/pipeshub-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pipeshub-ai/pipeshub-api/versions/abd27cfefc73/schema)
