---
title: "Find related devices (findByQuery)"
method: POST
path: "/api/devices"
tags: ["device-controller"]
---

# Find related devices (findByQuery)

`POST /api/devices`

Returns all devices that are related to the specific entity. The entity id, relation type, device types, depth of the search, and other query parameters defined using complex 'DeviceSearchQuery' object. See 'Model' tab of the Parameters for more info.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

## Request body

- DeviceSearchQuery — The device search query JSON
  - `parameters` RelationsSearchParameters
    - `rootId` string, uuid — Root entity id to start search from.
    - `rootType` 'TENANT' | 'CUSTOMER' | 'USER' | 'DASHBOARD' | 'ASSET' | 'DEVICE' | 'ALARM' | 'RULE_CHAIN' | 'RULE_NODE' | 'ENTITY_VIEW' | 'WIDGETS_BUNDLE' | 'WIDGET_TYPE' | 'TENANT_PROFILE' | 'DEVICE_PROFILE' | 'ASSET_PROFILE' | 'API_USAGE_STATE' | 'TB_RESOURCE' | 'OTA_PACKAGE' | 'EDGE' | 'RPC' | 'QUEUE' | 'NOTIFICATION_TARGET' | 'NOTIFICATION_TEMPLATE' | 'NOTIFICATION_REQUEST' | 'NOTIFICATION' | 'NOTIFICATION_RULE' | 'QUEUE_STATS' | 'OAUTH2_CLIENT' | 'DOMAIN' | 'MOBILE_APP' | 'MOBILE_APP_BUNDLE' | 'CALCULATED_FIELD' | 'JOB' | 'ADMIN_SETTINGS' | 'AI_MODEL' | 'API_KEY' — Type of the root entity.
    - `direction` 'FROM' | 'TO' — Type of the root entity.
    - `relationTypeGroup` 'COMMON' | 'DASHBOARD' | 'RULE_CHAIN' | 'RULE_NODE' | 'EDGE' | 'EDGE_AUTO_ASSIGN_RULE_CHAIN' — Type of the relation.
    - `maxLevel` integer — Maximum level of the search depth.
    - `fetchLastLevelOnly` boolean — Fetch entities that match the last level of search. Useful to find Devices that are strictly 'maxLevel' relations away from the root entity.
  - `relationType` string — Type of the relation between root entity and device (e.g. 'Contains' or 'Manages').
  - `deviceTypes` string[] — Array of device types to filter the related entities (e.g. 'Temperature Sensor', 'Smoke Sensor').

## Response `200`

OK

- Device[]
  - `id` DeviceId
    - `id` string, uuid, required — ID of the entity, time-based UUID v1
    - `entityType` 'DEVICE', required — string
  - `createdTime` integer — Timestamp of the device creation, in milliseconds
  - `tenantId` TenantId
    - `id` string, uuid, required — ID of the entity, time-based UUID v1
    - `entityType` 'TENANT', required — string
  - `customerId` CustomerId
    - `id` string, uuid, required — ID of the entity, time-based UUID v1
    - `entityType` 'CUSTOMER', required — string
  - `name` string, required — Unique Device Name in scope of Tenant
  - `type` string — Device Profile Name
  - `label` string — Label that may be used in widgets
  - `deviceProfileId` DeviceProfileId, required
    - `id` string, uuid, required — ID of the entity, time-based UUID v1
    - `entityType` 'DEVICE_PROFILE', required — string
  - `firmwareId` OtaPackageId
    - `id` string, uuid, required — ID of the entity, time-based UUID v1
    - `entityType` 'OTA_PACKAGE', required — string
  - `softwareId` OtaPackageId
    - `id` string, uuid, required — ID of the entity, time-based UUID v1
    - `entityType` 'OTA_PACKAGE', required — string
  - `version` integer
  - `additionalInfo` unknown
  - `deviceData` DeviceData
    - `configuration` DefaultDeviceConfiguration
      - `type` string, required
    - `transportConfiguration` union — Device transport configuration used to connect the device
      - CoapDeviceTransportConfiguration
        - `type` string, required
        - `powerMode` 'PSM' | 'DRX' | 'E_DRX'
        - `psmActivityTimer` integer
        - `edrxCycle` integer
        - `pagingTransmissionWindow` integer
      - DefaultDeviceTransportConfiguration
        - `type` string, required
      - Lwm2mDeviceTransportConfiguration
        - `type` string, required
        - `powerMode` 'PSM' | 'DRX' | 'E_DRX'
        - `psmActivityTimer` integer
        - `edrxCycle` integer
        - `pagingTransmissionWindow` integer
      - MqttDeviceTransportConfiguration
        - `type` string, required
      - SnmpDeviceTransportConfiguration
        - `type` string, required
        - `host` string
        - `port` integer
        - `protocolVersion` 'V1' | 'V2C' | 'V3'
        - `community` string
        - `username` string
        - `securityName` string
        - `contextName` string
        - `authenticationProtocol` 'SHA_1' | 'SHA_224' | 'SHA_256' | 'SHA_384' | 'SHA_512' | 'MD5'
        - `authenticationPassphrase` string
        - `privacyProtocol` 'DES' | 'AES_128' | 'AES_192' | 'AES_256'
        - `privacyPassphrase` string
        - `engineId` string

---

[API](https://skmtc.net/thingsboard/apis/thingsboard-rest-api.md) · [All operations](https://skmtc.net/thingsboard/apis/thingsboard-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/thingsboard/thingsboard-rest-api/revisions/40169ccdec5c/schema)
