Get Single Instance Info

This endpoint retrieves the complete state and detailed configuration information for a specific X-Series GPU virtual machine instance using its unique Instance ID or IP address.

Get Single Instance Info - Overview

The X-Series Instance Info API allows authenticated users to retrieve detailed information about a specific virtual machine using its Instance ID or IP address.

The endpoint returns information about the instance's current state, configuration, operating system image, public IP address, SSH port, hourly cost, storage, and billing details. It also includes host node information, such as the node identifier, node type, provider, and launch date.

Use this endpoint to monitor individual instances, retrieve config details, check current instance status, and integrate instance information into custom dashboards or infrastructure automation workflows.

Endpoint

PropertyValue
HTTP MethodGET
Endpoint/xseries/instance
Full URLhttps://cloud.dataoorts.com/api/v1/xseries/instance
AuthenticationBearer Token
Response FormatJSON

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/json

Generate 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

The instance lookup is performed using a query parameter.

ParameterTypeRequiredDescription
id_or_ipStringYesThe Instance ID or IP address of the Instance whose live Information you want to retrieve.

Provide either the instance's identifier or its IP address, The value must correspond to an instance accessible through your account.

Request Examples

cURL - Retrieve instance information using an Instance ID:

curl --get \
  --url "https://cloud.dataoorts.com/api/v1/xseries/instance" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  --data-urlencode "id_or_ip=1373"

Alternatively, use the instance's IP address:

curl --get \
  --url "https://cloud.dataoorts.com/api/v1/xseries/instance" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  --data-urlencode "id_or_ip=38.128.233.51"

Replace YOUR_API_KEY with your actual Dataoorts API key & supply the appropriate Instance ID or IP address.


Python Example Implementation:

import os
import requests


API_URL = "https://cloud.dataoorts.com/api/v1/xseries/instance"


def get_xseries_instance(api_key: str, id_or_ip: str) -> dict:
    """
    Retrieve detailed information about an X-Series instance.

    Args:
        api_key: Your Dataoorts Unify API key.
        id_or_ip: The instance ID or IP address.

    Returns:
        dict: The JSON response containing instance and host node details.

    Raises:
        requests.exceptions.RequestException:
            If the HTTP request fails.
        RuntimeError:
            If the API returns an unsuccessful HTTP status or
            an unexpected JSON error response.
        ValueError:
            If the server returns an invalid JSON response.
    """
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Accept": "application/json",
    }

    response = requests.get(
        API_URL,
        headers=headers,
        params={"id_or_ip": id_or_ip},
        timeout=30,
    )

    try:
        data = response.json()
    except requests.exceptions.JSONDecodeError as exc:
        response.raise_for_status()
        raise ValueError(
            "The API returned an invalid JSON response."
        ) from exc

    if not response.ok:
        message = data.get(
            "message",
            "The request could not be completed.",
        )

        raise RuntimeError(
            f"API request failed (HTTP {response.status_code}): "
            f"{message}"
        )

    if data.get("status") == "error":
        raise RuntimeError(
            data.get("message", "The API reported an error.")
        )

    return data


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_instance(
            api_key=api_key,
            id_or_ip="1373",
        )

        print("Response Status:", result.get("status"))

        data = result.get("data", {})
        instance = data.get("instance_details", {})
        host = data.get("host_node_details", {})

        print("\nInstance Details")
        print("Instance ID:", instance.get("instance_id"))
        print("Name:", instance.get("name"))
        print("Status:", instance.get("status"))
        print("Public IP:", instance.get("public_ip"))
        print("OS Image:", instance.get("os_image"))
        print("Hourly Cost:", instance.get("hourly_cost"))

        print("\nHost Node Details")
        print("Node ID:", host.get("node_id"))
        print("Node Type:", host.get("node_type"))
        print("Provider:", host.get("provider"))

    except requests.exceptions.RequestException as exc:
        print(f"HTTP or network error: {exc}.")

    except (RuntimeError, ValueError) as exc:
        print(f"API error: {exc}.")

Set your API key before running the script.

