---
title: "Lists devices"
method: GET
path: "/api/{projectId}/devices"
tags: ["Devices"]
---

# Lists devices

`GET /api/{projectId}/devices`

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/{projectId}/devices`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in cookie `jwt`
  - API key in header `x-jwt-token`
  - OAuth 2
    - Authorization code: `/v1/oauth/authorize`
    - Client credentials
    - Implicit: `/v1/oauth/authorize`
    - Password
    - Token URL: `/v1/oauth/token`
- TypeScript: <https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/docs/api/:projectId/devices/get.ts> (a function with typed inputs; its response is checked against the schema)

List all devices for this project. Devices get included here if they connect to the remote management API or if they have sent data to the ingestion API and had the `device_id` field set.

## Path parameters

- `projectId` integer, required

## Response `200`

OK

- ListDevicesResponse
  - `success` boolean, required: Whether the operation succeeded
  - `error` string: Optional error description (set if 'success' was false)
  - `devices` Device[], required
    - `id` integer, required
    - `deviceId` string, required: Unique identifier (such as MAC address) for a device
    - `created` string, date-time, required
    - `lastSeen` string, date-time, required: Last message that was received from the device (ignoring keep-alive)
    - `name` string, required
    - `deviceType` string, required
    - `sensors` object[], required
      - `name` string, required
      - `maxSampleLengthS` integer, required: Maximum supported sample length in seconds
      - `frequencies` number[], required: Supported frequencies for this sensor in Hz.
    - `remote_mgmt_connected` boolean, required: Whether the device is connected to the remote management interface. This property is deprecated, use `remoteMgmtMode` instead.
    - `remote_mgmt_host` string: The remote management host that the device is connected to
    - `supportsSnapshotStreaming` boolean, required
    - `remoteMgmtMode` 'disconnected' | 'ingestion' | 'inference', required: Replaces `remote_mgmt_connected`. Shows whether the device is connected to the remote management interface, and in which mode.
    - `inferenceInfo` object: If `remoteMgmtMode` is set to `inference` this object shows information about the model that's ran on device.
      - `projectId` integer, required
      - `projectOwner` string, required
      - `projectName` string, required
      - `deployedVersion` integer, required
      - `modelType` 'classification' | 'objectDetection' | 'constrainedObjectDetection'

---

[API](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api.md) - [All operations](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/revisions/e2a976d38427?raw)
