Issuer management endpoints. An Issuer is your identity provider—it controls authentication methods, signup policies, session settings, and contains its own isolated user pool.
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}/issuersList Issuers
Lists all issuers belonging to an account with pagination.
Returns issuers in descending order by creation date (newest first). Use this endpoint to:
Tip: Most accounts have one issuer per environment (e.g., production, staging). If you need users to have a single identity across multiple applications, use one issuer with multiple clients instead of multiple issuers.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | Optional | Maximum number of items to return (1-100, default: 50) |
cursor | string | Optional | Pagination cursor (issuer ID from previous response) |
| Code | Description | Schema |
|---|---|---|
| 200 | Paginated list of issuers | 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}/issuersCreate Issuer
Creates a new Issuer within an account.
An Issuer is your identity provider in AuthPI. Each issuer maintains an isolated user pool and can be configured with:
Common patterns:
After creating an issuer, you'll need to create at least one OAuth Client to authenticate users.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
Content type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
description | string | null | Optional | A description for the resource. Markdown supported. |
links | object | Optional | |
available_scopes | string[] | Optional | |
status | active | disabled | suspended | deleted | Optional | |
settings | object | Optional | |
metadata | object | Optional |
| Code | Description | Schema |
|---|---|---|
| 201 | Issuer 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}Get Issuer
Retrieves the full configuration of an issuer by its ID.
An Issuer is your identity provider within AuthPI. This endpoint returns all issuer settings including:
Use this endpoint to inspect issuer configuration or verify settings after 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 |
| Code | Description | Schema |
|---|---|---|
| 200 | Issuer configuration retrieved 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 |
| 409 | Conflict - The request conflicts with the current state of the resource. | ApiError |
| 412 | Precondition Failed - The resource has been modified since the provided ETag. | PreconditionFailedError |
| 422 | Unprocessable Entity - The request is well-formed but contains semantic errors. | ApiError |
| 429 | Too Many Requests - Rate limit or resource limit exceeded. | ApiError |
| 500 | Internal Server Error - An unexpected error occurred. | ApiError |
PATCH/v1/accounts/{account_id}/issuers/{issuer_id}Update Issuer
Updates an issuer's configuration.
Use this endpoint to modify any issuer setting. All fields in the request body are optional - only include the fields you want to change.
Configurable settings include:
Important: Some changes may affect active users:
| 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 | Optional | A name for the resource. |
description | string | Optional | |
links | object | Optional | |
available_scopes | string[] | Optional | |
status | active | disabled | suspended | deleted | Optional | |
settings | object | Optional | |
metadata | Metadata | Optional |
| Code | Description | Schema |
|---|---|---|
| 200 | Issuer 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}Delete Issuer
Deletes an issuer (soft delete).
This performs a soft delete - the issuer is marked as deleted but data is retained for a grace period. 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 |
| 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 |
GET/v1/accounts/{account_id}/issuers/{issuer_id}/auth-methodsList Auth Methods
Lists all authentication methods configured for an issuer.
Authentication methods define how users can sign in to your application. Each method can be enabled or disabled for login and signup independently.
Method types include:
Each method has its own settings specific to that authentication type.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
| Code | Description | Schema |
|---|---|---|
| 200 | Authentication methods 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 |
POST/v1/accounts/{account_id}/issuers/{issuer_id}/auth-methodsCreate Auth Method
Creates a new authentication method for an issuer.
Method types:
Required settings by method:
issuer_url, client_id, client_secretprovider, client_id, client_secret, redirect_uriclient_id, team_id, key_id, private_keyclient_id, client_secretOther methods have optional settings.
| 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
One of the following variants:
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | oauth2 | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | oidc | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | apple | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | github | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | oauth2_manual | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | password | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | temporary_password | Required | |
settings | object | Optional |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | email_link | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | email_otp | Required | |
settings | object | Optional |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | true | Required | |
method | sms_otp | Required | |
settings | object | Optional |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | boolean | Required | |
method | passkey | Required | |
settings | object | Required |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | false | Required | |
method | totp | Required | |
settings | object | Optional |
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
first_factor_only | false | Required | |
method | backup_codes | Required | |
settings | object | Optional |
| Code | Description | Schema |
|---|---|---|
| 201 | Authentication method 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 |
| 404 | Not Found - The requested resource does not exist. | ApiError |
| 409 | Conflict - The request conflicts with the current state of the resource. | ApiError |
GET/v1/accounts/{account_id}/issuers/{issuer_id}/auth-methods/{method_id}Get Auth Method
Retrieves a specific authentication method by ID.
Returns the full configuration for the authentication method including:
Note: Sensitive settings like OAuth client secrets are not returned in the response.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
method_id | string | Required | The unique identifier of the authentication method |
| Code | Description | Schema |
|---|---|---|
| 200 | Authentication method 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}/auth-methods/{method_id}Update Auth Method
Updates an existing authentication method.
Updatable fields:
Note: The method type and core settings (like OAuth client credentials) cannot be changed after creation. To change these, delete the method and create a new one.
Common operations:
enabled_login: falsefeatured: true to highlight itenabled_signup: false while keeping login enabled| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
method_id | string | Required | The unique identifier of the authentication method |
Content type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Optional | A name for the resource. |
enabled_login | boolean | Optional | |
enabled_signup | boolean | Optional | |
featured | boolean | Optional | |
settings | object | Optional |
| Code | Description | Schema |
|---|---|---|
| 200 | Authentication method 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}/auth-methods/{method_id}Delete Auth Method
Deletes an authentication method from an issuer.
Warning: This action is permanent and cannot be undone.
Before deleting, consider:
Alternative: Instead of deleting, you can disable the method by setting enabled_login: false to prevent new logins while preserving the configuration.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
method_id | string | Required | The unique identifier of the authentication method |
| 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 |