OAuth 2.0 client management endpoints. Clients are applications that authenticate users via your Issuers. Each client has its own credentials, redirect URIs, and permissions.
Base URL: https://api.authpi.com — see the Core API overview for
authentication, pagination, and idempotency, or try these endpoints in the
interactive reference.
GET/v1/accounts/{account_id}/issuers/{issuer_id}/clientsList Clients
Lists all OAuth 2.0/OIDC clients registered with an issuer.
Clients are applications that authenticate users via your issuer. Each client has credentials and configuration for the OAuth 2.0 flows it supports.
Client types:
Use the status filter to find disabled clients or the name filter to search by application name.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | Optional | Maximum number of items to return (1-100, default: 50) |
cursor | string | Optional | Pagination cursor (client ID from previous response) |
status | active | disabled | deleted | Optional | Filter by client status (default: excludes deleted) |
name | string | Optional | Filter by name (case-insensitive contains match) |
| Code | Description | Schema |
|---|---|---|
| 200 | Paginated list of clients | object |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
POST/v1/accounts/{account_id}/issuers/{issuer_id}/clientsCreate Client
Creates a new OAuth 2.0/OIDC client for an issuer.
A client represents an application that will authenticate users via your issuer. Choose the appropriate client type based on your application:
Client types:
Security considerations:
Important: The client secret is only returned once at creation. Store it immediately - you cannot retrieve it later.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
Content type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
type | internal | external | Required | |
confidential | boolean | Required | |
settings | object | Required | |
description | string | null | Optional | |
logo_url | string | Optional | A URL |
secret | string | Optional | |
metadata | Metadata | Optional |
| Code | Description | Schema |
|---|---|---|
| 201 | Client created successfully | object |
| 400 | Bad Request - The request is malformed or contains invalid data. | ApiError |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
GET/v1/accounts/{account_id}/issuers/{issuer_id}/clients/{client_id}Get Client
Retrieves the full configuration of an OAuth 2.0/OIDC client by its ID.
An OAuth Client represents an application that authenticates users via your issuer. This endpoint returns all client settings including:
Use this endpoint to verify client configuration or before making updates.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
client_id | string | Required | The unique identifier of the OAuth client |
| Code | Description | Schema |
|---|---|---|
| 200 | Client configuration retrieved successfully | object |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
PATCH/v1/accounts/{account_id}/issuers/{issuer_id}/clients/{client_id}Update Client
Updates an OAuth 2.0/OIDC client's configuration.
All fields in the request body are optional - only include the fields you want to change.
Commonly updated settings:
Important considerations:
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
client_id | string | Required | The unique identifier of the OAuth client |
Content type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Optional | A name for the resource. |
status | active | disabled | Optional | |
description | string | null | Optional | |
logo_url | string | null | Optional | A URL |
settings | object | Optional | |
metadata | Metadata | Optional |
| Code | Description | Schema |
|---|---|---|
| 200 | Client updated successfully | object |
| 400 | Bad Request - The request is malformed or contains invalid data. | ApiError |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
| 412 | Precondition Failed - The resource has been modified since the provided ETag. | PreconditionFailedError |
DELETE/v1/accounts/{account_id}/issuers/{issuer_id}/clients/{client_id}Delete Client
Deletes an OAuth 2.0/OIDC client (soft delete).
This performs a soft delete - the client is marked as deleted but data is retained for 31 days. During this period:
Before deleting:
After deletion:
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
client_id | string | Required | The unique identifier of the OAuth client |
| Code | Description | Schema |
|---|---|---|
| 204 | No Content - The operation completed successfully with no response body. | — |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
| 412 | Precondition Failed - The resource has been modified since the provided ETag. | PreconditionFailedError |
POST/v1/accounts/{account_id}/issuers/{issuer_id}/clients/{client_id}/secret/rotateRotate Client Secret
Rotates the client secret for a confidential OAuth 2.0 client.
Secret rotation is a security best practice that should be performed periodically or after a suspected compromise.
Rotation process:
Best practices:
Important: This endpoint only works for confidential clients. Public clients (SPA, native) don't have secrets and will return a 400 error.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
client_id | string | Required | The unique identifier of the OAuth client |
| Code | Description | Schema |
|---|---|---|
| 200 | Secret rotated successfully | object |
| 400 | Bad Request - The request is malformed or contains invalid data. | ApiError |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |