Documentation Index
Fetch the complete documentation index at: https://mintlify.com/supertokens/supertokens-core/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Manage OAuth 2.0 clients for your SuperTokens instance. OAuth clients represent applications that can authenticate users through your OAuth provider.GET /recipe/oauth/clients
Retrieve a specific OAuth client by ID.Query Parameters
- clientId (string, required): The OAuth client ID
Response
Example
POST /recipe/oauth/clients
Create a new OAuth client.Request Body
Parameters
- clientId (string, optional): Custom client ID. If not provided, a random ID with prefix
stcl_is generated - clientName (string, optional): Human-readable client name
- scope (string, optional): Default OAuth scopes for this client
- redirectUris (array, required): Allowed redirect URIs for authorization callbacks
- grantTypes (array, required): Allowed grant types (e.g.,
["authorization_code", "refresh_token"]) - responseTypes (array, required): Allowed response types (e.g.,
["code"]) - tokenEndpointAuthMethod (string, optional): Method for authenticating at token endpoint
- enableRefreshTokenRotation (boolean, optional): Enable refresh token rotation for enhanced security. Defaults to
false
Response
Example
PUT /recipe/oauth/clients
Update an existing OAuth client.Request Body
Parameters
- clientId (string, required): The client ID to update
- All other parameters are optional and will update the corresponding client configuration
- Omitted parameters will retain their existing values
Response
Same structure as POST response with updated client information.Example
GET /recipe/oauth/clients/list
List all OAuth clients for the current app.Query Parameters
- pageSize (number, optional): Number of clients per page (max 500)
- pageToken (string, optional): Pagination token from previous response
Response
Example
Implementation Details
- Located in:
src/main/java/io/supertokens/webserver/api/oauth/CreateUpdateOrGetOAuthClientAPI.java:57andOAuthClientListAPI.java:37 - Recipe:
OAUTH - Default client configuration:
accessTokenStrategy: “jwt”skipConsent: truesubjectType: “public”
- Client IDs are automatically prefixed with
stcl_if not provided - Client credentials are encrypted and stored securely
- Clients are scoped to apps using an owner field:
{connectionUriDomain}_{appId} - Client secrets are returned only on creation and retrieval, not in list operations
- Refresh token rotation can be enabled per-client for enhanced security
Client Credentials Flow
If a client is configured with only theclient_credentials grant type, it is marked as a client credentials only client (isClientCredentialsOnly: true). This is used for machine-to-machine authentication.
Refresh Token Rotation
WhenenableRefreshTokenRotation is true:
- Each refresh token can only be used once
- Using a refresh token issues a new refresh token and invalidates the old one
- This prevents refresh token reuse attacks
- When false, the same refresh token can be used multiple times until it expires