This endpoint retrieves the mapping of available GPU models to their corresponding cloud regions on the Dataoorts platform. It is used to programmatically check regional availability and ensure that storage volumes are created and attached within the same region as the targeted GPU virtual machine instance.
GPU Regions and Volumes - Overview
The X-Series GPU Regions API allows authenticated users to retrieve the available GPU models and their corresponding regions on the Dataoorts platform.
This endpoint returns mapping between GPU Instance, region codes, & region names. Use this info when selecting a region for volume creation or building automated storage provisioning workflows for instances.
Important Note: Each volume can only be attached to a GPU instance located in the same region. Before creating a volume, retrieve the available GPU-to-region mappings and ensure that the selected volume region matches the region of the target GPU instance.
This endpoint also returns GPU configurations and their availability in each Region/DC, Indicating the total number of GPU cards available for deployment. This helps you make more informed scaling decisions.
Endpoint
| Property | Value |
|---|---|
| HTTP Method | GET |
| Endpoint | /xseries/volumes/regions |
| Full URL | https://cloud.dataoorts.com/api/v1/xseries/volumes/regions |
| Authentication | Bearer Token |
| Response Format | JSON |
Authentication
This endpoint requires a valid Dataoorts Unify API key.
Include your API key in the Authorization header using the Bearer authentication scheme.
Authorization: Bearer YOUR_API_KEY
Accept: application/jsonGenerate or manage your API key through the Dataoorts Unify API.
Keep your API key confidential and never expose it in public repositories or client-side applications.
Request Parameters
This endpoint does not require any query parameters or a request body. Send a GET request with the required authentication header.
Request Examples
cURL - Use the following command to retrieve the available GPU models and their associated regions:
curl --request GET \
--url "https://cloud.dataoorts.com/api/v1/xseries/volumes/regions" \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Accept: application/json"Replace YOUR_API_KEY with your actual Dataoorts Unify API key.
Python Example Implementation
import os
import requests
API_URL = (
"https://cloud.dataoorts.com"
"/api/v1/xseries/volumes/regions"
)
def get_xseries_volume_regions(api_key: str) -> dict:
"""
Retrieve available GPU models and their associated regions.
Args:
api_key: Your Dataoorts Unify API key.
Returns:
dict: The JSON response containing GPU-to-region mappings.
Raises:
requests.exceptions.RequestException:
If the HTTP request fails or returns an unsuccessful
HTTP status code.
ValueError:
If the response cannot be decoded as JSON.
"""
headers = {
"Authorization": f"Bearer {api_key}",
"Accept": "application/json",
}
response = requests.get(
API_URL,
headers=headers,
timeout=30,
)
response.raise_for_status()
try:
return response.json()
except requests.exceptions.JSONDecodeError as exc:
raise ValueError(
"The API returned an invalid JSON response."
) from exc
if __name__ == "__main__":
api_key = os.getenv("DATAOORTS_API_KEY")
if not api_key:
raise RuntimeError(
"Set the DATAOORTS_API_KEY environment variable."
)
try:
result = get_xseries_volume_regions(api_key)
print("Status:", result.get("status"))
print("Count:", result.get("count"))
print("Message:", result.get("message"))
print("\nAvailable GPU Regions:")
for item in result.get("data", []):
print(
f"- GPU: {item.get('gpu_model')} | "
f"Region: {item.get('region_name')} | "
f"Region Code: {item.get('region_code')}"
)
except requests.exceptions.RequestException as exc:
print(f"API request failed: {exc}.")
except ValueError as exc:
print(f"Invalid API response: {exc}.")Set your API key before running the script.
Linux / macOS
export DATAOORTS_API_KEY="YOUR_API_KEY"
python gpu_regions.pyWindows PowerShell
$env:DATAOORTS_API_KEY="YOUR_API_KEY"
python gpu_regions.pyThe script prints the response status, total number of returned mappings, and the GPU model and region information for each entry.
Example Success Response
A successful request returns a JSON object containing the total number of mappings, a descriptive message, and an array of GPU-to-region entries.
HTTP Status: 200 OK
{
"configs": [
{
"available": "10+",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 2
},
"gpu_model": "A100-80G-SXM4",
"region": "US-1"
},
{
"available": "8",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 1
},
"gpu_model": "H100-80G-SXM5-spot",
"region": "US-1"
},
{
"available": "1",
"configurations": {
"10x": 0,
"1x": 1,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "RTX-A4000",
"region": "NORWAY-1"
},
{
"available": "0",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "H100-80G-SXM5",
"region": "CANADA-1"
},
{
"available": "25+",
"configurations": {
"10x": 0,
"1x": 38,
"2x": 16,
"4x": 5,
"8x": 0
},
"gpu_model": "RTX-A6000",
"region": "CANADA-1"
},
{
"available": "8",
"configurations": {
"10x": 0,
"1x": 8,
"2x": 4,
"4x": 2,
"8x": 1
},
"gpu_model": "L40-spot",
"region": "CANADA-1"
},
{
"available": "5",
"configurations": {
"10x": 0,
"1x": 5,
"2x": 2,
"4x": 1,
"8x": 0
},
"gpu_model": "H100-80G-PCIe-spot",
"region": "CANADA-1"
},
{
"available": "25+",
"configurations": {
"10x": 0,
"1x": 39,
"2x": 19,
"4x": 7,
"8x": 1
},
"gpu_model": "L40",
"region": "CANADA-1"
},
{
"available": "9",
"configurations": {
"10x": 0,
"1x": 9,
"2x": 2,
"4x": 0,
"8x": 0
},
"gpu_model": "H100-80G-PCIe",
"region": "CANADA-1"
},
{
"available": "2",
"configurations": {
"10x": 0,
"1x": 2,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "A100-80G-PCIe",
"region": "CANADA-1"
},
{
"available": "0",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "H100-80G-PCIe-NVLink-spot",
"region": "CANADA-1"
},
{
"available": "0",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "B300-SXM",
"region": "CANADA-1"
},
{
"available": "10+",
"configurations": {
"10x": 0,
"1x": 12,
"2x": 5,
"4x": 2,
"8x": 0
},
"gpu_model": "RTX-A6000-spot",
"region": "CANADA-1"
},
{
"available": "0",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "A100-80G-PCIe-NVLink",
"region": "CANADA-1"
},
{
"available": "0",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "H100-80G-PCIe-NVLink",
"region": "CANADA-1"
},
{
"available": "0",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "A100-80G-PCIe-spot",
"region": "CANADA-1"
},
{
"available": "0",
"configurations": {
"10x": 0,
"1x": 0,
"2x": 0,
"4x": 0,
"8x": 0
},
"gpu_model": "H200-141G-SXM5",
"region": "CANADA-1"
}
],
"count": 14,
"data": [
{
"gpu_model": "A100",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "A100 NVLink",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "B300 SXM",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "B200 SXM",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "A100 SXM4",
"region_dc_code": "US-1",
"region_name": "United-States"
},
{
"gpu_model": "H100",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "H100 NVLink",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "H100 SXM5",
"region_dc_code": "US-1",
"region_name": "United-States"
},
{
"gpu_model": "H200 SXM5",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "L40",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "RTX A4000",
"region_dc_code": "NORWAY-1",
"region_name": "North-Europe"
},
{
"gpu_model": "H100 SXM",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "RTX A6000",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
},
{
"gpu_model": "RTX PRO A6000 SE",
"region_dc_code": "CANADA-1",
"region_name": "Canada"
}
],
"message": "Real-time GPU to Region Mapping Retrieved Successfully.",
"status": "success"
}The response above illustrates the returned structure. GPU availability and region mappings may change over time; use the latest API response when selecting a configuration.
Response Fields
| Field | Type | Description |
|---|---|---|
status | String | Indicates the result of the API request. A successful response returns success. |
count | Integer | The number of GPU-to-region mapping entries returned by the API. |
message | String | A descriptive message about the result of the request. |
data | Array of objects | Contains the available GPU models and their corresponding regions. |
data[].gpu_model | String | The GPU model or configuration name associated with the region. |
data[].region_code | String | The region identifier used to identify the associated region. |
data[].region_name | String | The human-readable name of the region. |
Understanding GPU Regions
Each entry in the data array associates a GPU model with a specific region.
For example:
{
"gpu_model": "A100 SXM4",
"region_code": "US-1",
"region_name": "United-States"
}This entry indicates that the A100 SXM4 GPU model is associated with the region code US-1, whose displayed region name is United-States.
Use the region_code to identify the region in your volume provisioning workflow, according to the requirements of the relevant volume API.
Volume Region Compatibility
A volume must be created in the same region as the GPU instance to which it will be attached.
Before creating or attaching a volume:
- Retrieve the available GPU-to-region mappings using this endpoint.
- Identify the region associated with the GPU configuration you intend to use.
- Determine the region of the target GPU instance.
- Ensure that the volume is created in that same region before attempting to attach it.
Selecting a matching region helps ensure compatibility between the volume and the target instance.
Important: This endpoint provides GPU and region mapping information. It does not create a volume or attach one to an instance.
Usage Examples
You can integrate this endpoint into workflows that:
- Display available GPU models and their associated regions.
- Populate region selection menus in custom dashboards.
- Validate region compatibility before volume provisioning.
- Automate storage planning for GPU instances.
- Retrieve the latest region mapping before creating a volume.
Error Handling
If request fails, API may return unsuccessful HTTP status code and JSON response containing an error message.
Your application should handle authentication failures, network errors, request timeouts, server errors, and unexpected response formats.
In Python, response.raise_for_status() raises an exception for unsuccessful HTTP status codes. Do not assume that an error response contains the same fields as a successful response.
Get Help and Support
For assistance with GPU regions, volume compatibility, or API integration, contact the Dataoorts support team at [email protected].
