> 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/fleet-intel/api-explorer/reports/get-v-1-reports-inventory

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: fleet-intelligence
  version: 1.0.0
paths:
  /v1/reports/inventory:
    get:
      operationId: getV1ReportsInventory
      summary: Get inventory report
      description: >-
        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).
      tags:
        - reports
      parameters:
        - name: page
          in: query
          description: Page number (Not used for CSV format)
          required: false
          schema:
            type: integer
            default: 0
        - name: pageSize
          in: query
          description: Page size (Not used for CSV format)
          required: false
          schema:
            type: integer
            default: 10
        - name: format
          in: query
          description: Response format (json or csv)
          required: false
          schema:
            $ref: '#/components/schemas/V1ReportsInventoryGetParametersFormat'
            default: json
        - name: signed
          in: query
          description: >-
            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.
          required: false
          schema:
            type: boolean
            default: false
        - name: computeZoneIds
          in: query
          description: Filter by computezone IDs. Empty means all computezones
          required: false
          schema:
            type: array
            items:
              type: string
        - name: nodeGroupIds
          in: query
          description: Filter by nodegroup IDs. Empty means all nodegroups
          required: false
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: Filter by tags. Empty means all tags
          required: false
          schema:
            type: array
            items:
              type: string
        - name: startTime
          in: query
          description: >-
            Start time for filtering nodes active during period (RFC3339 format,
            e.g., 2024-01-01T00:00:00Z)
          required: false
          schema:
            type: string
        - name: endTime
          in: query
          description: >-
            End time for filtering nodes active during period (RFC3339 format,
            e.g., 2024-12-31T23:59:59Z)
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          description: Field to sort by
          required: false
          schema:
            $ref: '#/components/schemas/V1ReportsInventoryGetParametersSortBy'
            default: hostname
        - name: order
          in: query
          description: Sort order (asc, desc)
          required: false
          schema:
            $ref: '#/components/schemas/V1ReportsInventoryGetParametersOrder'
            default: desc
      responses:
        '200':
          description: >-
            JSON response (default). For CSV download, use format=csv query
            parameter. For signed CSV, use format=csv&signed=true (returns
            application/zip).
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/reports_getV1ReportsInventory_Response_200
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ErrorResponse'
        '403':
          description: Forbidden - UAM authorization denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ErrorResponse'
        '499':
          description: Client Closed Request - request was canceled by the client
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.ErrorResponse'
components:
  schemas:
    V1ReportsInventoryGetParametersFormat:
      type: string
      enum:
        - json
        - csv
      default: json
      title: V1ReportsInventoryGetParametersFormat
    V1ReportsInventoryGetParametersSortBy:
      type: string
      enum:
        - hostname
        - nodeUUID
        - nodegroup
        - computezone
        - gpuType
        - gpuCount
        - publicIP
        - privateIP
        - integrityCheck
        - geoLocation
      default: hostname
      title: V1ReportsInventoryGetParametersSortBy
    V1ReportsInventoryGetParametersOrder:
      type: string
      enum:
        - asc
        - desc
      default: desc
      title: V1ReportsInventoryGetParametersOrder
    models.FirmwareCheck:
      type: string
      enum:
        - Passed
        - Failed
        - Unknown
      title: models.FirmwareCheck
    models.GeoLocation:
      type: object
      properties:
        city:
          type: string
        country:
          type: string
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
        region:
          type: string
      title: models.GeoLocation
    models.GPUFirmwareVersion:
      type: object
      properties:
        firmwareVersion:
          type: string
        gpuIndex:
          type: string
      title: models.GPUFirmwareVersion
    models.IntegrityCheck:
      type: string
      enum:
        - Verified
        - Unverified
        - Degraded
        - Pending
        - Unsupported
        - Unknown
      title: models.IntegrityCheck
    models.NRASErrorDetail:
      type: object
      properties:
        code:
          type: integer
        description:
          type: string
        fieldName:
          type: string
        httpStatus:
          type: string
        message:
          type: string
      title: models.NRASErrorDetail
    models.CertChainStatus:
      type: object
      properties:
        x-nvidia-cert-expiration-date:
          type: string
        x-nvidia-cert-ocsp-nonce-matches:
          type: boolean
        x-nvidia-cert-ocsp-response-valid:
          type: boolean
        x-nvidia-cert-ocsp-status:
          type: string
        x-nvidia-cert-revocation-reason:
          type: string
        x-nvidia-cert-status:
          type: string
      title: models.CertChainStatus
    models.JWTClaims:
      type: object
      properties:
        eat_nonce:
          type: string
        exp:
          type: integer
        hwmodel:
          type: string
          description: Hardware info
        iat:
          type: integer
        iss:
          type: string
          description: Standard JWT claims
        jti:
          type: string
        measres:
          type: string
        nbf:
          type: integer
        sub:
          type: string
        ueid:
          type: string
        x-nvidia-attestation-warning:
          type: string
        x-nvidia-error-details:
          type: array
          items:
            $ref: '#/components/schemas/models.NRASErrorDetail'
        x-nvidia-gpu-arch-check:
          type: boolean
          description: NVIDIA attestation claims - GPU specific
        x-nvidia-gpu-attestation-report-cert-chain:
          $ref: '#/components/schemas/models.CertChainStatus'
        x-nvidia-gpu-attestation-report-nonce-match:
          type: boolean
        x-nvidia-gpu-attestation-report-parsed:
          type: boolean
        x-nvidia-gpu-attestation-report-signature-verified:
          type: boolean
        x-nvidia-gpu-vbios-rim-fetched:
          type: boolean
        x-nvidia-gpu-vbios-rim-measurements-available:
          type: boolean
        x-nvidia-gpu-vbios-version:
          type: string
        x-nvidia-mismatch-measurement-records:
          type: array
          items:
            description: Any type
        x-nvidia-overall-att-result:
          type: boolean
          description: NVIDIA attestation claims - overall result (for overall JWT)
      title: models.JWTClaims
    models.IntegrityCheckExtraInfo:
      type: object
      properties:
        errorDetails:
          type: string
        gpuEvidencePresent:
          type: boolean
        gpuResults:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/models.JWTClaims'
        nrasCallResult:
          type: string
        overallAttestationResult:
          type: boolean
      title: models.IntegrityCheckExtraInfo
    models.InventoryNode:
      type: object
      properties:
        agentVersion:
          type: string
        computeZone:
          type: string
        enrolledAt:
          type: string
        firmwareCheck:
          $ref: '#/components/schemas/models.FirmwareCheck'
        geoLocation:
          $ref: '#/components/schemas/models.GeoLocation'
        gpuCount:
          type: integer
        gpuDriverVersion:
          type: string
        gpuFirmwareVersions:
          type: array
          items:
            $ref: '#/components/schemas/models.GPUFirmwareVersion'
        gpuType:
          type: string
        gpuUUIDs:
          type: array
          items:
            type: string
        hostname:
          type: string
        integrityCheck:
          $ref: '#/components/schemas/models.IntegrityCheck'
        integrityCheckExtraInfo:
          $ref: '#/components/schemas/models.IntegrityCheckExtraInfo'
        integrityCheckReason:
          type: string
        kernelVersion:
          type: string
        lastIntegrityCheckTS:
          type: string
        nodeGroup:
          type: string
        nodeUUID:
          type: string
        privateIP:
          type: string
        publicIP:
          type: string
        removedAt:
          type: string
        serialNumbers:
          type: array
          items:
            type: string
        systemUUID:
          type: string
      title: models.InventoryNode
    models.InventoryReportResponse:
      type: object
      properties:
        hasMore:
          type: boolean
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/models.InventoryNode'
        page:
          type: integer
        pageSize:
          type: integer
        total:
          type: integer
      title: models.InventoryReportResponse
    reports_getV1ReportsInventory_Response_200:
      oneOf:
        - $ref: '#/components/schemas/models.InventoryReportResponse'
        - type: string
      title: reports_getV1ReportsInventory_Response_200
    models.KASRequestStatus:
      type: object
      properties:
        requestId:
          type: string
          description: Request ID for tracing
        statusCode:
          type: string
          description: Status code from KAS
        statusDescription:
          type: string
          description: Status description from KAS
      description: >-
        RequestStatus contains KAS-specific error details

        This is added to reflect the field in OpenAPI docs for UI reference and
        not populated by our code

        If KAS returns an error, the request will not be forwarded to the
        backend
      title: models.KASRequestStatus
    models.ErrorResponse:
      type: object
      properties:
        details:
          type: string
          description: Detailed error information
        error:
          type: string
          description: Error message or type
        requestStatus:
          $ref: '#/components/schemas/models.KASRequestStatus'
      description: >-
        Standard error response returned by all API endpoints. For KAS API
        errors, requestStatus fields are populated.
      title: models.ErrorResponse

```

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