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

# Get inventory report

GET /v1/reports/inventory

Get inventory report in JSON or CSV format. Default response is JSON. For CSV download, set format=csv. For a signed CSV bundle (CSV plus a cosign-verifiable signature, packaged as a zip), set format=csv and signed=true.
Each node includes enrolledAt (original enrollment time, preserved across re-enrollment) and removedAt (soft-delete time for removed nodes, manual and auto-removed alike; absent for active nodes).

Reference: https://docs.nvidia.com/fleet-intel/api-explorer/reports/get-v-1-reports-inventory

## Request

### Query parameters

- `page` (integer, optional, default: 0) — Page number (0-indexed). Not used for CSV format
- `pageSize` (integer, optional, default: 10) — Page size. Not used for CSV format
- `format` (enum, optional, default: json) — Response format (json or csv)
  - Allowed values: `json`, `csv`
- `signed` (boolean, optional, default: false) — Sign the CSV with NVIDIA's signing key and return a zip containing the CSV plus a .sig.bundle (cosign-verifiable Sigstore bundle). Only valid with format=csv.
- `computeZoneIds` (list of string, optional) — Filter by computezone IDs. Empty means all computezones
- `nodeGroupIds` (list of string, optional) — Filter by nodegroup IDs. Empty means all nodegroups
- `tags` (list of string, optional) — Filter by tags. Empty means all tags
- `startTime` (string, optional) — Start time for filtering nodes active during period (RFC3339 format, e.g., 2024-01-01T00:00:00Z)
- `endTime` (string, optional) — End time for filtering nodes active during period (RFC3339 format, e.g., 2024-12-31T23:59:59Z)
- `sortBy` (enum, optional, default: hostname) — Field to sort by
  - Allowed values: `hostname`, `nodeUUID`, `nodegroup`, `computezone`, `gpuType`, `gpuCount`, `publicIP`, `privateIP`, `integrityCheck`, `geoLocation`
- `order` (enum, optional, default: desc) — Sort order (asc, desc)
  - Allowed values: `asc`, `desc`

## Response

### 200

JSON response (default). For CSV download, use format=csv query parameter. For signed CSV, use format=csv&signed=true (returns application/zip).

- `object or string`
  - models.InventoryReportResponse
    - `hasMore` (boolean, optional)
    - `nodes` (list of object, optional)
      - `agentVersion` (string, optional)
      - `computeZone` (string, optional)
      - `enrolledAt` (string, optional)
      - `firmwareCheck` (enum, optional)
        - Allowed values: `Passed`, `Failed`, `Unknown`
      - `geoLocation` (object, optional)
        - `city` (string, optional)
        - `country` (string, optional)
        - `latitude` (double, optional)
        - `longitude` (double, optional)
        - `region` (string, optional)
      - `gpuCount` (integer, optional)
      - `gpuDriverVersion` (string, optional)
      - `gpuFirmwareVersions` (list of object, optional)
        - `firmwareVersion` (string, optional)
        - `gpuIndex` (string, optional)
      - `gpuType` (string, optional)
      - `gpuUUIDs` (list of string, optional)
      - `hostname` (string, optional)
      - `integrityCheck` (enum, optional)
        - Allowed values: `Verified`, `Unverified`, `Degraded`, `Pending`, `Unsupported`, `Unknown`
      - `integrityCheckExtraInfo` (object, optional)
        - `errorDetails` (string, optional)
        - `gpuEvidencePresent` (boolean, optional)
        - `gpuResults` (map from string to object, optional)
          - `eat_nonce` (string, optional)
          - `exp` (integer, optional)
          - `hwmodel` (string, optional) — Hardware info
          - `iat` (integer, optional)
          - `iss` (string, optional) — Standard JWT claims
          - `jti` (string, optional)
          - `measres` (string, optional)
          - `nbf` (integer, optional)
          - `sub` (string, optional)
          - `ueid` (string, optional)
          - `x-nvidia-attestation-warning` (string, optional)
          - `x-nvidia-error-details` (list of object, optional)
            - `code` (integer, optional)
            - `description` (string, optional)
            - `fieldName` (string, optional)
            - `httpStatus` (string, optional)
            - `message` (string, optional)
          - `x-nvidia-gpu-arch-check` (boolean, optional) — NVIDIA attestation claims - GPU specific
          - `x-nvidia-gpu-attestation-report-cert-chain` (object, optional)
            - `x-nvidia-cert-expiration-date` (string, optional)
            - `x-nvidia-cert-ocsp-nonce-matches` (boolean, optional)
            - `x-nvidia-cert-ocsp-response-valid` (boolean, optional)
            - `x-nvidia-cert-ocsp-status` (string, optional)
            - `x-nvidia-cert-revocation-reason` (string, optional)
            - `x-nvidia-cert-status` (string, optional)
          - `x-nvidia-gpu-attestation-report-nonce-match` (boolean, optional)
          - `x-nvidia-gpu-attestation-report-parsed` (boolean, optional)
          - `x-nvidia-gpu-attestation-report-signature-verified` (boolean, optional)
          - `x-nvidia-gpu-vbios-rim-fetched` (boolean, optional)
          - `x-nvidia-gpu-vbios-rim-measurements-available` (boolean, optional)
          - `x-nvidia-gpu-vbios-version` (string, optional)
          - `x-nvidia-mismatch-measurement-records` (list of any, optional)
          - `x-nvidia-overall-att-result` (boolean, optional) — NVIDIA attestation claims - overall result (for overall JWT)
        - `nrasCallResult` (string, optional)
        - `overallAttestationResult` (boolean, optional)
      - `integrityCheckReason` (string, optional)
      - `kernelVersion` (string, optional)
      - `lastIntegrityCheckTS` (string, optional)
      - `nodeGroup` (string, optional)
      - `nodeUUID` (string, optional)
      - `privateIP` (string, optional)
      - `publicIP` (string, optional)
      - `removedAt` (string, optional)
      - `serialNumbers` (list of string, optional)
      - `systemUUID` (string, optional)
    - `page` (integer, optional)
    - `pageSize` (integer, optional)
    - `total` (integer, optional)

