Onboarding

GET /bmc/onboarding/available-positions

Get available rack positions

Get available rack positions that can accommodate a device with specified U-height

Query Parameters:
  • rack_id (string) – Rack ID

  • u_height (integer) – Device U-height

Status Codes:
Response JSON Object:
  • [].position (integer) – Starting U position

GET /bmc/onboarding/device-roles

List device roles

Retrieve all device roles from NetBox

Status Codes:
Response JSON Object:
  • [].id (integer)

  • [].name (string)

  • [].slug (string)

GET /bmc/onboarding/device-types

List device types by manufacturer

Retrieve all device types for a specific manufacturer with “Other” option appended. Supports filtering by search/model parameter.

Query Parameters:
  • manufacturer_id (integer) – Manufacturer ID

  • search (string) – Search by device type model (case-insensitive)

  • limit (integer) – Maximum number of results to return

Status Codes:
Response JSON Object:
  • [].id (integer)

  • [].model (string)

  • [].slug (string)

  • [].u_height (integer)

POST /bmc/onboarding/device-types

Create a new device type

Create a new device type in NetBox

Request JSON Object:
  • manufacturer_id (integer) – (required)

  • model (string) – (required)

  • slug (string) – Auto-generated if empty

  • u_height (integer) – (required)

Status Codes:
Response JSON Object:
  • id (integer)

  • model (string)

  • slug (string)

  • u_height (integer)

GET /bmc/onboarding/devices

List devices in site/location/rack

Retrieve all devices for a site with optional filtering, searching, and sorting. Site ID can be provided via site_id query parameter or defaults to NETBOX_SITE_NAME environment variable.

Query Parameters:
  • site_id (string) – Site ID (optional if NETBOX_SITE_NAME is set)

  • location_id (string) – Location ID (optional)

  • rack_id (string) – Rack ID (optional)

  • name (string) – Filter by exact device name (NetBox-side)

  • status (string) – Filter by status: active, offline, planned, staged, failed, inventory, decommissioning

  • role (string) – Filter by role slug (NetBox-side)

  • search (string) – Case-insensitive substring search across name, serial, manufacturer

  • manufacturer (string) – Filter by manufacturer name (case-insensitive)

  • provision_status (string) – Filter by provision_status custom field

  • health_status (string) – Filter by health_status custom field

  • sort_by (string) – Sort field: name, status, manufacturer, role, device_type, serial, rack_name, location_name, position, created, last_updated, provision_status, health_status

  • sort_order (string) – Sort direction: asc (default), desc

  • page (integer) – Page number (default: 1)

  • page_size (integer) – Items per page (default: 50, max: 100)

Status Codes:
Response JSON Object:
  • base_domain (string)

  • count (integer) – Total number of matching devices

  • devices[].asset_tag (string)

  • devices[].bios_version (string)

  • devices[].bmc_ip (string)

  • devices[].bmc_password (string)

  • devices[].bmc_type (string) – BMCType is the virtual media layout detected at registration time: “legacy” (X11) or “modern” (X12+). Used by the UI to conditionally restrict pages that are not supported on legacy nodes.

  • devices[].bmc_username (string)

  • devices[].bmc_version (string)

  • devices[].cpu_cores (string)

  • devices[].cpu_model (string)

  • devices[].cpu_threads (string)

  • devices[].created (string)

  • devices[].device_type (string)

  • devices[].face (string)

  • devices[].health_status (string)

  • devices[].id (string)

  • devices[].ip_addresses[].address (string) – e.g., “192.168.1.10/24”

  • devices[].ip_addresses[].description (string)

  • devices[].ip_addresses[].dns_name (string)

  • devices[].ip_addresses[].family (integer) – 4 for IPv4, 6 for IPv6

  • devices[].ip_addresses[].id (integer)

  • devices[].ip_addresses[].status (string) – active, reserved, deprecated, etc.

  • devices[].ip_addresses[].vlan_role (string) – bridge_role custom field of the assigned interface (e.g. management, storage, public, guest, oob)

  • devices[].is_pikvm_connected (boolean)

  • devices[].last_updated (string)

  • devices[].location_id (string)

  • devices[].location_name (string)

  • devices[].manufacturer (string)

  • devices[].name (string)

  • devices[].oob_ip (string)

  • devices[].position (number)

  • devices[].power_state (string)

  • devices[].provision_status (string) – Custom fields from hardware inventory

  • devices[].rack_id (string)

  • devices[].rack_name (string)

  • devices[].role (string)

  • devices[].serial (string)

  • devices[].site_id (string)

  • devices[].site_name (string)

  • devices[].status (string)

  • devices[].tenant_id (string)

  • devices[].tenant_name (string)

  • devices[].total_ram_gb (string)

  • page (integer) – Current page (1-indexed)

  • page_size (integer) – Items per page

  • total_pages (integer) – Total pages

GET /bmc/onboarding/hardware-info

Get complete hardware information for a device

Returns comprehensive device information including: device metadata, device type, manufacturer, location details, rack position, BMC details, CPU specs (model, cores, threads, chip maker), memory details (total RAM, type, speed), network interfaces (with MAC addresses and IP addresses), and hardware inventory items (storage disks, PCIe devices, add-in cards). Accepts either device_id or bmc_ip as query parameter.

Query Parameters:
  • device_id (integer) – NetBox Device ID (use either device_id or bmc_ip)

  • bmc_ip (string) – BMC IP address to lookup device (use either device_id or bmc_ip)

Status Codes:
GET /bmc/onboarding/interfaces

