---
title: "OIDC Register OAuth Client"
method: POST
path: "/oidc/{profileID}/{profileVersion}/register"
tags: ["oidc4ci"]
---

# OIDC Register OAuth Client

`POST /oidc/{profileID}/{profileVersion}/register`

Registers dynamically an OAuth 2.0 client with the VCS authorization server.

## Request body

- RegisterOAuthClientRequest — OAuth 2.0 client registration request.
  - `redirect_uris` string[] — Array of allowed redirection URI strings for the client. Required if client supports authorization_code grant type.
  - `token_endpoint_auth_method` string — Requested client authentication method for the token endpoint. Supported values: none, client_secret_post, client_secret_basic. None is used for public clients (native apps, mobile apps) which can not have secrets. Default: client_secret_basic.
  - `grant_types` string[] — Array of OAuth 2.0 grant types that the client is allowed to use. Supported values: authorization_code, urn:ietf:params:oauth:grant-type:pre-authorized_code.
  - `response_types` string[] — Array of OAuth 2.0 response types that the client can use at the authorization endpoint. Supported values: code.
  - `scope` string — String containing a space-separated list of scope values that the client can use when requesting access tokens.
  - `client_name` string — Human-readable string name of the client to be presented to the end-user during authorization.
  - `client_uri` string — URL string of a web page providing information about the client.
  - `logo_uri` string — URL string that references a logo for the client.
  - `contacts` string[] — Array of strings representing ways to contact people responsible for this client, typically email addresses.
  - `tos_uri` string — URL string that points to a human-readable terms of service document for the client that describes a contractual relationship between the end-user and the client that the end-user accepts when authorizing the client.
  - `policy_uri` string — URL string that points to a human-readable privacy policy document that describes how the deployment organization collects, uses, retains, and discloses personal data.
  - `jwks_uri` string — URL string referencing the client's JSON Web Key (JWK) Set document, which contains the client's public keys.
  - `jwks` object — Client's JSON Web Key Set document value, which contains the client's public keys.
  - `software_id` string — A unique identifier string (e.g. UUID) assigned by the client developer or software publisher used by registration endpoints to identify the client software to be dynamically registered.
  - `software_version` string — A version identifier string for the client software identified by "software_id".

## Response `201`

Created

- RegisterOAuthClientResponse — Response with registered metadata for created OAuth 2.0 client.
  - `client_id` string, required — Client identifier.
  - `client_secret` string — Client secret. This value is used by the confidential client to authenticate to the token endpoint.
  - `client_id_issued_at` integer, required — Time at which the client identifier was issued.
  - `client_secret_expires_at` integer — Time at which the client secret will expire or 0 if it will not expire.
  - `redirect_uris` string[] — Array of allowed redirection URI strings for the client. Required if client supports authorization_code grant type.
  - `token_endpoint_auth_method` string, required — Requested client authentication method for the token endpoint. Supported values: none, client_secret_post, client_secret_basic. None is used for public clients (native apps, mobile apps) which can not have secrets. Default: client_secret_basic.
  - `grant_types` string[], required — Array of OAuth 2.0 grant types that the client is allowed to use. Supported values: authorization_code, urn:ietf:params:oauth:grant-type:pre-authorized_code.
  - `response_types` string[] — Array of OAuth 2.0 response types that the client can use at the authorization endpoint. Supported values: code.
  - `scope` string — String containing a space-separated list of scope values that the client can use when requesting access tokens.
  - `client_name` string — Human-readable string name of the client to be presented to the end-user during authorization.
  - `client_uri` string — URL string of a web page providing information about the client.
  - `logo_uri` string — URL string that references a logo for the client.
  - `contacts` string[] — Array of strings representing ways to contact people responsible for this client, typically email addresses.
  - `tos_uri` string — URL string that points to a human-readable terms of service document for the client that describes a contractual relationship between the end-user and the client that the end-user accepts when authorizing the client.
  - `policy_uri` string — URL string that points to a human-readable privacy policy document that describes how the deployment organization collects, uses, retains, and discloses personal data.
  - `jwks_uri` string — URL string referencing the client's JSON Web Key (JWK) Set document, which contains the client's public keys.
  - `jwks` object — Client's JSON Web Key Set document value, which contains the client's public keys.
  - `software_id` string — A unique identifier string (e.g. UUID) assigned by the client developer or software publisher used by registration endpoints to identify the client software to be dynamically registered.
  - `software_version` string — A version identifier string for the client software identified by "software_id".

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/trustbloc/apis/verifiable-credential-service-vcs.md) · [All operations](https://skmtc.net/trustbloc/apis/verifiable-credential-service-vcs/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trustbloc/verifiable-credential-service-vcs/revisions/9e21ad997121/schema)
