---
title: "Create Expected Machine"
method: POST
path: "/v2/org/{org}/nico/expected-machine"
tags: ["Expected Machine"]
---

# Create Expected Machine

`POST /v2/org/{org}/nico/expected-machine`

Create an Expected Machine to pre-register Machines expected to be discovered at a Site.

Org must have an Infrastructure Provider entity. User must have authorization role with `PROVIDER_ADMIN` suffix.

Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also create Expected Machines if they have an account with the Site's Infrastructure Provider.

## Request body

- ExpectedMachineCreateRequest — Request data to create a new ExpectedMachine. Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses.
  - `siteId` string, uuid, required — ID of the site the Expected Machine belongs to
  - `bmcMacAddress` string, required — MAC address of the Expected Machine's BMC (Baseboard Management Controller)
  - `defaultBmcUsername` string, nullable — Username for accessing the Expected Machine's BMC
  - `defaultBmcPassword` string, nullable — Password for accessing the Expected Machine's BMC
  - `chassisSerialNumber` string, required — Serial number of the Expected Machine's chassis
  - `fallbackDPUSerialNumbers` string[], nullable — Serial numbers of the Expected Machine's fallback DPUs (Data Processing Units)
  - `skuId` string, nullable — Optional ID of the SKU to associate with this Expected Machine
  - `rackId` string, nullable — Optional rack identifier for this component
  - `bmcIpAddress` string, nullable — Optional BMC IP address (IPv4 or IPv6). When set, pre-allocates a reserved IP for the BMC.
  - `name` string, nullable — Display name for this component
  - `manufacturer` string, nullable — Manufacturer of this component
  - `model` string, nullable — Model of this component
  - `description` string, nullable — Description of this component
  - `slotId` integer, nullable — Slot ID within the rack
  - `trayIdx` integer, nullable — Tray index within the rack
  - `hostId` integer, nullable — Host ID within the tray
  - `isDpfEnabled` boolean, nullable — When true, this host is eligible for DPF-based provisioning.
  - `labels` Labels
  - `hostLifecycleProfile` HostLifecycleProfile — Per-host lifecycle settings that affect how NICo progresses a host through its state machine.
    - `disableLockdown` boolean, nullable — When true, the server is not locked down during host lifecycle management. When omitted, the existing value is preserved.

## Response `201`

Created

