---
title: "POST /device-discoveries"
method: POST
path: "/device-discoveries"
---

# POST /device-discoveries

`POST /device-discoveries`

This API is used to start device discovery for hub-connected and third-party-connected devices. The authentication material (install code) is delivered as a message to the controller instructing it to start the discovery.

## Request body

- object
  - `DiscoveryType` 'ZWAVE' | 'ZIGBEE' | 'CLOUD' | 'CUSTOM' | 'CONTROLLER_CAPABILITY_REDISCOVERY', required — The discovery type supporting the type of device to be discovered in the device discovery task request.
  - `CustomProtocolDetail` object — <p>Additional protocol-specific details required for device discovery, which vary based on the discovery type.</p> <note> <p>For a <code>DiscoveryType</code> of <code>CUSTOM</code>, the string-to-string map must have a key value of <code>Name</code> set to a non-empty-string.</p> </note>
  - `ControllerIdentifier` string — The id of the end-user's IoT hub.
  - `ConnectorAssociationIdentifier` string — ConnectorAssociationId is deprecated
  - `AccountAssociationId` string — The identifier of the cloud-to-cloud account association to use for discovery of third-party devices.
  - `AuthenticationMaterial` string, password — The authentication material required to start the local device discovery job request.
  - `AuthenticationMaterialType` 'ZWAVE_INSTALL_CODE' — The type of authentication material used for device discovery jobs.
  - `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.
  - `Tags` object — A set of key/value pairs that are used to manage the device discovery request.
  - `ConnectorDeviceIdList` ConnectorDeviceId[] — Used as a filter for PLA discoveries.
  - `Protocol` 'ZWAVE' | 'ZIGBEE' | 'CUSTOM' — <p>The protocol type for capability rediscovery (ZWAVE, ZIGBEE, or CUSTOM).</p> <note> <p>This parameter is only available when the discovery type is CONTROLLER_CAPABILITY_REDISCOVERY.</p> </note>
  - `EndDeviceIdentifier` string — <p>The unique id of the end device for capability rediscovery.</p> <note> <p>This parameter is only available when the discovery type is CONTROLLER_CAPABILITY_REDISCOVERY.</p> </note>

## Response `201`

Success

- StartDeviceDiscoveryResponse
  - `Id` string — The id of the device discovery job request.
  - `StartedAt` string, date-time — The timestamp value for the start time of the device discovery.

## 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)
