---
title: /realm-config/agents/OAuth2Client
description: AM-specific endpoint that lets AM and agent administrators create, list, and delete OAuth 2.0 clients.
component: pingam
version: 7.4
page_id: pingam:am-oauth2:rest-api-oauth2-client-admin-endpoint
canonical_url: https://docs.pingidentity.com/pingam/8.1/am-oauth2/rest-api-oauth2-client-admin-endpoint.html
llms_txt: https://docs.pingidentity.com/pingam/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["OAuth 2.0", "API Explorer", "Endpoints", "Clients"]
page_aliases: ["oauth2-guide:rest-api-oauth2-client-admin-endpoint.adoc"]
superseded_by: https://docs.pingidentity.com/pingam/8.1/am-oauth2/rest-api-oauth2-client-admin-endpoint.html
section_ids:
  create_an_oauth_2_0_client: Create an OAuth 2.0 client
  update_an_oauth_2_0_client: Update an OAuth 2.0 client
  query_oauth_2_0_clients: Query OAuth 2.0 clients
  delete_an_oauth_2_0_client: Delete an OAuth 2.0 client
---

# /realm-config/agents/OAuth2Client

AM-specific endpoint that lets AM and agent administrators create, list, and delete OAuth 2.0 clients.

|   |                                                                                                                                                                                                                                                               |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Use the AM API explorer for detailed information about the parameters supported by this endpoint, and to test it against your deployed AM instance.In the AM admin UI, click the Help icon, and go to API Explorer > /realm-config > /agents > /OAuth2Client. |

## Create an OAuth 2.0 client

This example registers a basic OAuth 2.0 client named `myClient` in the `alpha` realm. Provide the SSO token of an administrative user as a header, and append the name of the client to the URL.

> **Collapse: Example**
>
> ```bash
> $ curl \
> --request PUT \
> --header "Accept-API-Version: resource=1.0" \
> --header "Content-Type: application/json" \
> --header "Accept: application/json" \
> --header "iplanetDirectoryPro: AQIC5wM…​3MTYxOA..*" \
> --data '{
>    "coreOAuth2ClientConfig":{
>       "agentgroup":"",
>       "status":{
>          "inherited":true,
>          "value":"string"
>       },
>       "userpassword":"forgerock",
>       "clientType":{
>          "inherited":false,
>          "value":"Confidential"
>       },
>       "redirectionUris":{
>          "inherited":false,
>          "value":[
>             "https://www.example.com:443/callback"
>          ]
>       },
>       "scopes":{
>          "inherited":false,
>          "value":[
>             "write",
>             "read"
>          ]
>       },
>       "defaultScopes":{
>          "inherited":true,
>          "value":[
>             "write"
>          ]
>       },
>       "clientName":{
>          "inherited":true,
>          "value":[
>             "My Test Client"
>          ]
>       }
>    },
>    "advancedOAuth2ClientConfig":{
>       "name":{
>          "inherited":false,
>          "value":[
>             null
>          ]
>       },
>       "grantTypes":{
>          "inherited":true,
>          "value":[
>             "authorization_code",
>             "client_credentials"
>          ]
>       },
>       "tokenEndpointAuthMethod":{
>          "inherited":true,
>          "value":"client_secret_basic"
>       }
>    }
> }' \
> "https://openam.example.com:8443/openam/json/realms/root/realms/alpha/realm-config/agents/OAuth2Client/myClient"
> {
>    "_id":"myClient",
>    "_rev":"-60716879",
>    "advancedOAuth2ClientConfig":{
>       "descriptions":{
>          "inherited":false,
>          "value":[
>
>          ]
>       },
>
> …​
>
>       "clientType":{
>          "inherited":false,
>          "value":"Confidential"
>       },
> …​
>       "_type":{
>       "_id":"OAuth2Client",
>       "name":"OAuth2 Clients",
>       "collection":true
>    }
> }
> ```

## Update an OAuth 2.0 client

To update an existing OAuth 2.0 client, use a similar PUT request to the create request. Make sure you include *all* the attributes to be retained in the client configuration. If you omit an attribute in the JSON payload, the request effectively deletes that attribute from the client. This doesn't apply to the client secret attribute.

## Query OAuth 2.0 clients

This example lists the OAuth 2.0 clients in the `alpha` realm. Provide the SSO token of an administrative user as a header.