Linux / macOS

export DATAOORTS_API_KEY="YOUR_API_KEY"
python instance_info.py

Windows PowerShell

$env:DATAOORTS_API_KEY="YOUR_API_KEY"
python instance_info.py

To look up an VM by IP address instead, replace "1373" with required IP address in the id_or_ip argument.

Example json Response

A successful request returns a JSON object containing the request status and two main sections: instance_details and host_node_details.

HTTP Status: 200 OK

{
  "data": {
    "host_node_details": {
      "is_VM": true,
      "launch_date": "2026-01-26 11:24:02.344611",
      "node_id": 294683290,
      "node_type": "VM_RTX-A6000x2_116.0RAM_60CPU_300SSD",
      "provider": "Dataoorts_and_Lambda",
      "total_node_storage": 297
    },
    "instance_details": {
      "hourly_cost": 0.9109,
      "instance_id": 1373,
      "instance_name_id": "bjfycOc",
      "last_billed_time": "Mon, 26 Jan 2026 11:30:18 GMT",
      "name": "VM_RTX-A6000x2_116.0RAM_60CPU_300SSD",
      "os_image": "Ubuntu Server 22.04 LTS (Jammy Jellyfish)",
      "public_ip": "38.128.233.51",
      "ssh_port": 22,
      "status": "running",
      "storage_volume_gb": 297
    }
  },
  "status": "success"
}

The values above illustrate the response format. Actual instance details depend on the instance being queried and its current state.

API Response Structure

The response contains three primary fields:

FieldTypeDescription
statusStringIndicates the result of the API request. A successful response returns success.
data.instance_detailsObjectContains the VMs identity, status, operating system, IP address, SSH port, pricing, storage, and billing information.
data.host_node_detailsObjectContains information about the host node associated with the instance.

Instance Details

The instance_details object contains information about the individual virtual machine.

FieldTypeDescription
instance_idIntegerThe instance's unique numeric identifier.
instance_name_idStringThe instance name identifier returned by the API.
nameStringThe name or configuration identifier of the virtual machine.
statusStringThe current instance state reported by the API, such as running in the example.
public_ipStringThe public IP address associated with the instance.
ssh_portIntegerThe SSH port associated with the instance.
os_imageStringThe operating system image used by the instance.
hourly_costNumberThe hourly instance cost reported by the API.
storage_volume_gbNumberThe instance's storage volume capacity in GB.
last_billed_timeStringThe most recent billing timestamp reported by the API.

Host Node Details

The host_node_details object provides info about the infrastructure node associated with the instance.

FieldTypeDescription
is_VMBooleanIndicates whether the associated resource is identified as a virtual machine instance.
launch_dateStringThe launch date and time reported for the host node.
node_idIntegerThe identifier of the associated host node.
node_typeStringThe host node's configuration identifier, which may include GPU, RAM, CPU, and NVMe storage details.
providerStringThe infrastructure provider identifier returned by the API.
total_node_storageNumberTotal storage value reported for the associated host node.

Usage Notes

Instance ID or IP address: Use the id_or_ip query parameter to identify the target instance. Ensure the supplied value is correct and refers to the intended virtual machine.

Instance status: The status field provides the state reported at the time of the request. The value may change as the instance moves between lifecycle states.

Pricing and billing: Use hourly_cost and last_billed_time to display the cost and billing information returned by the API. These fields represent the values reported by the endpoint and should not be treated as a guaranteed final invoice.

SSH connectivity: The public_ip and ssh_port fields can help identify connection details for the instance. Actual connectivity also depends on SSH credentials, firewall rules, and applicable network access settings.

Error Handling

If request fails, API may return unsuccessful HTTP status code & JSON response containing an error message.

Your application should handle authentication failures, invalid instance identifiers, network errors, and unexpected response formats. Do not assume that an error response contains the same data structure as a successful response.

The Python example checks the HTTP status and attempts to report the API's error message rather than treating every response as a successful instance lookup.

Get Help and Support

For assistance with instance information or API integration, contact the Dataoorts support team at [email protected]​.