---
title: "GET /availableDevices"
method: GET
path: "/availableDevices"
tags: ["Available Devices"]
---

# GET /availableDevices

`GET /availableDevices`

This endpoint returns a list of all devices found by the bridges in the account that have not yet been added. Devices of a certain type will not be reported in the response if the user does not have permission to add them. Since adding specific device types requires calling a device-type-specific API, it is recommended to filter on the devices supported by the cameras, rather than retrieving "all" types.
It is important to note that after using the pageSize parameter, the "totalSize" in the response represents the total number of available devices, not the number of devices resulting from the query string.

## Query parameters

- `deviceType__in` string[], required
- `state__in` string[]
- `bridgeId__in` string[]
- `pageToken` string
- `pageSize` integer
- `include` string[]

## Response `200`

OK

- ApiPaginatedAvailableDeviceResponse — Used to wrap results for a paginated response, containing information on how to retrieve further pages.
  - `nextPageToken` string, nullable, required — Token to retrieve the next page. The value of this token is passed into the field pageToken. This value can be null if there is no next page.
  - `prevPageToken` string, nullable, required — Token to retrieve the previous page. The value of this token is passed into the field pageToken. This value can be null of there is no previous page.
  - `results` object[], required — The result set from a collection API call.
    - `deviceType` 'camera' | 'speaker' | 'display' | 'multiCamera', required
    - `guid` string, required
    - `state` 'addable' | 'notSupported' | 'inOtherAccount' | 'unknown', required — Indicates if and how a device can be added. *As there might be future reasons why devices cannot be added clients should be written in such a way that they can handle new values to be added. In case a client doesn't understand the state, it should handle it as it handles the "unknown" state, which should be to still show the device, but tell the user to contact support to help. add the device. The states: * `addable`: Camera can be added and should work. * `notSupported`: Indicates if the device can really be added, or if it is unsupported, due to for example an untested firmware version or unexpected responses from the device. Unsupported devices are reported to help users debug why they cannot add a device. The users should contact support if they wish to add the device to their account. * `inOtherAccount`: Indicates if the device has already been added to a different account, and it is thus not possible to add it to the current account. The user should contact support to resolve this issue. * `unknown`: Indicates the camera is in a state that means it is visible, but cannot be added due to some issue. This state cane be transient, so users should be told to try again a few minutes later. If it is still in this state, users should contact support to help resolve the issue.
    - `unknownCredentials` boolean, required — No working credentials are known for this camera, and thus the device will not work directly after adding. The user can either supply credentials while adding the device, change them after adding, or reset the device and thus its credentials.
    - `visibleByBridges` BridgeId4[], required
    - `make` string, nullable — The manufacturer or brand of the camera.
    - `model` string, nullable — The model of the camera.
    - `firmwareVersion` string, nullable
    - `ipAddress` string, nullable — The IP address that is used to communicate to the device.
    - `otherIpAddress` IpAddress2[] — Other known IP addresses of the device.
    - `visibleByBridgesDetailed` Bridge[]
      - `id` string — Unique ID of an EEN bridge.
      - `name` string — Name of the bridge.
  - `totalSize` integer, required — Size of the total result set.

## Other responses

- `400` — The supplied object is invalid. Error detail will contain the validation error.
- `401` — You are not authenticated. Please authenticate and try again.
- `500` — Something went wrong in the server. Please try again.

---

[API](https://skmtc.net/eagleeyenetworks/apis/devices.md) · [All operations](https://skmtc.net/eagleeyenetworks/apis/devices/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/eagleeyenetworks/devices/revisions/df57313de545/schema)