- ExpectedMachine — An Expected Machine represents a physical machine that is expected to be discovered at a site, with hardware identifiers and metadata. Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses.
  - `id` string, uuid — Unique identifier for the Expected Machine
  - `siteId` string, uuid — ID of the site the Expected Machine belongs to
  - `bmcMacAddress` string — MAC address of the Expected Machine's BMC (Baseboard Management Controller)
  - `chassisSerialNumber` string — Serial number of the Expected Machine's chassis
  - `fallbackDPUSerialNumbers` string[] — Serial numbers of the Expected Machine's fallback DPUs (Data Processing Units)
  - `skuId` string, nullable — Optional ID of the SKU associated with this Expected Machine
  - `sku` Sku — A SKU (Stock Keeping Unit) represents a unique hardware configuration discovered at a site. SKUs are automatically derived from machine hardware characteristics and used to group similar machines.
    - `id` string — Unique identifier for the SKU
    - `siteId` string, uuid — ID of the Site this SKU belongs to
    - `deviceType` string, nullable — Optional device type identifier (e.g. "gpu", "cpu", "storage")
    - `associatedMachineIds` string[] — List of machine IDs associated with this SKU
    - `components` SkuComponents — Hardware components that make up a SKU
      - `cpus` SkuCpu[] — CPU components
        - `vendor` string — Vendor of the CPU
        - `model` string — Model of the CPU
        - `threadCount` integer — Number of threads for the CPU
        - `count` integer — Number of CPUs present
      - `gpus` SkuGpu[] — GPU components
        - `vendor` string — Vendor of the GPU
        - `model` string — Model of the GPU
        - `totalMemory` string — Total memory of the GPU (e.g. "80GB HBM3")
        - `count` integer — Number of GPUs present
      - `memory` SkuMemory[] — Memory components
        - `capacityMb` integer — Capacity in megabytes
        - `memoryType` string — Type of memory (e.g. "DDR4", "DDR5")
        - `count` integer — Number of memory modules present
      - `storage` SkuStorage[] — Storage components
        - `vendor` string — Vendor of the storage device
        - `model` string — Model of the storage device
        - `capacityMb` integer — Capacity in megabytes
        - `count` integer — Number of storage devices present
      - `chassis` SkuChassis — Chassis component in a SKU
        - `vendor` string — Vendor of the chassis
        - `model` string — Model of the chassis
      - `ethernetDevices` SkuEthernetDevice[] — Ethernet device components
        - `vendor` string — Vendor of the ethernet device
        - `model` string — Model of the ethernet device
        - `count` integer — Number of ethernet devices present
      - `infinibandDevices` SkuInfinibandDevice[] — Infiniband device components
        - `vendor` string — Vendor of the infiniband device
        - `model` string — Model of the infiniband device
        - `count` integer — Number of infiniband devices present
      - `tpm` SkuTpm[] — TPM components
        - `vendor` string — Vendor of the TPM
        - `version` string — Version of the TPM
    - `created` string, date-time — ISO 8601 datetime when the SKU was created
    - `updated` string, date-time — ISO 8601 datetime when the SKU was last updated
  - `machineId` string, nullable — Optional ID of the Machine associated with this Expected Machine
  - `machine` MachineSummary — Describes a subset of core attributes for a Machine
    - `id` string — Unique ID of Machine
    - `controllerMachineId` string — ID of the Machine at Site, now same as the primary ID
    - `controllerMachineType` string, nullable — Denotes architecture (x86 vs ARM) of the Machine
    - `hwSkuDeviceType` string, nullable — SKU derived device type of the machine, e.g. cpu, gpu, cache, storage, etc.
    - `vendor` string, nullable — Name of the vendor of the Machine
    - `productName` string, nullable — Product name of the Machine
    - `maintenanceMessage` string, nullable — If the Machine is in maintenance mode, this message will typically describe the reason and how long it is expected to be in maintenance
    - `status` 'Initializing' | 'Ready' | 'Reset' | 'Maintenance' | 'InUse' | 'Error' | 'Decommissioned' | 'Unknown' — Status values for Machine objects
  - `rackId` string, nullable — Optional rack identifier for this component
  - `bmcIpAddress` string, nullable — Optional BMC IP address (IPv4 or IPv6). When set, pre-allocates a reserved IP for the BMC.
  - `name` string, nullable — Display name for this component
  - `manufacturer` string, nullable — Manufacturer of this component
  - `model` string, nullable — Model of this component
  - `description` string, nullable — Description of this component
  - `slotId` integer, nullable — Slot ID within the rack
  - `trayIdx` integer, nullable — Tray index within the rack
  - `hostId` integer, nullable — Host ID within the tray
  - `isDpfEnabled` boolean — When true, this host is eligible for DPF-based provisioning.
  - `labels` Labels
  - `hostLifecycleProfile` HostLifecycleProfile — Per-host lifecycle settings that affect how NICo progresses a host through its state machine.
    - `disableLockdown` boolean, nullable — When true, the server is not locked down during host lifecycle management. When omitted, the existing value is preserved.
  - `created` string, date-time — ISO 8601 datetime when the Expected Machine was created
  - `updated` string, date-time — ISO 8601 datetime when the Expected Machine was last updated

## Other responses

- `400` — Error response when request data cannot be validated
- `403` — Error response when user is not authorized to call an endpoint or retrieve/modify objects

## Changes

- **2026-06-30** `1511d195147a` — 2 info
  - added the new optional request property `hostLifecycleProfile`
  - added the optional property `hostLifecycleProfile` to the response with the `201` status
- **2026-06-30** `a82da22d7956` — 2 info
  - added the new optional request property `isDpfEnabled`
  - added the optional property `isDpfEnabled` to the response with the `201` status
- **2026-06-12** `dd4898480788` — 2 warning
  - removed the request property `firmwareVersion`
  - removed the optional property `firmwareVersion` from the response with the `201` status
- **2026-06-11** `bc7cf73fe604` — 2 warning, 1 info
  - removed the optional property `sku/components/tpm/items/count` from the response with the `201` status
  - removed the optional property `sku/components/tpm/items/model` from the response with the `201` status
  - added the optional property `sku/components/tpm/items/version` to the response with the `201` status

[Change history](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/changes/v2/org/:org/nico/expected-machine/post.md)

---

[API](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api.md) · [All operations](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nvidia/nvidia-infra-controller-rest-api/revisions/dfd4cab0a8b1/schema)
