---
title: "List cloud providers"
component: "savanna"
version: "main"
module: "rest-api"
html_url: "/savanna/main/rest-api/endpoints/list-cloud-providers"
---

[View as HTML](/savanna/main/rest-api/endpoints/list-cloud-providers)

# List cloud providers

Lists the Bring Your Own Cloud (BYOC) providers registered to your organization, the cloud accounts you own that Savanna deploys into. Use an id from this list as the cloud\_provider\_id when you create a workgroup.

GET `/controller/v4/v2/cloud-providers` 

## Authorizations

`x-api-key` string header required 

Authorization for TigerGraph Savanna. Send the key in the `x-api-key` request header.

[Create an API key](../create-api-key.md) 

## Response

200 application/json 

[#](#response-error) `Error` boolean 

Indicates whether the request returned an error.

[#](#response-error-details) `ErrorDetails` object\[\] 

Details about each error returned by the request.

Show child attributes Hide child attributes 

`FieldName`string

Field associated with the error.

`Reason`string

Explanation of why the error occurred.

`Type`string

Category of the error.

Available options: `Internal-Error`, `Bad-Request`, `Not-Found`, `Forbidden`, `Unauthorized`, `API-Disabled`, `Quota-Exceed`, `Unknown`

[#](#response-message) `Message` string 

Human-readable summary of the request result.

[#](#response-request-id) `RequestID` string 

Unique identifier for tracing the request.

[#](#response-result) `Result` object\[\] 

Payload returned by the request.

Show child attributes Hide child attributes 

`api_tokens`string\[\]

API tokens associated with the cloud provider.

`availability_zones`string\[\]

Availability zones configured for the cloud provider.

`cluster_enabled_log_types`string\[\]

Kubernetes control-plane log types enabled for the provider.

Available options: `api`, `audit`, `authenticator`, `controllerManager`, `scheduler`

`component_versions`string

Versions of the components installed for the provider.

`created_at`string

Time the cloud provider was created.

`created_by`string

User who created the cloud provider.

`eks_id`string

Identifier of the Amazon EKS cluster.

`endpoint_service_name`string

Name of the private endpoint service.

`id`string

Unique identifier of the cloud provider.

`last_error`string

Most recent error reported while provisioning or updating the provider.

`name`string

Name of the cloud provider.

`node_group_config`object

Configuration of the Kubernetes node groups.

Show child attributes Hide child attributes 

`ng_16`object

Configuration of the 16-unit node group.

Show child attributes Hide child attributes 

`max_size`integer

Maximum number of nodes in the group.

`min_size`integer

Minimum number of nodes in the group.

`overprovisioning_factor`integer

Additional capacity factor reserved above the requested workload.

`ng_32`object

Configuration of the 32-unit node group.

Show child attributes Hide child attributes 

`max_size`integer

Maximum number of nodes in the group.

`min_size`integer

Minimum number of nodes in the group.

`overprovisioning_factor`integer

Additional capacity factor reserved above the requested workload.

`ng_48`object

Configuration of the 48-unit node group.

Show child attributes Hide child attributes 

`max_size`integer

Maximum number of nodes in the group.

`min_size`integer

Minimum number of nodes in the group.

`overprovisioning_factor`integer

Additional capacity factor reserved above the requested workload.

`ng_64`object

Configuration of the 64-unit node group.

Show child attributes Hide child attributes 

`max_size`integer

Maximum number of nodes in the group.

`min_size`integer

Minimum number of nodes in the group.

`overprovisioning_factor`integer

Additional capacity factor reserved above the requested workload.

`ng_system`object

Configuration of the system node group.

Show child attributes Hide child attributes 

`max_size`integer

Maximum number of nodes in the group.

`min_size`integer

Minimum number of nodes in the group.

`overprovisioning_factor`integer

Additional capacity factor reserved above the requested workload.

`prefetch_image_list`string\[\]

Container images to prefetch onto the nodes.

`options`object

Additional cloud-provider configuration options.

Show child attributes Hide child attributes 

`account_id`string

Cloud account identifier associated with the provider.

`secure_connection`boolean

Whether the provider uses a private, secure connection.

`org_id`string

Unique identifier of the organization that owns the provider.

`platform`string

Cloud platform that hosts the provider.

`region`string

Cloud region that hosts the provider.

`role_arn`string

Amazon Resource Name of the IAM role TigerGraph assumes.

`role_external_id`string

External identifier used when TigerGraph assumes the IAM role.

`security_group_id`string

Identifier of the network security group.

`short_id`string

Short identifier of the cloud provider.

`status`string

Current status of the cloud provider.

`subnet_id`string\[\]

Identifiers of the subnets used by the provider.

`type`string

Access type of the cloud provider.

`updated_at`string

Time the cloud provider was last updated.

`version`string

Version of the cloud provider deployment.

`version_number`integer

Internal version number of the cloud provider record.

`vpc_id`string

Identifier of the virtual private cloud.

`vpc_owned_by_tg`boolean

Whether TigerGraph owns and manages the virtual private cloud.

`work_dir`string

Working directory used while provisioning the provider.

List cloud providers 

cURL 

cURL Python JavaScript PHP Go Java Ruby 

```bash
curl --request GET \
  --url 'https://api.tgcloud.io/controller/v4/v2/cloud-providers' \
  --header 'x-api-key: <your-api-key>'
```

```python
import requests

url = "https://api.tgcloud.io/controller/v4/v2/cloud-providers"
headers = {"x-api-key": "<your-api-key>"}
response = requests.get(url, headers=headers)
print(response.json())
```

```javascript
const response = await fetch(
  "https://api.tgcloud.io/controller/v4/v2/cloud-providers",
  {
    method: "GET",
    headers: { "x-api-key": "<your-api-key>" },
  }
)
console.log(await response.json())
```

```php
<?php
$request = curl_init(
  "https://api.tgcloud.io/controller/v4/v2/cloud-providers"
);
curl_setopt($request, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($request, CURLOPT_HTTPHEADER, [
  "x-api-key: <your-api-key>"
]);
curl_exec($request);
```

```go
request, _ := http.NewRequest(
  "GET",
  "https://api.tgcloud.io/controller/v4/v2/cloud-providers",
  nil,
)
request.Header.Add("x-api-key", "<your-api-key>")
response, _ := http.DefaultClient.Do(request)
```

```java
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create(
    "https://api.tgcloud.io/controller/v4/v2/cloud-providers"
  ))
  .header("x-api-key", "<your-api-key>")
  .GET()
  .build();
```

```ruby
uri = URI(
  "https://api.tgcloud.io/controller/v4/v2/cloud-providers"
)
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "<your-api-key>"
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) {
  |http| http.request(request)
}
```

200 

```json
{
  "Error": false,
  "ErrorDetails": [],
  "Message": "<string>",
  "RequestID": "<string>",
  "Result": [
    {
      "api_tokens": [
        "<string>"
      ],
      "availability_zones": [
        "<string>"
      ],
      "cluster_enabled_log_types": [
        "api"
      ],
      "component_versions": "<string>",
      "created_at": "<string>",
      "created_by": "<string>",
      "eks_id": "<string>",
      "endpoint_service_name": "<string>",
      "id": "<string>",
      "last_error": "<string>",
      "name": "<string>",
      "node_group_config": {
        "ng_16": {
          "max_size": 0,
          "min_size": 0,
          "overprovisioning_factor": 0
        },
        "ng_32": {
          "max_size": 0,
          "min_size": 0,
          "overprovisioning_factor": 0
        },
        "ng_48": {
          "max_size": 0,
          "min_size": 0,
          "overprovisioning_factor": 0
        },
        "ng_64": {
          "max_size": 0,
          "min_size": 0,
          "overprovisioning_factor": 0
        },
        "ng_system": {
          "max_size": 0,
          "min_size": 0,
          "overprovisioning_factor": 0
        },
        "prefetch_image_list": [
          "<string>"
        ]
      },
      "options": {
        "account_id": "<string>",
        "secure_connection": false
      },
      "org_id": "<string>",
      "platform": "<string>",
      "region": "<string>",
      "role_arn": "<string>",
      "role_external_id": "<string>",
      "security_group_id": "<string>",
      "short_id": "<string>",
      "status": "<string>",
      "subnet_id": [
        "<string>"
      ],
      "type": "<string>",
      "updated_at": "<string>",
      "version": "<string>",
      "version_number": 0,
      "vpc_id": "<string>",
      "vpc_owned_by_tg": false,
      "work_dir": "<string>"
    }
  ]
}
```