## Examples

**Response**

```json
{
  "hasMore": false,
  "nodes": [
    {
      "agentVersion": "1.2.3",
      "computeZone": "compute-zone-1",
      "enrolledAt": "2024-01-10T08:00:00Z",
      "firmwareCheck": "Passed",
      "geoLocation": {
        "city": "Baltimore",
        "country": "United States",
        "latitude": 39.0458,
        "longitude": -76.6413,
        "region": "us-east-1"
      },
      "gpuCount": 4,
      "gpuDriverVersion": "550.120",
      "gpuFirmwareVersions": [
        {
          "firmwareVersion": "90.17.A9.00.0B",
          "gpuIndex": "0"
        }
      ],
      "gpuType": "NVIDIA-T400-4GB",
      "gpuUUIDs": [
        "GPU-abc-123",
        "GPU-def-456"
      ],
      "hostname": "node-001",
      "integrityCheck": "Verified",
      "integrityCheckExtraInfo": {
        "errorDetails": "SDK error: code=13, message=nonce refresh failed",
        "gpuEvidencePresent": true,
        "gpuResults": {},
        "nrasCallResult": "NRAS attestation failed: GPU-0: NONCE_NOT_MATCHING",
        "overallAttestationResult": false
      },
      "integrityCheckReason": "Attestation verification unavailable: SDK error",
      "kernelVersion": "6.8.0-49-generic",
      "lastIntegrityCheckTS": "2024-01-15T10:30:00Z",
      "nodeGroup": "node-group-1",
      "nodeUUID": "node-123",
      "privateIP": "10.0.0.100",
      "publicIP": "203.0.113.100",
      "removedAt": "2024-01-20T12:00:00Z",
      "serialNumbers": [
        "SN123456789",
        "SN123456790"
      ],
      "systemUUID": "4c4c4544-004a-3410-804c-c7c04f313434"
    }
  ],
  "page": 0,
  "pageSize": 10,
  "total": 100
}
```

**SDK Code**

```python
import requests

url = "https://api.example.com/v1/reports/inventory"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.example.com/v1/reports/inventory';
const options = {method: 'GET'};

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://api.example.com/v1/reports/inventory"

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

	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://api.example.com/v1/reports/inventory")

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

request = Net::HTTP::Get.new(url)

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://api.example.com/v1/reports/inventory")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.example.com/v1/reports/inventory');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.example.com/v1/reports/inventory");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.example.com/v1/reports/inventory")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

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()
```