> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/infra-controller/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/infra-controller/_mcp/server.

# Retrieve a DPU Machine

GET https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/dpu/{dpuMachineId}

Retrieve a DPU Machine by ID. By default, DPU network configuration is not included. Set `includeNetworkConfig` query parameter to `true` to retrieve the network configuration fields.

User must have authorization role with `PROVIDER_ADMIN` suffix on the org that owns the Site.


Reference: https://docs.nvidia.com/infra-controller/rest-api-reference/api-reference/dpu-machine/get-dpu-machine

## Authentication

- `Authorization` header (bearer token, required) — ``` export JWT_BEARER_TOKEN="<jwt-bearer-token>" # Example org name: "acme-inc export ORG_NAME=<org-name> # Use the JWT bearer token in your API request auth header: curl -v -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $JWT_BEARER_TOKEN" https://nico-rest-api.nico.svc.cluster.local/v2/org/$ORG_NAME/nico/user/current ```

## Request

### Path parameters

- `org` (string, required) — Name of the Org
- `dpuMachineId` (string, required) — ID of the DPU Machine

### Query parameters

- `siteId` (string, required) — ID of the Site
- `includeNetworkConfig` (boolean, optional, default: false) — Include network configuration fields exposed by the REST API

## Response

### 200

OK

- `id` (string, required) — ID of the DPU Machine
- `infrastructureProviderId` (string, required) — ID of the Infrastructure Provider that owns the host Machine
- `siteId` (string, required) — ID of the Site that the host Machine belongs to
- `hostMachineId` (string, required) — ID of the host Machine that this DPU is attached to
- `dpuAgentVersion` (string, required) — Version of the DPU agent running on the DPU
- `bmcInfo` (object, required, nullable) — BMC (Baseboard Management Controller) information for the DPU
  - `ip` (string, optional, nullable) — IP address of the Machine BMC
  - `mac` (string, optional, nullable) — MAC address of the Machine BMC
  - `version` (string, optional, nullable) — Version reported by the Machine BMC
  - `firmwareRevision` (string, optional, nullable) — Firmware revision reported by the Machine BMC
- `dmiData` (object, required, nullable) — DMI (Desktop Management Interface) data reported for the DPU
  - `boardName` (string, optional, nullable) — DMI board name reported by the Machine
  - `boardSerial` (string, optional, nullable) — DMI board serial number reported by the Machine
  - `boardVersion` (string, optional, nullable) — DMI board version reported by the Machine
  - `biosDate` (string, optional, nullable) — DMI BIOS release date reported by the Machine
  - `biosVersion` (string, optional, nullable) — DMI BIOS version reported by the Machine
  - `productName` (string, optional, nullable) — DMI product name reported by the Machine
  - `productSerial` (string, optional, nullable) — DMI product serial number reported by the Machine
  - `chassisSerial` (string, optional, nullable) — DMI chassis serial number reported by the Machine
  - `sysVendor` (string, optional, nullable) — DMI system vendor reported by the Machine
- `interfaces` (list of object, required, nullable) — Interfaces reported on the DPU
  - `id` (string, optional) — Interface ID
  - `machineId` (string, optional) — ID of the Machine the interface belongs to
  - `segmentId` (string, optional) — Network segment ID
  - `hostname` (string, optional) — Hostname of the interface
  - `primaryInterface` (boolean, optional) — Whether this is the primary interface
  - `macAddress` (string, optional) — MAC address of the interface
  - `address` (list of string, optional) — IP addresses assigned to the interface
  - `vendor` (string, optional, nullable) — Vendor of the interface
  - `created` (datetime, optional, nullable) — Timestamp when the interface was first observed
  - `lastDhcp` (datetime, optional, nullable) — Timestamp of the last DHCP lease for the interface
  - `isBmc` (boolean, optional) — Whether this interface is a BMC interface
- `softwareComponents` (list of object, required, nullable) — Software components reported on the DPU
  - `name` (string, optional) — Name of the software component
  - `version` (string, optional) — Version of the software component
  - `url` (string, optional) — URL where the software component can be obtained