Get device network interfaces

Retrieves all network interfaces and their MAC addresses for a device

Query Parameters:
  • device_id (integer) – Device ID

Status Codes:
GET /bmc/onboarding/inventory-items

Get device inventory items

Retrieves all hardware inventory items (disks, PCIe devices, etc.) for a device

Query Parameters:
  • device_id (integer) – Device ID

Status Codes:
GET /bmc/onboarding/locations

List locations in site

Retrieve all locations for a specific site. Site ID can be provided via site_id query parameter or defaults to NETBOX_SITE_NAME environment variable.

Query Parameters:
  • site_id (string) – Site ID (optional if NETBOX_SITE_NAME is set)

Status Codes:
Response JSON Object:
  • [].depth (integer) – 0 = top-level, 1 = one level deep, etc.

  • [].id (string)

  • [].name (string)

  • [].parent_id (string) – empty string means this is a top-level location

  • [].slug (string)

POST /bmc/onboarding/locations

Create a new location

Create a new location in NetBox

Request JSON Object:
  • name (string) – (required)

  • site_id (string) – Optional: falls back to NETBOX_SITE_NAME

  • slug (string) – Auto-generated if empty

Status Codes:
Response JSON Object:
  • depth (integer) – 0 = top-level, 1 = one level deep, etc.

  • id (string)

  • name (string)

  • parent_id (string) – empty string means this is a top-level location

  • slug (string)

GET /bmc/onboarding/manufacturers

List supported manufacturers

Returns supported manufacturers from NetBox.

Status Codes:
Response JSON Object:
  • [].id (integer)

  • [].name (string)

  • [].slug (string)

POST /bmc/onboarding/manufacturers

Create a new manufacturer

Create a new manufacturer in NetBox

Request JSON Object:
  • name (string) – (required)

  • slug (string) – Auto-generated if empty

Status Codes:
Response JSON Object:
  • id (integer)

  • name (string)

  • slug (string)

GET /bmc/onboarding/nodes

List nodes by site and provision status with pagination

Get all nodes in a site filtered by provision_status (discovered, ready, provisioned, configured, all) with pagination support. Site ID can be provided via site_id query parameter or defaults to NETBOX_SITE_NAME environment variable.

Query Parameters:
  • site_id (string) – Site ID (optional if NETBOX_SITE_NAME is set)

  • provision_status (string) – Provision status filter (discovered, ready, provisioned, configured, all)

  • page (integer) – Page number (1-indexed)

  • page_size (integer) – Number of items per page

Status Codes:
GET /bmc/onboarding/racks

List racks in location

Retrieve all racks for a specific location

Query Parameters:
  • location_id (string) – Location ID

Status Codes:
Response JSON Object:
  • [].id (string)

  • [].location_id (string) – actual location this rack belongs to

  • [].name (string)

  • [].u_height (integer)

POST /bmc/onboarding/racks

Create a new rack

Create a new rack in NetBox. Site ID can be provided in request body or defaults to NETBOX_SITE_NAME environment variable.

Request JSON Object:
  • location_id (string) – Optional: location within site

  • name (string) – (required)

  • site_id (string) – Optional: falls back to NETBOX_SITE_NAME

  • u_height (integer) – (required)

Status Codes:
Response JSON Object:
  • id (string)

  • location_id (string) – actual location this rack belongs to

  • name (string)

  • u_height (integer)

POST /bmc/onboarding/register

Register device via onboarding wizard

Complete onboarding flow: collect inventory, create device, assign OOB IP, store credentials. Site ID can be provided in request body or defaults to NETBOX_SITE_NAME environment variable.

Request JSON Object:
  • bmc_ip (string) – BMC Details (required)

  • bmc_password (string) – (required)

  • bmc_username (string) – (required)

  • bmc_vendor (string) – For inventory collection (required)

  • device_name (string) – Optional overrides

  • device_role_id (integer) – (required)

  • device_type_id (integer) – (required)

  • is_pikvm_connected (boolean)

  • location_id (string) – (required)

  • manufacturer_id (integer) – (required)

  • rack_id (string) – (required)

  • rack_position (integer) – Starting U position (required)

  • site_id (string) – Optional: falls back to NETBOX_SITE_NAME

  • tenant_id (string) – CloudStack domain UUID; scopes host to a tenant at onboarding time

Status Codes:
GET /bmc/onboarding/site

Get site by ID or default site

Retrieve site details. Site ID can be provided as path parameter or defaults to NETBOX_SITE_NAME environment variable.

Status Codes:
Response JSON Object:
  • id (string)

  • name (string)

  • slug (string)

GET /bmc/onboarding/site/{id}

Get site by ID or default site

Retrieve site details. Site ID can be provided as path parameter or defaults to NETBOX_SITE_NAME environment variable.

Parameters:
  • id (string) – Site ID (optional if NETBOX_SITE_NAME is set)

Status Codes:
Response JSON Object:
  • id (string)

  • name (string)

  • slug (string)

GET /bmc/onboarding/site/{id}/vlans

Get all VLANs for a site grouped by role

Retrieves all VLANs for a site and groups them by role (management, storage, public, guest, bmc)

Parameters:
  • id (string) – Site ID

Status Codes:
GET /bmc/onboarding/site/{id}/vlans/{role}

Get VLANs for a specific role at a site

Retrieves VLANs for a specific role (management, storage, public, guest, bmc) at a site

Parameters:
  • id (string) – Site ID

  • role (string) – VLAN Role (management, storage, public, guest, bmc)

Status Codes: