---
title: "POST /managed-things"
method: POST
path: "/managed-things"
---

# POST /managed-things

`POST /managed-things`

Creates a managed thing. A managed thing contains the device identifier, protocol supported, and capabilities of the device in a data model format defined by Managed integrations.

## Request body

- object
  - `Role` 'CONTROLLER' | 'DEVICE', required — The type of device used. This will be the hub controller, cloud device, or AWS IoT device.
  - `Owner` string, password — Owner of the device, usually an indication of whom the device belongs to. This value should not contain personal identifiable information.
  - `CredentialLockerId` string — The identifier of the credential for the managed thing.
  - `AuthenticationMaterial` string, password, required — The authentication material defining the device connectivity setup requests. The authorization materials used are the device bar code.
  - `AuthenticationMaterialType` 'CUSTOM_PROTOCOL_QR_BAR_CODE' | 'WIFI_SETUP_QR_BAR_CODE' | 'ZWAVE_QR_BAR_CODE' | 'ZIGBEE_QR_BAR_CODE' | 'DISCOVERED_DEVICE' | 'PRE_ONBOARDED_CLOUD', required — The type of authentication material used for device connectivity setup requests.
  - `WiFiSimpleSetupConfiguration` object — The Wi-Fi Simple Setup configuration for the managed thing, which defines provisioning capabilities and timeout settings.
    - `EnableAsProvisioner` boolean — Indicates whether the device can act as a provisioner in Wi-Fi Simple Setup, allowing it to configure other devices.
    - `EnableAsProvisionee` boolean — Indicates whether the device can act as a provisionee in Wi-Fi Simple Setup, allowing it to be configured by other devices.
    - `TimeoutInMinutes` integer — The timeout duration in minutes for Wi-Fi Simple Setup. Valid range is 5 to 15 minutes.
  - `SerialNumber` string, password — The serial number of the device.
  - `Brand` string, password — The brand of the device.
  - `Model` string, password — The model of the device.
  - `Name` string — The name of the managed thing representing the physical device.
  - `CapabilityReport` object — Report of all capabilities supported by the device.
    - `version` string — The version of the capability report.
    - `nodeId` string — The numeric identifier of the node.
    - `endpoints` CapabilityReportEndpoint[] — The endpoints used in the capability report.
      - `id` string, required — The id of the endpoint used in the capability report.
      - `deviceTypes` DeviceType[], required — The type of device.
      - `capabilities` CapabilityReportCapability[], required — The capabilities used in the capability report.
        - `id` string, required — The id of the schema version.
        - `name` string, required — The name of the capability.
        - `version` string, required — The version of the capability.
        - `properties` unknown, required
        - `actions` ActionName[], required — The capability actions used in the capability report.
        - `events` EventName[], required — The capability events used in the capability report.
  - `CapabilitySchemas` CapabilitySchemaItem[] — The capability schemas that define the functionality and features supported by the managed thing, including device capabilities and their associated properties.
    - `Format` 'AWS' | 'ZCL' | 'CONNECTOR', required — The format of the capability schema, which defines how the schema is structured and interpreted.
    - `CapabilityId` string, required — The unique identifier of the capability defined in the schema.
    - `ExtrinsicId` string, required — The external identifier for the capability, used when referencing the capability outside of the AWS ecosystem.
    - `ExtrinsicVersion` integer, required — The version of the external capability definition, used to track compatibility with external systems.
    - `Schema` object, required — The actual schema definition that describes the capability's properties, actions, and events.
  - `Capabilities` string — The capabilities of the device such as light bulb.
  - `ClientToken` string — An idempotency token. If you retry a request that completed successfully initially using the same client token and parameters, then the retry attempt will succeed without performing any further actions.
  - `Classification` string, password — The classification of the managed thing such as light bulb or thermostat.
  - `Tags` object — A set of key/value pairs that are used to manage the managed thing.
  - `MetaData` object — <p>The metadata for the managed thing.</p> <note> <p>The <code>managedThing</code> <code>metadata</code> parameter is used for associating attributes with a <code>managedThing</code> that can be used for grouping over-the-air (OTA) tasks. Name value pairs in <code>metadata</code> can be used in the <code>OtaTargetQueryString</code> parameter for the <code>CreateOtaTask</code> API operation.</p> </note>

## Response `201`

Success

- CreateManagedThingResponse
  - `Id` string — The id of the managed thing.
  - `Arn` string — The Amazon Resource Name (ARN) of the managed thing.
  - `CreatedAt` string, date-time — The timestamp value of when the device creation request occurred.

## Other responses

- `480` — AccessDeniedException
- `481` — ValidationException
- `482` — InternalServerException
- `483` — UnauthorizedException
- `484` — ConflictException
- `485` — ServiceUnavailableException
- `486` — ResourceNotFoundException
- `487` — ThrottlingException

---

[API](https://skmtc.net/aws/apis/iot-managed-integrations.md) · [All operations](https://skmtc.net/aws/apis/iot-managed-integrations/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/iot-managed-integrations/versions/d043c13c812a/schema)
