# External client

> Get the full list of external clients for an organization.

## List all external clients

Get the full list of external clients for an organization.

### API Endpoint

`GET https://{yourDomain}/{organizationName}/identity_/api/ExternalClient/{partitionGlobalId}`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Read**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body contains the organization ID from where you want to retrieve the external clients.

```
{
  "partitionGlobalId": "<organizationId>"
}
```

### Responses

#### 200 Success

The list of external clients for a given organization has been successfully retrieved.

```
[
  {
    "name": "string",
    "id": "string",
    "secret": "string",
    "isConfidential": true,
    "redirectUri": "string",
    "resources": [
      {
        "name": "string",
        "displayName": "string",
        "description": "string",
        "scopes": [
          {
            "name": "string",
            "displayName": "string",
            "description": "string",
            "type": "user"
          }
        ]
      }
    ],
    "secrets": [
      {
        "id": 0,
        "description": "string",
        "secret": "string",
        "creationTime": "2025-07-18T12:52:37.566Z",
        "expiryTime": "2025-07-18T12:52:37.566Z"
      }
    ]
  }
]
```

## Get details for a specific external client

Get a specific external client from an organization, and obtain the Secret ID of the oldest secret.

### API Endpoint

`GET https://{yourDomain}/{organizationName}/identity_/api/ExternalClient/{partitionGlobalId}`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Read**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body contains the organization ID from where you want to get the external client, and the corresponding client ID.

```
{
  "partitionGlobalId": "<organizationId>"
  "clientId": "<clientId>"
}
```

### Responses

#### 200 Success

The external client has been successfully retrieved.

```
{
  "name": "string",
  "id": "string",
  "secret": "string",
  "isConfidential": true,
  "redirectUri": "string",
  "resources": [
    {
      "name": "string",
      "displayName": "string",
      "description": "string",
      "scopes": [
        {
          "name": "string",
          "displayName": "string",
          "description": "string",
          "type": "user"
        }
      ]
    }
  ],
  "secrets": [
    {
      "id": 0,
      "description": "string",
      "secret": "string",
      "creationTime": "2025-07-18T12:57:01.155Z",
      "expiryTime": "2025-07-18T12:57:01.155Z"
    }
  ]
}
```

## Update an external client

Update the name, redirect URL, scopes, or certificates of an external OAuth application.

### API Endpoint

`PUT https://{yourDomain}/{organizationName}/identity_/api/ExternalClient/{partitionGlobalId}/{clientId}`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Write**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body contains the organization ID where the specific external client is located, and the corresponding client ID.

```
{
  "partitionGlobalId": "<organizationId>",
  "clientId": "<clientId>"
}
```

### Responses

#### 200 Success

The specified external client has been successfully updated.

```
Example Value
Schema
{
  "name": "string",
  "redirectUri": "string",
  "scopes": [
    {
      "name": "string",
      "displayName": "string",
      "description": "string",
      "type": "user"
    }
  ],
  "clientCertificates": [
    {}
  ]
}
```

## Delete external clients

Delete a specific external client.

### API Endpoint

`DELETE https://{yourDomain}/{organizationName}/identity_/api/ExternalClient/{partitionGlobalId}/{clientId}`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Write**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body contains the organization ID from where you want to delete the external client, and the corresponding client ID.

```
{
  "partitionGlobalId": "<organizationId>",
  "clientId": "<clientId>"
}
```

### Responses

#### 204 No content

The external client has been successfully deleted. No values are returned.

## Create a new external client

Create a new external client.

### API Endpoint

`POST https://{yourDomain}/{organizationName}/identity_/api/ExternalClient`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Write**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body includes the organization ID, the external client name, its confidentiality status, the redirect URI, the required scopes, and the client certificates.

```
{
  "partitionGlobalId": "orgId",
  "name": "string",
  "isConfidential": true,
  "redirectUri": "string",
  "scopes": [
    {
      "name": "string",
      "displayName": "string",
      "description": "string",
      "type": "user"
    }
  ],
  "clientCertificates": [
    {}
  ]
}
```

### Responses

#### 201 Created

The external client has been successfully created.

```
{
  "name": "string",
  "id": "string",
  "secret": "string",
  "isConfidential": true,
  "redirectUri": "string",
  "resources": [
    {
      "name": "string",
      "displayName": "string",
      "description": "string",
      "scopes": [
        {
          "name": "string",
          "displayName": "string",
          "description": "string",
          "type": "user"
        }
      ]
    }
  ],
  "secrets": [
    {
      "id": 0,
      "description": "string",
      "secret": "string",
      "creationTime": "2025-07-18T13:53:12.823Z",
      "expiryTime": "2025-07-18T13:53:12.823Z"
    }
  ]
}
```

## Generate a new secret

Generate a new client secret for the given external client.

### API Endpoint

`GET https://{yourDomain}/{organizationName}/identity_/api/ExternalClient/{partitionGlobalId}/{clientId}`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Write**
* **PM.OAuthSecret.Write**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body contains the organization ID where the external client is located, and the corresponding client ID.

```
{
  "partitionGlobalId": "<organizationId>",
  "clientId": "<clientId>"
}
```

### Responses

#### 200 Success

The client secret has been successfully created for the given external client.

```
"string"
```

## Generate a new external client

Generate a new external client.

### API Enpoint

`POST https://{yourDomain}/{organizationName}/identity_/api/ExternalClient/GenerateSecret`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Write**
* **PM.OAuthAppSecret.Write**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body contains the client ID for which you want to generate a secret,a corresponding description, and the organization ID.

```
{
  "clientId": "string",
  "description": "string",
  "partitionGlobalId": "orgId",
  "expiryTime": "2025-07-18T13:24:15.806Z"
}
```

### Responses

#### 200 Success

A new client secret has been successfully generated for the given external client.

```
{
  "id": 0,
  "description": "string",
  "secret": "string",
  "creationTime": "2025-07-18T13:56:16.889Z",
  "expiryTime": "2025-07-18T13:56:16.889Z"
```

## Delete a client secret

Delete a client secret.

### API Endpoint

`DELETE https://{yourDomain}/{organizationName}/identity_/api/ExternalClient/{partitionGlobalId}/secrets/{secretId}`

### Scopes

Requires either one of the following scopes:

* **PM.OAuthApp**
* **PM.OAuthApp.Write**
* **PM.OAuthAppSecret.Write**

### Request headers

```
--header 'Authorization: Bearer {access_token}'\
--header 'Content-Type: application/json'
```

:::note
To obtain the `{access_token}`, make sure to authenticate through one of the methods described in [Authentication methods](https://docs.uipath.com/private-test-cloud/automation-suite/2.2510/api-guide/authentication-methods#authentication-methods).
:::

### Request body

The request body contains the organization ID, and the ID of the client secret you want to delete.

```
{
  "partitionGlobalId": "<organizationId>",
  "secretId": "<secretId>"
}
```

### Responses

#### 204 No content

The client secret has been successfully deleted. No value is returned.
