---
title: "Create or update a device"
method: PUT
path: "/devices/{deviceId}"
---

# Create or update a device

`PUT /devices/{deviceId}`

Create a new device.

## Path parameters

- `deviceId` string, required

## Query parameters

- `api-version` string, required
- `expand` string

## Request body

- Device — The device definition.
  - `id` string — Unique ID of the device.
  - `etag` string — ETag used to prevent conflict in device updates.
  - `displayName` string — Display name of the device.
  - `template` string — The device template definition for the device.
  - `enabled` boolean — Whether the device connection to IoT Central has been enabled.
  - `provisioned` boolean — Whether resources have been allocated for the device.
  - `simulated` boolean — Whether the device is simulated.
  - `organizations` string[] — List of organization IDs that the device is a part of, only one organization is supported today, multiple organizations will be supported soon.
  - `type` string[] — The type of the device.
  - `deploymentManifest` DeploymentManifest — The deployment manifest used for edge devices.
    - `id` string — Unique ID of the deployment manifest.
    - `displayName` string — Display name of the deployment manifest.
    - `data` object, required — Content of the the deployment manifest.
    - `etag` string — Etag to prevent conflict when updating the deployment manifest.
    - `organizations` string[] — The organization that deployment manifest belongs to. If not present, the deployment manifest is root-level or personal. Only one organization is supported today, multiple organizations will be supported soon.

## Response `200`

Success

- Device — The device definition.
  - `id` string — Unique ID of the device.
  - `etag` string — ETag used to prevent conflict in device updates.
  - `displayName` string — Display name of the device.
  - `template` string — The device template definition for the device.
  - `enabled` boolean — Whether the device connection to IoT Central has been enabled.
  - `provisioned` boolean — Whether resources have been allocated for the device.
  - `simulated` boolean — Whether the device is simulated.
  - `organizations` string[] — List of organization IDs that the device is a part of, only one organization is supported today, multiple organizations will be supported soon.
  - `type` string[] — The type of the device.
  - `deploymentManifest` DeploymentManifest — The deployment manifest used for edge devices.
    - `id` string — Unique ID of the deployment manifest.
    - `displayName` string — Display name of the deployment manifest.
    - `data` object, required — Content of the the deployment manifest.
    - `etag` string — Etag to prevent conflict when updating the deployment manifest.
    - `organizations` string[] — The organization that deployment manifest belongs to. If not present, the deployment manifest is root-level or personal. Only one organization is supported today, multiple organizations will be supported soon.

## Other responses

- `default` — An error response received from the IoT Central Service.

---

[API](https://skmtc.net/azure/apis/iotcentral-iotcentral.md) · [All operations](https://skmtc.net/azure/apis/iotcentral-iotcentral/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/azure/iotcentral-iotcentral/versions/565d8813cbd3/schema)
