Register a new OAuth 2.0 client dynamically with Stytch. This endpoint allows client applications to register themselves without requiring manual configuration through the Dashboard. This endpoint uses your Custom Domain.
This feature must be enabled at the project level in the Connected Apps section of the Dashboard.
This endpoint creates a Third-Party Public or Third-Party Confidential Connected App client, depending on the authentication method specified. Public clients with identical metadata may return the same client ID (see Client Deduplication below), while confidential clients always receive a unique client ID.
No authorization is needed for this endpoint.
This endpoint implements the OpenID Connect Dynamic Client Registration specification and is compatible with the OAuth 2.0 Dynamic Client Registration specification.
Client Deduplication
To prevent duplicate public clients, Stytch computes a hash of the submitted client metadata. If the metadata matches an existing public client exactly, the same client ID is returned instead of creating a new one. This ensures that multiple instances of the same application (like MCP clients) can be administered as a single client identity.
Note: Deduplication only applies to public clients (those using token_endpoint_auth_method: "none"). Confidential clients always receive a unique client ID and client secret.
Client Types and Authentication
Both Third-Party Public and Third-Party Confidential clients can be created through dynamic registration:
- Public clients: Set token_endpoint_auth_method to "none". These clients do not receive a client secret and must use PKCE for all authorization flows.
- Confidential clients: Set token_endpoint_auth_method to "client_secret_post" or "client_secret_basic". These clients receive a client secret for authentication.
All dynamically registered clients will have:
- grant_types: ["authorization_code", "refresh_token"]
- response_types: ["code"]