> **Collapse: Example**
>
> ```bash
> $ curl \
> --request GET \
> --header "Accept-API-Version: resource=1.0" \
> --header "iplanetDirectoryPro: AQIC5wM…​3MTYxOA..*" \
> "https://openam.example.com:8443/openam/json/realms/root/realms/alpha/realm-config/agents/OAuth2Client?_queryFilter=true"
> {
>   "result": [
>     {
>       "_id": "myClient",
>       "_rev": "-1788958356",
>       "overrideOAuth2ClientConfig": {
>         "issueRefreshToken": true,
>         "validateScopePluginType": "PROVIDER",
>         "tokenEncryptionEnabled": false,
>         "evaluateScopePluginType": "PROVIDER",
>         "oidcMayActScript": "[Empty]",
>         "oidcClaimsScript": "[Empty]",
>         "accessTokenModificationPluginType": "PROVIDER",
>         "authorizeEndpointDataProviderClass": "org.forgerock.oauth2.core.plugins.registry.DefaultEndpointDataProvider",
>         "oidcClaimsPluginType": "PROVIDER",
>         "providerOverridesEnabled": false,
>         "authorizeEndpointDataProviderScript": "[Empty]",
>         "statelessTokensEnabled": false,
>         "authorizeEndpointDataProviderPluginType": "PROVIDER",
>         "remoteConsentServiceId": null,
>         "enableRemoteConsent": false,
>         "validateScopeClass": "org.forgerock.oauth2.core.plugins.registry.DefaultScopeValidator",
>         "usePolicyEngineForScope": false,
>         "evaluateScopeClass": "org.forgerock.oauth2.core.plugins.registry.DefaultScopeEvaluator",
>         "overrideableOIDCClaims": [],
>         "accessTokenMayActScript": "[Empty]",
>         "evaluateScopeScript": "[Empty]",
>         "clientsCanSkipConsent": false,
>         "accessTokenModificationScript": "[Empty]",
>         "issueRefreshTokenOnRefreshedToken": true,
>         "validateScopeScript": "[Empty]"
>       },
>       "advancedOAuth2ClientConfig": {
>         "logoUri": [],
>         "subjectType": "public",
>         "clientUri": [],
>         "tokenExchangeAuthLevel": 0,
>         "responseTypes": [
>           "code",
>           "token",
>           "id_token",
>           "code token",
>           "token id_token",
>           "code id_token",
>           "code token id_token",
>           "device_code",
>           "device_code id_token"
>         ],
>         "mixUpMitigation": false,
>         "customProperties": [],
>         "javascriptOrigins": [],
>         "policyUri": [],
>         "softwareVersion": null,
>         "sectorIdentifierUri": null,
>         "tosURI": [],
>         "tokenEndpointAuthMethod": "client_secret_basic",
>         "isConsentImplied": false,
>         "refreshTokenGracePeriod": 0,
>         "softwareIdentity": null,
>         "grantTypes": [
>           "authorization_code"
>         ],
>         "require_pushed_authorization_requests": false,
>         "descriptions": [],
>         "requestUris": [],
>         "name": [],
>         "contacts": [],
>         "updateAccessToken": null
>       },
>       "signEncOAuth2ClientConfig": {
>         "tokenEndpointAuthSigningAlgorithm": "RS256",
>         "idTokenEncryptionEnabled": false,
>         "tokenIntrospectionEncryptedResponseEncryptionAlgorithm": "A128CBC-HS256",
>         "requestParameterSignedAlg": null,
>         "authorizationResponseSigningAlgorithm": "RS256",
>         "clientJwtPublicKey": null,
>         "idTokenPublicEncryptionKey": null,
>         "mTLSSubjectDN": null,
>         "jwkStoreCacheMissCacheTime": 60000,
>         "jwkSet": null,
>         "idTokenEncryptionMethod": "A128CBC-HS256",
>         "jwksUri": null,
>         "tokenIntrospectionEncryptedResponseAlg": "RSA-OAEP-256",
>         "authorizationResponseEncryptionMethod": null,
>         "userinfoResponseFormat": "JSON",
>         "mTLSCertificateBoundAccessTokens": false,
>         "publicKeyLocation": "jwks_uri",
>         "tokenIntrospectionResponseFormat": "JSON",
>         "requestParameterEncryptedEncryptionAlgorithm": "A128CBC-HS256",
>         "userinfoSignedResponseAlg": null,
>         "idTokenEncryptionAlgorithm": "RSA-OAEP-256",
>         "requestParameterEncryptedAlg": null,
>         "authorizationResponseEncryptionAlgorithm": null,
>         "mTLSTrustedCert": null,
>         "jwksCacheTimeout": 3600000,
>         "userinfoEncryptedResponseAlg": null,
>         "idTokenSignedResponseAlg": "RS256",
>         "userinfoEncryptedResponseEncryptionAlgorithm": "A128CBC-HS256",
>         "tokenIntrospectionSignedResponseAlg": "RS256"
>       },
>       "coreOpenIDClientConfig": {
>         "claims": [],
>         "backchannel_logout_uri": null,
>         "defaultAcrValues": [],
>         "jwtTokenLifetime": 0,
>         "defaultMaxAgeEnabled": false,
>         "clientSessionUri": null,
>         "defaultMaxAge": 600,
>         "postLogoutRedirectUri": [],
>         "backchannel_logout_session_required": false
>       },
>       "coreOAuth2ClientConfig": {
>         "status": "Active",
>         "clientName": [],
>         "clientType": "Confidential",
>         "loopbackInterfaceRedirection": false,
>         "defaultScopes": [],
>         "agentgroup": null,
>         "refreshTokenLifetime": 0,
>         "scopes": [],
>         "accessTokenLifetime": 0,
>         "redirectionUris": [],
>         "authorizationCodeLifetime": 0
>       },
>       "coreUmaClientConfig": {
>         "claimsRedirectionUris": []
>       },
>       "_type": {
>         "_id": "OAuth2Client",
>         "name": "OAuth2 Clients",
>         "collection": true
>       }
>     }
>   ],
>   "resultCount": 1,
>   "pagedResultsCookie": null,
>   "totalPagedResultsPolicy": "EXACT",
>   "totalPagedResults": 1,
>   "remainingPagedResults": -1
> }
> ```

## Delete an OAuth 2.0 client

This example deletes an OAuth 2.0 client named `myClient` in the `alpha` realm. Provide the SSO token of and administrative user as a header, and append the name of the client to the URL.

> **Collapse: Example**
>
> ```bash
> $ curl \
> --request DELETE \
> --header "Accept-API-Version: resource=1.0" \
> --header "iplanetDirectoryPro: AQIC5wM…​3MTYxOA..*" \
> "https://openam.example.com:8443/openam/json/realms/root/realms/alpha/realm-config/agents/OAuth2Client/myClient"
> {
>     "_id": "myClient",
>     "_rev": "-614477476",
>     ...
> }
> ```
