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

# NVIDIA DSX Air SDK

A Python SDK for creating, running, and managing network simulations on
[NVIDIA DSX Air](https://dsx-air.nvidia.com).

## Installation

The package is available on [PyPI](https://pypi.org/project/nv-air-sdk/).

```bash
pip install nv-air-sdk
```

Or with [uv](https://docs.astral.sh/uv/):

```bash
uv add nv-air-sdk
```

Requires Python 3.10+.

## Authentication

The SDK supports three authentication methods. See the
[NVIDIA DSX Air authentication guide](https://docs.nvidia.com/networking-ethernet-software/nvidia-air-v2/Authentication/)
for details on obtaining credentials.

**API Key** — pass an NGC Scoped API Key (SAK) directly:

```python
from air_sdk import AirApi

api = AirApi.with_api_key(api_key='nvapi-xxxx')
```

**NGC Config** — reads the key from `~/.ngc/config`, created by
`ngc config set` (requires the [NGC CLI](https://org.ngc.nvidia.com/setup/installers/cli)):

```python
api = AirApi.with_ngc_config()
# or equivalently:
api = AirApi()
```

**Device Login** — opens a browser for interactive NGC authentication
(no pre-existing key required):

```python
api = AirApi.with_device_login(
    email='user@nvidia.com',
    org_num='my-org',
)
```

### Non-Standard Hostnames

All factory methods accept an `api_url` parameter that defaults to the
public NVIDIA DSX Air instance. If you are connecting to a different Air
deployment, browse to `/api` on the host
(e.g. `https://your-air-host.example.com/api`) and pass the API URL
from the servers dropdown to the SDK:

```python
api = AirApi.with_api_key(
    api_key='nvapi-xxxx',
    api_url='https://your-air-host.example.com',
)
```

## Quick Start

```python
from air_sdk import AirApi

api = AirApi.with_api_key(api_key='nvapi-xxxx')

# List simulations
for sim in api.simulations.list():
    print(sim.name, sim.state)

# Create a simulation
sim = api.simulations.create(name='my-sim')
```

## Examples

[Examples overview](/sdk/v1-5-0-examples)

## API Reference

[air\_sdk API reference](/sdk/v1-5-0-air-sdk)