- `health` (object, required, nullable) — Health information for the DPU
  - `source` (string, optional) — Describes how the health report was generated
  - `observedAt` (string, optional, nullable) — Date/time when health report was generated
  - `successes` (list of object, optional) — Results from successful health probes for the Machine
    - `id` (string, required) — Health probe identifier
    - `target` (string, optional, nullable) — Specific component targeted by health probe
  - `alerts` (list of object, optional) — Results from failed health probes for the Machine
    - `id` (string, required) — Health probe identifier
    - `message` (string, required) — Details of the failed health probe result
    - `target` (string, optional, nullable) — Specific component targeted by health probe
    - `inAlertSince` (datetime, optional, nullable) — Date/time since the alert has been in effect
    - `tenantMessage` (string, optional, nullable) — Information provided by Tenant, if any
    - `classifications` (list of string, optional) — Classifications for this alert, category or impact
- `labels` (map from string to string, required, nullable) — Labels associated with the DPU
- `state` (string, required) — Lifecycle state of the DPU
- `dpuNetworkConfig` (object, required, nullable) — Network configuration fields exposed by the REST API, or null when not requested or unavailable
  - `asn` (uint, required) — Autonomous System Number for BGP routing
  - `vniDevice` (string, required) — VNI device name
  - `managedHostConfigVersion` (string, required) — Version of the managed host configuration
  - `useAdminNetwork` (boolean, required) — Whether to use the admin network
  - `remoteId` (string, required) — Remote identifier for the managed host
  - `vpcIsolationBehavior` (string, required) — VPC isolation behavior setting
  - `statefulAclsEnabled` (boolean, required) — Whether stateful ACLs are enabled
  - `enableDhcp` (boolean, required) — Whether DHCP is enabled
  - `isPrimaryDpu` (boolean, required) — Whether this is the primary DPU
  - `datacenterAsn` (uint, required) — Datacenter Autonomous System Number
  - `dhcpServers` (list of string, optional) — List of DHCP server IP addresses
  - `managedHostConfig` (object, optional) — Network configuration applied to the managed host
    - `loopbackIp` (string, required) — Loopback IP address
    - `quarantineState` (object, optional) — Quarantine state for the managed host
      - `mode` (string, required) — Quarantine mode
      - `reason` (string, optional, nullable) — Reason for quarantine
  - `adminInterface` (object, optional) — Admin network interface configuration for the DPU
    - `functionType` (string, required) — Function type (e.g. PHYSICAL_FUNCTION, VIRTUAL_FUNCTION)
    - `vlanId` (uint, required) — VLAN ID
    - `vni` (uint, required) — VXLAN Network Identifier
    - `gateway` (string, required) — Gateway IP address
    - `ip` (string, required) — Interface IP address
    - `interfacePrefix` (string, required) — Interface name prefix
    - `prefix` (string, required) — IP prefix for the interface
    - `fqdn` (string, required) — Fully qualified domain name
    - `vpcVni` (uint, required) — VPC VXLAN Network Identifier
    - `isL2Segment` (boolean, required) — Whether the interface is an L2 segment
    - `virtualFunctionId` (uint, optional, nullable) — Virtual function ID if applicable
    - `vpcPrefixes` (list of string, optional) — List of VPC IP prefixes
    - `bootUrl` (string, optional, nullable) — Boot URL for PXE/iPXE boot
    - `sviIp` (string, optional, nullable) — Switch virtual interface (SVI) IP address
    - `tenantVrfLoopbackIp` (string, optional, nullable) — Tenant VRF loopback IP address
    - `vpcPeerPrefixes` (list of string, optional) — List of peered VPC IP prefixes
    - `vpcPeerVnis` (list of uint, optional) — List of peered VPC VNIs
    - `mtu` (uint, optional, nullable) — Maximum transmission unit (MTU) for the interface
    - `networkSecurityGroup` (object, optional) — Network security group configuration resolved on the interface
      - `id` (string, required) — ID of the Network Security Group
      - `version` (string, required) — Version of the Network Security Group
      - `source` (string, required) — Source of the Network Security Group configuration
      - `rules` (list of object, optional) — Resolved rules for the Network Security Group
        - `rule` (object, optional) — The underlying Network Security Group rule
          - `direction` (enum, required) — Traffic direction the rule applies to
            - Allowed values: `INGRESS`, `EGRESS`
          - `protocol` (enum, required) — Network protocol matched by the rule
            - Allowed values: `TCP`, `UDP`, `ICMP`, `ICMP6`, `ANY`
          - `action` (enum, required) — Action applied when traffic matches the rule
            - Allowed values: `PERMIT`, `DENY`
          - `sourcePrefix` (string, required) — Source CIDR prefix matched by the rule
          - `destinationPrefix` (string, required) — Destination CIDR prefix matched by the rule
          - `name` (string, optional, nullable) — Name of the Network Security Group rule
          - `sourcePortRange` (string, optional, nullable) — Source port or port range matched by the rule
          - `destinationPortRange` (string, optional, nullable) — Destination port or port range matched by the rule
          - `priority` (integer, optional) — Rule priority used to order evaluation
        - `srcPrefixes` (list of string, optional) — Resolved source IP prefixes for the rule
        - `dstPrefixes` (list of string, optional) — Resolved destination IP prefixes for the rule
  - `tenantInterfaces` (list of object, optional) — List of tenant interface configurations
    - `functionType` (string, required) — Function type (e.g. PHYSICAL_FUNCTION, VIRTUAL_FUNCTION)
    - `vlanId` (uint, required) — VLAN ID
    - `vni` (uint, required) — VXLAN Network Identifier
    - `gateway` (string, required) — Gateway IP address
    - `ip` (string, required) — Interface IP address
    - `interfacePrefix` (string, required) — Interface name prefix
    - `prefix` (string, required) — IP prefix for the interface
    - `fqdn` (string, required) — Fully qualified domain name
    - `vpcVni` (uint, required) — VPC VXLAN Network Identifier
    - `isL2Segment` (boolean, required) — Whether the interface is an L2 segment
    - `virtualFunctionId` (uint, optional, nullable) — Virtual function ID if applicable
    - `vpcPrefixes` (list of string, optional) — List of VPC IP prefixes
    - `bootUrl` (string, optional, nullable) — Boot URL for PXE/iPXE boot
    - `sviIp` (string, optional, nullable) — Switch virtual interface (SVI) IP address
    - `tenantVrfLoopbackIp` (string, optional, nullable) — Tenant VRF loopback IP address
    - `vpcPeerPrefixes` (list of string, optional) — List of peered VPC IP prefixes
    - `vpcPeerVnis` (list of uint, optional) — List of peered VPC VNIs
    - `mtu` (uint, optional, nullable) — Maximum transmission unit (MTU) for the interface
    - `networkSecurityGroup` (object, optional) — Network security group configuration resolved on the interface
      - `id` (string, required) — ID of the Network Security Group
      - `version` (string, required) — Version of the Network Security Group
      - `source` (string, required) — Source of the Network Security Group configuration
      - `rules` (list of object, optional) — Resolved rules for the Network Security Group
        - `rule` (object, optional) — The underlying Network Security Group rule
          - `direction` (enum, required) — Traffic direction the rule applies to
            - Allowed values: `INGRESS`, `EGRESS`
          - `protocol` (enum, required) — Network protocol matched by the rule
            - Allowed values: `TCP`, `UDP`, `ICMP`, `ICMP6`, `ANY`
          - `action` (enum, required) — Action applied when traffic matches the rule
            - Allowed values: `PERMIT`, `DENY`
          - `sourcePrefix` (string, required) — Source CIDR prefix matched by the rule
          - `destinationPrefix` (string, required) — Destination CIDR prefix matched by the rule
          - `name` (string, optional, nullable) — Name of the Network Security Group rule
          - `sourcePortRange` (string, optional, nullable) — Source port or port range matched by the rule
          - `destinationPortRange` (string, optional, nullable) — Destination port or port range matched by the rule
          - `priority` (integer, optional) — Rule priority used to order evaluation
        - `srcPrefixes` (list of string, optional) — Resolved source IP prefixes for the rule
        - `dstPrefixes` (list of string, optional) — Resolved destination IP prefixes for the rule
  - `instanceNetworkConfigVersion` (string, optional, nullable) — Version of the instance network configuration
  - `instanceId` (string, optional, nullable) — ID of the associated instance
  - `networkVirtualizationType` (string, optional, nullable) — Type of network virtualization
  - `vpcVni` (uint, optional, nullable) — VPC VNI identifier
  - `routeServers` (list of string, optional) — List of route server IP addresses
  - `deprecatedDenyPrefixes` (list of string, optional) — Deprecated list of denied IP prefixes
  - `dpuNetworkPingerType` (string, optional, nullable) — Type of network pinger to use
  - `denyPrefixes` (list of string, optional) — List of denied IP prefixes
  - `siteFabricPrefixes` (list of string, optional) — List of site fabric IP prefixes
  - `hostInterfaceId` (string, optional, nullable) — ID of the host interface
  - `minDpuFunctioningLinks` (uint, optional, nullable) — Minimum number of functioning DPU links required
  - `internetL3Vni` (uint, optional, nullable) — Layer 3 VNI used for internet access
  - `anycastSitePrefixes` (list of string, optional) — List of anycast site IP prefixes
  - `tenantHostAsn` (uint, optional, nullable) — Autonomous System Number for the tenant host
  - `siteGlobalVpcVni` (uint, optional, nullable) — Site-global VPC VNI identifier
