Skip to content

Replace a dynamically registered client.

PUT
/clients/{client_id}
Code sample: Shell / cURL
curl --request PUT \
--url https://auth.example.com/clients/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "redirect_uris": [ "https://app.example.com/callback" ], "client_name": "Example App", "grant_types": [ "authorization_code", "refresh_token" ], "response_types": [ "code" ], "scope": "openid profile email", "require_pkce": true }'
client_id
required
string
Media type application/json
object
redirect_uris
Array<string>
>= 1 items
client_name
string
grant_types
Array<string>
response_types
Array<string>
scope
string
token_endpoint_auth_method
string
token_endpoint_auth_signing_alg
string
Allowed values: RS256 ES256 PS256
id_token_signed_response_alg

Omitted means the tenant’s ID token algorithm (RS256 unless the tenant chose another; the registration response then names it). Refused (400 invalid_client_metadata) when it differs from the tenant’s algorithm while the tenant does not let apps choose; 503 temporarily_unavailable when that policy cannot be read.

string
Allowed values: RS256 ES256 PS256
userinfo_signed_response_alg
string
default: none
Allowed values: none RS256 ES256 PS256
request_object_signing_alg
string
Allowed values: none RS256 ES256 PS256
backchannel_token_delivery_mode
string
Allowed values: poll ping push
backchannel_client_notification_endpoint
string format: uri
backchannel_authentication_request_signing_alg
string
Allowed values: RS256 ES256 PS256
backchannel_user_code_parameter
boolean
tls_client_certificate_bound_access_tokens
boolean - PS256 - EdDSA
authorization_signed_response_alg

JWS algorithm used for JWT-secured authorization responses (JARM).

string
default: RS256
Allowed values: RS256 ES256
authorization_encrypted_response_alg

JWE key-management algorithm used to encrypt JARM responses.

string
Allowed values: RSA-OAEP RSA-OAEP-256 ECDH-ES ECDH-ES+A128KW ECDH-ES+A192KW ECDH-ES+A256KW
authorization_encrypted_response_enc

JWE content-encryption algorithm used to encrypt JARM responses.

string
Allowed values: A128GCM A192GCM A256GCM A128CBC-HS256 A192CBC-HS384 A256CBC-HS512
require_pkce
boolean
client_credentials_allowed

Must be true when grant_types contains client_credentials.

boolean
allowed_scopes
Array<string>
default_scope
string
default_audience

Audience of the app’s access tokens when a token request names none. When neither this nor default_resource is sent, an app with the authorization code grant gets the tenant’s issuer URL as its default resource. An app that registers without it but with a grant that uses a default target gets the tenant’s dcr.default_audience / dcr.default_resource when the tenant has set them (copied at registration, so a later change does not retarget the app). Dynamic registration currently registers client credentials and CIBA apps from that set; device and token exchange apps are created through the admin API, which does not copy this default. Any other app (implicit or refresh token only) has no default target. The tenant’s default cannot be an issuer URL of the tenant or its /userinfo URL: every issuer host the tenant’s host and identifier policy allows is reserved, whether or not a custom domain or lookup routes it today.

string
default_resource

Resource indicator (RFC 8707) of the app’s access tokens when a token request names none. See default_audience for the default an app gets when it sends neither.

string format: uri
jwks
object
key
additional properties
jwks_uri
string format: uri
sector_identifier_uri
string format: uri
logo_uri
string format: uri
policy_uri
string format: uri
tos_uri
string format: uri
logout_webhook_uri
string format: uri
key
additional properties
Example
{
"redirect_uris": [
"https://app.example.com/callback"
],
"client_name": "Example App",
"grant_types": [
"authorization_code",
"refresh_token"
],
"response_types": [
"code"
],
"scope": "openid profile email",
"require_pkce": true
}

Successful JSON response.

Media type application/json
object
client_id
required
string
client_secret
string
client_id_issued_at
required
integer
client_secret_expires_at
integer
registration_access_token
string
registration_client_uri
string format: uri
redirect_uris
required
Array<string>
require_pkce
required
boolean
default_audience

Present when the app sent it, or when the app was given the tenant’s dcr.default_audience.

string
default_resource

Present when the app sent it, or when the app was given the tenant’s dcr.default_resource. Not present for the issuer URL an authorization code app gets by default.

string
token_endpoint_auth_method
string
token_endpoint_auth_signing_alg
string
Allowed values: RS256 ES256 PS256
id_token_signed_response_alg

The algorithm the app’s ID Tokens are signed with (named when not RS256, even if the app registered none).

string
Allowed values: RS256 ES256 PS256
userinfo_signed_response_alg
string
Allowed values: none RS256 ES256 PS256
request_object_signing_alg
string
Allowed values: none RS256 ES256 PS256
backchannel_token_delivery_mode
string
Allowed values: poll ping push
backchannel_client_notification_endpoint
string format: uri
backchannel_authentication_request_signing_alg
string
Allowed values: RS256 ES256 PS256
backchannel_user_code_parameter
boolean
tls_client_certificate_bound_access_tokens
boolean - PS256 - EdDSA
authorization_signed_response_alg
string
Allowed values: RS256 ES256
authorization_encrypted_response_alg
string
Allowed values: RSA-OAEP RSA-OAEP-256 ECDH-ES ECDH-ES+A128KW ECDH-ES+A192KW ECDH-ES+A256KW
authorization_encrypted_response_enc
string
Allowed values: A128GCM A192GCM A256GCM A128CBC-HS256 A192CBC-HS384 A256CBC-HS512
key
additional properties
Example
{
"client_id": "client_123",
"client_secret": "secret_123",
"client_id_issued_at": 1770000000,
"client_secret_expires_at": 0,
"registration_access_token": "reg_access_123",
"registration_client_uri": "https://auth.example.com/clients/client_123",
"redirect_uris": [
"https://app.example.com/callback"
],
"require_pkce": true
}

OAuth error response.

Media type application/json
object
error
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"error_description": "example"
}