{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/notarize/main/json-schema/notarize-client-registration-request-schema.json",
  "title": "client_registration_request",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/notarize-oauth-2-0-api-specification-openapi.yml#/components/schemas/client_registration_request",
  "type": "object",
  "required": [
    "redirect_uris"
  ],
  "properties": {
    "redirect_uris": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "[Redirect URIs](https://datatracker.ietf.org/doc/html/rfc6749#section-3.1.2) for the authorization endpoint. At least one is required."
    },
    "client_name": {
      "type": "string",
      "description": "Name shown to the User on the authorization page. Proof generates one when this is absent."
    },
    "client_uri": {
      "type": "string",
      "description": "URL of the client home page."
    },
    "logo_uri": {
      "type": "string",
      "description": "URL of a logo for the client."
    },
    "contacts": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Email addresses of people responsible for the client."
    },
    "tos_uri": {
      "type": "string",
      "description": "URL of the terms of service of the client."
    },
    "policy_uri": {
      "type": "string",
      "description": "URL of the privacy policy of the client."
    },
    "jwks_uri": {
      "type": "string",
      "description": "URL of the [JWK Set](https://datatracker.ietf.org/doc/html/rfc7517#section-5) of the client. Supply either `jwks_uri` or `jwks`."
    },
    "jwks": {
      "type": "object",
      "description": "The [JWK Set](https://datatracker.ietf.org/doc/html/rfc7517#section-5) of the client, by value. Supply either `jwks` or `jwks_uri`."
    },
    "software_id": {
      "type": "string",
      "description": "Identifier the client developer assigns to the client software."
    },
    "software_version": {
      "type": "string",
      "description": "Version of the client software."
    },
    "token_endpoint_auth_method": {
      "type": "string",
      "enum": [
        "client_secret_post",
        "private_key_jwt"
      ],
      "description": "Requested client authentication method. `private_key_jwt` requires `jwks` or `jwks_uri` and issues no `client_secret`; any other value results in `client_secret_post`."
    }
  }
}