- `lastRebooted` (datetime, required, nullable) — Last reboot timestamp
- `placementInRack` (object, required, nullable) — Physical placement of the DPU Machine within its Rack, when known
  - `slotNumber` (integer, optional, nullable) — Rack slot the Machine occupies
  - `trayIndex` (integer, optional, nullable) — Index of the Machine's tray within its slot

## Examples

**Response**

```json
{
  "id": "string",
  "infrastructureProviderId": "string",
  "siteId": "string",
  "hostMachineId": "string",
  "dpuAgentVersion": "string",
  "bmcInfo": {
    "ip": "10.217.133.5",
    "mac": "C8:4B:D6:7A:C9:8A",
    "version": "1",
    "firmwareRevision": "6.00"
  },
  "dmiData": {
    "boardName": "7Z23CTOLWB",
    "boardSerial": ".C1KS2CS002G.",
    "boardVersion": "06",
    "biosDate": "03/30/2023",
    "biosVersion": "U8E122J-1.51",
    "productSerial": "J1050ACR",
    "chassisSerial": "J1050ACR"
  },
  "interfaces": [
    {
      "id": "string",
      "machineId": "string",
      "segmentId": "string",
      "hostname": "string",
      "primaryInterface": true,
      "macAddress": "string",
      "address": [
        "string"
      ],
      "vendor": "string",
      "created": "2024-01-15T09:30:00Z",
      "lastDhcp": "2024-01-15T09:30:00Z",
      "isBmc": true
    }
  ],
  "softwareComponents": [
    {
      "name": "string",
      "version": "string",
      "url": "string"
    }
  ],
  "health": {
    "source": "aggregate-host-health",
    "observedAt": null,
    "successes": [
      {
        "id": "BgpDaemonEnabled",
        "target": null
      },
      {
        "id": "BgpStats",
        "target": null
      },
      {
        "id": "DhcpServer",
        "target": null
      },
      {
        "id": "DpuDiskUtilizationCheck",
        "target": null
      },
      {
        "id": "FanSpeed",
        "target": "System Board Fan1A"
      },
      {
        "id": "PowerSupply",
        "target": "PS1 Status"
      },
      {
        "id": "Temperature",
        "target": "CPU1 Temp"
      },
      {
        "id": "Temperature",
        "target": "System Board Exhaust Temp"
      },
      {
        "id": "Voltage",
        "target": "CPU1 1P8 PG"
      }
    ],
    "alerts": [
      {
        "id": "FailedValidationTest",
        "message": "Failed validation test:\nName:DcgmFullShort\nCommand:dcgmi\nArgs:diag -r 2",
        "target": "DcgmFullShort",
        "inAlertSince": null,
        "tenantMessage": null,
        "classifications": [
          "PreventAllocations"
        ]
      }
    ]
  },
  "labels": {},
  "state": "string",
  "dpuNetworkConfig": {
    "asn": 1,
    "vniDevice": "string",
    "managedHostConfigVersion": "string",
    "useAdminNetwork": true,
    "remoteId": "string",
    "vpcIsolationBehavior": "string",
    "statefulAclsEnabled": true,
    "enableDhcp": true,
    "isPrimaryDpu": true,
    "datacenterAsn": 1,
    "dhcpServers": [
      "string"
    ],
    "managedHostConfig": {
      "loopbackIp": "string",
      "quarantineState": {
        "mode": "string",
        "reason": "string"
      }
    },
    "adminInterface": {
      "functionType": "string",
      "vlanId": 1,
      "vni": 1,
      "gateway": "string",
      "ip": "string",
      "interfacePrefix": "string",
      "prefix": "string",
      "fqdn": "string",
      "vpcVni": 1,
      "isL2Segment": true,
      "virtualFunctionId": 1,
      "vpcPrefixes": [
        "string"
      ],
      "bootUrl": "string",
      "sviIp": "string",
      "tenantVrfLoopbackIp": "string",
      "vpcPeerPrefixes": [
        "string"
      ],
      "vpcPeerVnis": [
        1
      ],
      "mtu": 1,
      "networkSecurityGroup": {
        "id": "string",
        "version": "string",
        "source": "string",
        "rules": [
          {
            "rule": {
              "direction": "INGRESS",
              "protocol": "TCP",
              "action": "PERMIT",
              "sourcePrefix": "10.5.44.0/24",
              "destinationPrefix": "10.5.44.0/24",
              "name": "string",
              "sourcePortRange": "80-81",
              "destinationPortRange": "80-81",
              "priority": 1
            },
            "srcPrefixes": [
              "string"
            ],
            "dstPrefixes": [
              "string"
            ]
          }
        ]
      }
    },
    "tenantInterfaces": [
      {
        "functionType": "string",
        "vlanId": 1,
        "vni": 1,
        "gateway": "string",
        "ip": "string",
        "interfacePrefix": "string",
        "prefix": "string",
        "fqdn": "string",
        "vpcVni": 1,
        "isL2Segment": true,
        "virtualFunctionId": 1,
        "vpcPrefixes": [
          "string"
        ],
        "bootUrl": "string",
        "sviIp": "string",
        "tenantVrfLoopbackIp": "string",
        "vpcPeerPrefixes": [
          "string"
        ],
        "vpcPeerVnis": [
          1
        ],
        "mtu": 1,
        "networkSecurityGroup": {
          "id": "string",
          "version": "string",
          "source": "string",
          "rules": [
            {
              "rule": {
                "direction": "INGRESS",
                "protocol": "TCP",
                "action": "PERMIT",
                "sourcePrefix": "10.5.44.0/24",
                "destinationPrefix": "10.5.44.0/24",
                "name": "string",
                "sourcePortRange": "80-81",
                "destinationPortRange": "80-81",
                "priority": 1
              },
              "srcPrefixes": [
                "string"
              ],
              "dstPrefixes": [
                "string"
              ]
            }
          ]
        }
      }
    ],
    "instanceNetworkConfigVersion": "string",
    "instanceId": "string",
    "networkVirtualizationType": "string",
    "vpcVni": 1,
    "routeServers": [
      "string"
    ],
    "deprecatedDenyPrefixes": [
      "string"
    ],
    "dpuNetworkPingerType": "string",
    "denyPrefixes": [
      "string"
    ],
    "siteFabricPrefixes": [
      "string"
    ],
    "hostInterfaceId": "string",
    "minDpuFunctioningLinks": 1,
    "internetL3Vni": 1,
    "anycastSitePrefixes": [
      "string"
    ],
    "tenantHostAsn": 1,
    "siteGlobalVpcVni": 1
  },
  "lastRebooted": "2024-01-15T09:30:00Z",
  "placementInRack": {
    "slotNumber": 1,
    "trayIndex": 0
  }
}
```

**SDK Code**

```python
import requests

url = "https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId"

querystring = {"siteId":"siteId"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId?siteId=siteId';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId?siteId=siteId"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId?siteId=siteId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId?siteId=siteId")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId?siteId=siteId', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId?siteId=siteId");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/dpu/dpuMachineId?siteId=siteId")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```