Authlete Dynamic Client Registration API

API endpoints for implementing OAuth 2.0 Dynamic Client Registration.

OpenAPI Specification

authlete-dynamic-client-registration-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Authlete Authorization Endpoint Dynamic Client Registration API
  description: "Welcome to the **Authlete API documentation**. Authlete is an **API-first service** where every aspect of the \nplatform is configurable via API. This documentation will help you authenticate and integrate with Authlete to \nbuild powerful OAuth 2.0 and OpenID Connect servers.\n\nAt a high level, the Authlete API is grouped into two categories:\n\n- **Management APIs**: Enable you to manage services and clients.\n- **Runtime APIs**: Allow you to build your own Authorization Servers or Verifiable Credential (VC) issuers.\n\n## \U0001F310 API Servers\n\nAuthlete is a global service with clusters available in multiple regions across the world:\n\n- \U0001F1FA\U0001F1F8 **US**: `https://us.authlete.com`\n- \U0001F1EF\U0001F1F5 **Japan**: `https://jp.authlete.com`\n- \U0001F1EA\U0001F1FA **Europe**: `https://eu.authlete.com`\n- \U0001F1E7\U0001F1F7 **Brazil**: `https://br.authlete.com`\n\nOur customers can host their data in the region that best meets their requirements.\n\n## \U0001F511 Authentication\n\nAll API endpoints are secured using **Bearer token authentication**. You must include an access token in every request:\n\n```\nAuthorization: Bearer YOUR_ACCESS_TOKEN\n```\n\n### Getting Your Access Token\n\nAuthlete supports two types of access tokens:\n\n**Service Access Token** - Scoped to a single service (authorization server instance)\n\n1. Log in to [Authlete Console](https://console.authlete.com)\n2. Navigate to your service → **Settings** → **Access Tokens**\n3. Click **Create Token** and select permissions (e.g., `service.read`, `client.write`)\n4. Copy the generated token\n\n**Organization Token** - Scoped to your entire organization\n\n1. Log in to [Authlete Console](https://console.authlete.com)\n2. Navigate to **Organization Settings** → **Access Tokens**\n3. Click **Create Token** and select org-level permissions\n4. Copy the generated token\n\n> ⚠️ **Important Note**: Tokens inherit the permissions of the account that creates them. Service tokens can only \n> access their specific service, while organization tokens can access all services within your org.\n\n### Token Security Best Practices\n\n- **Never commit tokens to version control** - Store in environment variables or secure secret managers\n- **Rotate regularly** - Generate new tokens periodically and revoke old ones\n- **Scope appropriately** - Request only the permissions your application needs\n- **Revoke unused tokens** - Delete tokens you're no longer using from the console\n\n### Quick Test\n\nVerify your token works with a simple API call:\n\n```bash\ncurl -X GET https://us.authlete.com/api/service/get/list \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## \U0001F393 Tutorials\n\nIf you're new to Authlete or want to see sample implementations, these resources will help you get started:\n\n- [Getting Started with Authlete](https://www.authlete.com/developers/getting_started/)\n- [From Sign-Up to the First API Request](https://www.authlete.com/developers/tutorial/signup/)\n\n## \U0001F6E0 Contact Us\n\nIf you have any questions or need assistance, our team is here to help:\n\n- [Contact Page](https://www.authlete.com/contact/)\n"
  version: 3.0.16
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- description: 🇺🇸 US Cluster
  url: https://us.authlete.com
- description: 🇯🇵 Japan Cluster
  url: https://jp.authlete.com
- description: 🇪🇺 Europe Cluster
  url: https://eu.authlete.com
- description: 🇧🇷 Brazil Cluster
  url: https://br.authlete.com
security:
- bearer: []
tags:
- name: Dynamic Client Registration
  description: API endpoints for implementing OAuth 2.0 Dynamic Client Registration.
  x-tag-expanded: false
