Update a client registration (RFC 7592)
Docs version v1 (main)Nauthera is pre-1.0, in a design-partner program
/register/{client_id}Replaces the client's metadata. The body MUST contain the complete metadata set (not a partial patch) and MUST NOT include server-issued fields (registration_access_token, registration_client_uri, client_id_issued_at, client_secret_expires_at).
The registered client identifier.
1–256 characters · pattern
^[!-~]+$
Request body
Client metadata for dynamic registration (RFC 7591 §2, with OpenID Connect Dynamic Client Registration extensions).
- client_idstring
RFC 7592 §2.2 requires an UPDATE (PUT) body to carry the client's own
client_id, and the server MUST reject a value that differs from the currently issued one. On registration (POST) it is ignored: a client never influences its own identifier (RFC 9700 §4.15.1).at most 256 characters
- client_secretstring
RFC 7592 §2.2: if present on an UPDATE it MUST match the currently issued secret; a client may never overwrite its secret with a value of its own choosing. Ignored on registration.
at most 512 characters
- redirect_urisarray of strings · uri
Redirection URIs (REQUIRED for redirect-based grants).
Example["https://app.example.com/callback"]1–32 items · no duplicates · each item: at most 2048 characters
- Possible values6 values
noneclient_secret_basicclient_secret_postprivate_key_jwttls_client_authself_signed_tls_client_auth
- Possible values2 values
ES256RS256
- grant_typesarray of stringsExample
["authorization_code","refresh_token"]at most 16 items · no duplicates · each item: at most 128 characters
- response_typesarray of stringsExample
["code"]at most 8 items · no duplicates · each item: at most 64 characters
- client_namestringExample
"Example App"at most 256 characters
- client_uristring · uri
at most 2048 characters
- logo_uristring · uri
at most 2048 characters
- scopestringExample
"openid profile email"at most 2048 characters · pattern
^\S+( \S+)*$ - contactsarray of strings · email
at most 32 items · no duplicates · each item: at most 256 characters
- tos_uristring · uri
at most 2048 characters
- policy_uristring · uri
at most 2048 characters
- jwks_uristring · uri
at most 2048 characters
- jwksobject
The client's public JWK Set, by value (RFC 7591 §2): the alternative to jwks_uri, and refused alongside it. It is held to the rules a fetched set obeys: a key with private members refuses the whole set, a key this server cannot verify with is ignored, and a set with no usable key is refused.
- software_idstring · uuid
- software_versionstring
at most 128 characters
- software_statementstring
at most 16384 characters
- application_typeenumPossible values2 values
webnative
- subject_typeenumPossible values2 values
publicpairwise
- sector_identifier_uristring · uri
at most 2048 characters
at most 16 characters
at most 16 characters
at most 16 characters
- default_max_ageinteger
between 0 and 315360000
- require_auth_timeboolean
- default_acr_valuesarray of strings
at most 16 items · no duplicates · each item: at most 256 characters
- initiate_login_uristring · uri
at most 2048 characters
- request_urisarray of strings · uri
at most 8 items · no duplicates · each item: at most 2048 characters
- post_logout_redirect_urisarray of strings · uri
at most 32 items · no duplicates · each item: at most 2048 characters
- backchannel_logout_uristring · uri
at most 2048 characters
- frontchannel_logout_uristring · uri
at most 2048 characters
200 OKapplication/jsonThe updated client registration.
The updated client registration.
Headers
Cache-Controlno-storePragmano-cache
Body
Client information response (RFC 7591 §3.2.1 + RFC 7592). Echoes the registered metadata and adds the server-issued credentials and management fields.
- Example
"nauthera_2Rk9" - client_secretstring
Present for confidential clients only.
- client_id_issued_atintegerExample
1735686000 - client_secret_expires_atinteger
Epoch seconds, or 0 if the secret never expires.
Example0 RFC 7592 token authorizing management of this registration.
- registration_client_uristring · uri
RFC 7592 management endpoint for this client.
Example"https://auth.example.com/register/nauthera_2Rk9" - redirect_urisarray of strings · uri
- grant_typesarray of strings
- response_typesarray of strings
- client_namestring
- client_uristring · uri
- logo_uristring · uri
- scopestring
- contactsarray of strings
- tos_uristring · uri
- policy_uristring · uri
- jwks_uristring · uri
- jwksobject
The client's public JWK Set, when it registered one by value.
- software_idstring
- software_versionstring
- application_typestring
- post_logout_redirect_urisarray of strings · uri
- request_urisarray of strings · uri
- backchannel_logout_uristring · uri
- frontchannel_logout_uristring · uri
401 Unauthorizedapplication/jsonRegistration error (RFC 7591 §3.2.2).
Registration error (RFC 7591 §3.2.2).
Headers
Cache-Controlno-storeWWW-AuthenticatestringDPoP-Noncestring
Body
A dynamic client registration error (RFC 7591 §3.2.2).
- Possible values7 values
invalid_redirect_uriinvalid_client_metadatainvalid_software_statementunapproved_software_statementinvalid_tokenaccess_deniedtemporarily_unavailable
- error_descriptionstringExample
"token_endpoint_auth_method is not supported"
429 Too Many Requestsapplication/problem+jsonToo many requests.
Too many requests.
Body
RFC 9457 (formerly RFC 7807) problem details (application/problem+json).
codeis a stable machine-readable slug for the problem kind (it mirrors the last path segment oftype), so consumers can branch on it without parsing prose.typeishttps://nauthera.io/problems/<code>, which resolves to the code's runbook: why it happened, who is affected and what to do (RFC 9457 §3.1.1). A problem without a code hasabout:blank.errorsis present on validation failures and lists every offending field.- Example
"Request validation failed" - Example
400 - typestring · uriExample
"https://nauthera.io/problems/validation_error" - detailstringExample
"One or more fields did not satisfy the API schema." - codeenum
The kind of problem, as a stable machine-readable slug a client branches on and translates rather than parsing
titleordetail, which are English prose for logs. A problem whose status says everything the server knows carries nocode.Show moreShow less
validation_erroris the one code whose message is not a sentence about the code itself: the request failed the schema, and the specifics are theerrorslist — one entry per offending field — which a form renders on those fields.requiredandmalformedare spelled like two of the per-field violation codes (FieldError.code) but mean something else; the two vocabularies are told apart by position, never by spelling.Compatibility: this is a CLOSED enum, with the same cost as
AuditAction: a client generated against an older version of this document rejects a problem carrying a code added after it was built. Regenerate on upgrade, or decode the field as a plain string. It is enumerated anyway so that what a client must translate is knowable from the contract alone.Possible values43 valuesinvalid_requestinvalid_credentialsforbiddenunauthorizedinsufficient_user_authenticationprotected_accountpassword_held_by_directorylast_role_administratorinvalid_codetoo_many_requeststoo_many_attemptsaccount_lockedaccount_unavailablealready_enrolledregistration_disabledregistration_conflictcaptcha_failedinvalid_reset_linkpassword_reusedpassword_too_shortpassword_too_longpassword_compromisedinvalid_verification_linkinvalid_invitation_linkmail_relay_missingemail_unverifiednot_foundconflictunavailablebusywindow_too_largetoo_many_seriesinternal_errorrate_limitedmalformedbody_too_largerequiredvalidation_errorunknown_orginvalid_tokeninvalid_dpop_proofuse_dpop_nonceserver_error
- instancestringExample
"/introspect" - request_idstringExample
"8d94ed49-1caf-4ab3-9594-557142f2d023" - trace_idstring
Distributed-trace id (hex) for correlating this response with traces and logs. Present only when tracing is enabled and the request was recorded. Opaque and safe to log/share.
Example"4bf92f3577b34da6a3ce929d0e0e4736" - errorsarray of objects
Field-level violations (present for validation errors).
Each item:A single field-level validation violation.
Show item attributesHide item attributes
Offending field, dotted for nested bodies (e.g. child.id).
Example"token_type_hint"Machine-readable violation code: required, too_short, too_long, pattern, invalid_format, not_allowed, minimum, maximum, multiple_of, too_few, too_many, not_unique, malformed.
Example"not_allowed"- Example
"field token_type_hint must be one of [access_token, refresh_token]"
Errorapplication/jsonRegistration error (RFC 7591 §3.2.2).
Registration error (RFC 7591 §3.2.2).
Headers
Cache-Controlno-storeWWW-AuthenticatestringDPoP-Noncestring
Body
A dynamic client registration error (RFC 7591 §3.2.2).
- Possible values7 values
invalid_redirect_uriinvalid_client_metadatainvalid_software_statementunapproved_software_statementinvalid_tokenaccess_deniedtemporarily_unavailable
- error_descriptionstringExample
"token_endpoint_auth_method is not supported"