paths:
  /api/{serviceId}/client/registration:
    post:
      summary: Register Client
      description: 'Register a client. This API is supposed to be used to implement a client registration endpoint that

        complies with [RFC 7591](https://datatracker.ietf.org/doc/html/rfc7591) (OAuth 2.0 Dynamic Client

        Registration Protocol).

        '
      x-mint:
        metadata:
          description: Register a client. This API is supposed to be used to implement a client registration endpoint that complies with [RFC 7591](https://datatracker.ietf.org/doc/html/rfc7591) (OAuth 2.0 Dynamic Client Registration Protocol).
        content: '<Accordion title="Full description" defaultOpen={false}>

          This API is supposed to be called from the within the implementation of the client registration

          endpoint of the authorization server. The authorization server implementation should retrieve

          the value of `action` from the response and take the following steps according to the value.


          ## INTERNAL_SERVER_ERROR


          When the value of `action` is `INTERNAL_SERVER_ERROR`, it means that the API call from the authorization

          server implementation was wrong or that an error occurred in Authlete.

          In either case, from a viewpoint of the client or developer, it is an error on the server side.

          Therefore, the authorization server implementation should generate a response with "500 Internal

          Server Error"s and `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used as

          the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 500 Internal Server Error

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          The endpoint implementation may return another different response to the client or developer since

          "500 Internal Server Error" is not required by the specification.


          ## BAD_REQUEST


          When the value of `action` is `BAD_REQUEST`, it means that the request from the client or developer

          was wrong.

          The authorization server implementation should generate a response with "400 Bad Request" and `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used

          as the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 400 Bad Request

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```


          ## CREATED


          When the value of `action` is `CREATED`, it means that the request from the client or developer is

          valid.

          The authorization server implementation should generate a response to the client or developer with

          "201 CREATED" and `application/json`.

          The `responseContent` a JSON string which can be used as the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 201 CREATED

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          </Accordion>

          '
      parameters:
      - in: path
        name: serviceId
        description: A service ID.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/client_registration_request'
              - type: object
                required:
                - json
            example:
              json: '{ "client_name": "My Dynamic Client" }'
      responses:
        '200':
          description: Client registration completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/client_registration_response'
              example:
                resultCode: A202001
                resultMessage: '[A202001] The client was created with id 26837717140341.'
                action: CREATED
                client:
                  authTimeRequired: false
                  bcUserCodeRequired: false
                  clientId: 26837717140341
                  clientIdAliasEnabled: false
                  clientName: My Dynamic Client
                  clientSecret: bMsjvZm2FE1_mqJgxhmYj_Wr8rA0Pia_A_j-V076qQm6-P1edKB055W579GBe7MSbOdxZ3dJKsKinCtdIFwxpw
                  clientType: CONFIDENTIAL
                  createdAt: 1641735467000
                  defaultMaxAge: 0
                  developer: authlete_21653835348762
                  dynamicallyRegistered: true
                  frontChannelRequestObjectEncryptionRequired: false
                  idTokenSignAlg: RS256
                  modifiedAt: 1641735467013
                  number: 6248
                  parRequired: false
                  requestObjectEncryptionAlgMatchRequired: false
                  requestObjectEncryptionEncMatchRequired: false
                  requestObjectRequired: false
                  serviceNumber: 5041
                  subjectType: PUBLIC
                  tlsClientCertificateBoundAccessTokens: false
                  tokenAuthMethod: CLIENT_SECRET_BASIC
                responseContent: '{\"default_max_age\":0,\"registration_client_uri\":\"https://my-service.example.com/dcr/register/26837717140341\",\"registration_access_token\":\"qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA\",\"client_id\":\"26837717140341\",\"token_endpoint_auth_method\":\"client_secret_basic\",\"require_pushed_authorization_requests\":false,\"backchannel_user_code_parameter\":false,\"client_secret\":\"bMsjvZm2FE1_mqJgxhmYj_Wr8rA0Pia_A_j-V076qQm6-P1edKB055W579GBe7MSbOdxZ3dJKsKinCtdIFwxpw\",\"client_id_issued_at\":1641735467,\"tls_client_certificate_bound_access_tokens\":false,\"client_name\":\"My Dynamic Client\",\"id_token_signed_response_alg\":\"RS256\",\"subject_type\":\"public\",\"client_secret_expires_at\":0,\"require_signed_request_object\":false}'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      operationId: client_registration_api
      x-code-samples:
      - lang: shell
        label: curl
        source: 'curl -v -X POST https://us.authlete.com/api/21653835348762/client/registration \

          -H ''Content-Type:application/json'' \

          -H ''Authorization: Bearer V5a40R6dWvw2gMkCOBFdZcM95q4HC0Z-T0YKD9-nR6F'' \

          -d ''{ "json": "{ \"client_name\": \"My Dynamic Client\" }" }''

          '
      - lang: java
        label: java
        source: 'AuthleteConfiguration conf = ...;

          AuthleteApi api = AuthleteApiFactory.create(conf);


          ClientRegistrationRequest req = new ClientRegistrationRequest();

          req.setJson(...);


          api.dynamicClientRegister(req);

          '
      - lang: python
        source: 'conf = ...

          api = AuthleteApiImpl(conf)


          req = new ClientRegistrationRequest()

          req.json = ''...''


          api.dynamicClientRegister(req)

          '
      tags:
      - Dynamic Client Registration
  /api/{serviceId}/client/registration/get:
    post:
      summary: Get Client
      description: 'Get a dynamically registered client. This API is supposed to be used to implement a client registration

        management endpoint that complies with [RFC 7592](https://datatracker.ietf.org/doc/html/rfc7592)

        (OAuth 2.0 Dynamic Registration Management).

        '
      x-mint:
        metadata:
          description: Get a dynamically registered client. This API is supposed to be used to implement a client registration management endpoint that complies with [RFC 7592](https://datatracker.ietf.org/doc/html/rfc7592) (OAuth 2.0 Dynamic Registration Management).
        content: '<Accordion title="Full description" defaultOpen={false}>

          This API is supposed to be called from the within the implementation of the client registration

          management endpoint of the authorization server. The authorization server implementation should

          retrieve the value of `action` from the response and take the following steps according to the value.


          ## INTERNAL_SERVER_ERROR


          When the value of `action` is `INTERNAL_SERVER_ERROR`, it means that the API call from the authorization

          server implementation was wrong or that an error occurred in Authlete.

          In either case, from a viewpoint of the client or developer, it is an error on the server side.

          Therefore, the authorization server implementation should generate a response to the client or developer

          with "500 Internal Server Error"s and `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used as

          the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 500 Internal Server Error

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          The endpoint implementation may return another different response to the client or developer since

          "500 Internal Server Error" is not required by the specification.


          ## BAD_REQUEST


          When the value of `action` is `BAD_REQUEST`, it means that the request from the client or developer

          was wrong.

          The authorization server implementation should generate a response to the client or developer with

          "400 Bad Request" and `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used as

          the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 400 Bad Request

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```


          ## UNAUTHORIZED


          When the value of `action` is `UNAUTHORIZED`, it means that the registration access token used by

          the client configuration request (RFC 7592) is invalid, or the client application which the token

          is tied to does not exist any longer or is invalid.

          The HTTP status of the response returned to the client application must be "401 Unauthorized" and

          the content type must be `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used as

          the entity body of the response.


          ---


          The following illustrates the response which the endpoint implementation should generate and return

          to the client application.

          ```

          HTTP/1.1 401 Unauthorized

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          NOTE: The `UNAUTHORIZED` value was added in October, 2021. See the description of

          `Service.unauthorizedOnClientConfigSupported` for details.


          ## OK


          When the value of `action` is `OK`, it means that the request from the client or developer is valid.

          The authorization server implementation should generate a response to the client or developer with

          "200 OK" and `application/json`.

          The `responseContent` a JSON string which can be used as the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 200 OK

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          </Accordion>

          '
      parameters:
      - in: path
        name: serviceId
        description: A service ID.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/client_registration_request'
              - type: object
                required:
                - clientId
                - token
            example:
              clientId: '26837717140341'
              token: qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/client_registration_response'
              example:
                resultCode: A217001
                resultMessage: '[A217001] The client information has been returned.'
                action: OK
                client:
                  authTimeRequired: false
                  bcUserCodeRequired: false
                  clientId: 26837717140341
                  clientIdAliasEnabled: false
                  clientName: My Dynamic Client
                  clientSecret: bMsjvZm2FE1_mqJgxhmYj_Wr8rA0Pia_A_j-V076qQm6-P1edKB055W579GBe7MSbOdxZ3dJKsKinCtdIFwxpw
                  clientType: CONFIDENTIAL
                  createdAt: 1641735467000
                  defaultMaxAge: 0
                  developer: authlete_21653835348762
                  dynamicallyRegistered: true
                  frontChannelRequestObjectEncryptionRequired: false
                  idTokenSignAlg: RS256
                  modifiedAt: 1641735467000
                  number: 6248
                  parRequired: false
                  requestObjectEncryptionAlgMatchRequired: false
                  requestObjectEncryptionEncMatchRequired: false
                  requestObjectRequired: false
                  serviceNumber: 5041
                  subjectType: PUBLIC
                  tlsClientCertificateBoundAccessTokens: false
                  tokenAuthMethod: CLIENT_SECRET_BASIC
                responseContent: '{\"default_max_age\":0,\"registration_client_uri\":\"https://my-service.example.com/dcr/register/26837717140341\",\"registration_access_token\":\"qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA\",\"client_id\":\"26837717140341\",\"token_endpoint_auth_method\":\"client_secret_basic\",\"require_pushed_authorization_requests\":false,\"backchannel_user_code_parameter\":false,\"client_secret\":\"bMsjvZm2FE1_mqJgxhmYj_Wr8rA0Pia_A_j-V076qQm6-P1edKB055W579GBe7MSbOdxZ3dJKsKinCtdIFwxpw\",\"client_id_issued_at\":1641735467,\"tls_client_certificate_bound_access_tokens\":false,\"client_name\":\"My Dynamic Client\",\"id_token_signed_response_alg\":\"RS256\",\"subject_type\":\"public\",\"client_secret_expires_at\":0,\"require_signed_request_object\":false}'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      operationId: client_registration_get_api
      x-code-samples:
      - lang: shell
        label: curl
        source: 'curl -v -X POST https://us.authlete.com/api/21653835348762/client/registration/get \

          -H ''Content-Type:application/json'' \

          -H ''Authorization: Bearer V5a40R6dWvw2gMkCOBFdZcM95q4HC0Z-T0YKD9-nR6F'' \

          -d ''{ "clientId": "26837717140341", "token": "qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA" }''

          '
      - lang: java
        label: java
        source: 'AuthleteConfiguration conf = ...;

          AuthleteApi api = AuthleteApiFactory.create(conf);


          ClientRegistrationRequest req = new ClientRegistrationRequest();

          req.setClientId("26837717140341");

          req.setToken("qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA");


          api.dynamicClientGet(req);

          '
      - lang: python
        source: 'conf = ...

          api = AuthleteApiImpl(conf)


          req = new ClientRegistrationRequest()

          req.clientId = ''26837717140341''

          req.token = ''qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA''


          api.dynamicClientGet(req)

          '
      tags:
      - Dynamic Client Registration
  /api/{serviceId}/client/registration/update:
    post:
      summary: Update Client
      description: 'Update a dynamically registered client. This API is supposed to be used to implement a client

        registration management endpoint that complies with [RFC 7592](https://datatracker.ietf.org/doc/html/rfc7592)

        (OAuth 2.0 Dynamic Registration Management).

        '
      x-mint:
        metadata:
          description: Update a dynamically registered client. This API is supposed to be used to implement a client registration management endpoint that complies with [RFC 7592](https://datatracker.ietf.org/doc/html/rfc7592) (OAuth 2.0 Dynamic Registration Management).
        content: '<Accordion title="Full description" defaultOpen={false}>

          This API is supposed to be called from the within the implementation of the client registration

          management endpoint of the authorization server. The authorization server implementation should

          retrieve the value of `action` from the response and take the following steps according to the value.


          ## INTERNAL_SERVER_ERROR


          When the value of `action` is `INTERNAL_SERVER_ERROR`, it means that the API call from the authorization

          server implementation was wrong or that an error occurred in Authlete.

          In either case, from a viewpoint of the client or developer, it is an error on the server side.

          Therefore, the authorization server implementation should generate a response with "500 Internal

          Server Error"s and `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used as

          the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 500 Internal Server Error

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          The endpoint implementation may return another different response to the client or developer since

          "500 Internal Server Error" is not required by the specification.


          ## BAD_REQUEST


          When the value of `action` is `BAD_REQUEST`, it means that the request from the client or developer

          was wrong.

          The authorization server implementation should generate a response with "400 Bad Request" and `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used as

          the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 400 Bad Request

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```


          ## UNAUTHORIZED


          When the value of `action` is `UNAUTHORIZED`, it means that the registration access token used by

          the client configuration request (RFC 7592) is invalid, or the client application which the token

          is tied to does not exist any longer or is invalid.

          The HTTP status of the response returned to the client application must be "401 Unauthorized" and

          the content type must be `application/json`.

          The value of `responseContent` is a JSON string which describes the error, so it can be used as

          the entity body of the response.


          ---


          The following illustrates the response which the endpoint implementation should generate and return

          to the client application.

          ```

          HTTP/1.1 401 Unauthorized

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          NOTE: The `UNAUTHORIZED` value was added in October, 2021. See the description of

          `Service.unauthorizedOnClientConfigSupported` for details.


          ## UPDATED


          When the value of `action` is `UPDATED`, it means that the request from the client or developer is

          valid.

          The authorization server implementation should generate a response to the client or developer with

          "200 OK" and `application/json`.

          The `responseContent` a JSON string which can be used as the entity body of the response.


          ---


          The following illustrates the response which the authorization server implementation should generate

          and return to the client or developer.

          ```

          HTTP/1.1 200 OK

          Content-Type: application/json

          Cache-Control: no-store

          Pragma: no-cache

          &#123;responseContent&#125;

          ```

          </Accordion>

          '
      parameters:
      - in: path
        name: serviceId
        description: A service ID.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/client_registration_request'
              - type: object
                required:
                - clientId
                - token
                - json
            example:
              clientId: '26837717140341'
              token: qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA
              json: '{"client_name":"My Updated Dynamic Client","default_max_age":0,"registration_client_uri":"https://my-service.example.com/dcr/register/26837717140341","client_id":"26837717140341","token_endpoint_auth_method":"client_secret_basic","require_pushed_authorization_requests":false,"backchannel_user_code_parameter":false,"client_secret":"bMsjvZm2FE1_mqJgxhmYj_Wr8rA0Pia_A_j-V076qQm6-P1edKB055W579GBe7MSbOdxZ3dJKsKinCtdIFwxpw","tls_client_certificate_bound_access_tokens":false,"id_token_signed_response_alg":"RS256","subject_type":"public","require_signed_request_object":false}'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/client_registration_response'
              example:
                resultCode: A213001
                resultMessage: '[A213001] The client has been updated.'
                action: UPDATED
                client:
                  authTimeRequired: false
                  bcUserCodeRequired: false
                  clientId: 26837717140341
                  clientIdAliasEnabled: false
                  clientName: My Updated Dynamic Client
                  clientSecret: bMsjvZm2FE1_mqJgxhmYj_Wr8rA0Pia_A_j-V076qQm6-P1edKB055W579GBe7MSbOdxZ3dJKsKinCtdIFwxpw
                  clientType: CONFIDENTIAL
                  createdAt: 1641735467000
                  defaultMaxAge: 0
                  developer: authlete_21653835348762
                  dynamicallyRegistered: true
                  frontChannelRequestObjectEncryptionRequired: false
                  idTokenSignAlg: RS256
                  modifiedAt: 1641826276936
                  number: 6248
                  parRequired: false
                  requestObjectEncryptionAlgMatchRequired: false
                  requestObjectEncryptionEncMatchRequired: false
                  requestObjectRequired: false
                  serviceNumber: 5041
                  subjectType: PUBLIC
                  tlsClientCertificateBoundAccessTokens: false
                  tokenAuthMethod: CLIENT_SECRET_BASIC
                responseContent: '{\"default_max_age\":0,\"registration_client_uri\":\"https://my-service.example.com/dcr/register/26837717140341\",\"registration_access_token\":\"qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA\",\"client_id\":\"26837717140341\",\"token_endpoint_auth_method\":\"client_secret_basic\",\"require_pushed_authorization_requests\":false,\"backchannel_user_code_parameter\":false,\"client_secret\":\"bMsjvZm2FE1_mqJgxhmYj_Wr8rA0Pia_A_j-V076qQm6-P1edKB055W579GBe7MSbOdxZ3dJKsKinCtdIFwxpw\",\"client_id_issued_at\":1641735467,\"tls_client_certificate_bound_access_tokens\":false,\"client_name\":\"My Updated Dynamic Client\",\"id_token_signed_response_alg\":\"RS256\",\"subject_type\":\"public\",\"client_secret_expires_at\":0,\"require_signed_request_object\":false}'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      operationId: client_registration_update_api
      x-code-samples:
      - lang: shell
        label: curl
        source: 'curl -v -X POST https://us.authlete.com/api/21653835348762/client/registration/update \

          -H ''Content-Type:application/json'' \

          -H ''Authorization: Bearer V5a40R6dWvw2gMkCOBFdZcM95q4HC0Z-T0YKD9-nR6F'' \

          -d ''{ "clientId": "26837717140341", "token": "qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA", "json": "..." }''

          '
      - lang: java
        label: java
        source: 'AuthleteConfiguration conf = ...;

          AuthleteApi api = AuthleteApiFactory.create(conf);


          ClientRegistrationRequest req = new ClientRegistrationRequest();

          req.setClientId("26837717140341");

          req.setToken("qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA");

          req.setJson("...");


          api.dynamicClientUpdate(req);

          '
      - lang: python
        source: 'conf = ...

          api = AuthleteApiImpl(conf)


          req = new ClientRegistrationRequest()

          req.clientId = ''26837717140341''

          req.token = ''qs4Tu5TV7qqDYT93bFs6ISyhTByMF9o-54GY4JU5vTA''

          req.json = ''...''


          api.dynamicClientUpdate(req)

          '
      tags:
      - Dynamic Client Registration
  /api/{serviceId}/client/registration/delete:
    post:
      summary: Delete Client
      description: 'Delete a dynamically registered client. This API is supposed to be used to implement a client

        registration management endpoint that complies with [RFC 7592](https://datatracker.ietf.org/doc/html/rfc7592)

        (OAuth 2.0 Dynamic Registration Management).

        '
      x-mint:
        metadata:
          description: Delete a dynamically registered client. This API is supposed to be used to implement a client registration management endpoint that complies with [RFC 7592](https://datatracker.ietf.org/doc/html/rfc7592) (OAuth 2.0 Dynamic Registration Management).
        content: '<Accordion title="Full description" defaultOpen={false}>

          This API is supposed to be called from the within the implementation of the client registration

          management endpoint of the authorization server. The authorization server implementation should

          retrieve the value of `action` fro

# --- truncated at 32 KB (94 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/authlete/refs/heads/main/openapi/authlete-dynamic-client-registration-api-openapi.yml