---
title: "GET /v1/projects/{projectOrProductUID}/devices/{deviceUID}"
method: GET
path: "/v1/projects/{projectOrProductUID}/devices/{deviceUID}"
tags: ["device"]
---

# GET /v1/projects/{projectOrProductUID}/devices/{deviceUID}

`GET /v1/projects/{projectOrProductUID}/devices/{deviceUID}`

Get Device

## Response `200`

Successful operation

- Device
  - `best_id` string — The best ID for the device, preference for the serial number over device UID
  - `best_location` Location, nullable
    - `country` string, required
    - `latitude` number, double, required
    - `longitude` number, double, required
    - `name` string, required
    - `timezone` string, required
    - `when` string, required
  - `cellular_usage` SimUsage[]
    - `iccid` string — ICCID of the SIM card
    - `last_updated` integer — Time this usage information was last updated
    - `lifetime_used` integer — Total number of bytes used by SIM
    - `limit` integer — Limit in bytes of the SIMs current data plan
    - `used` integer — Bytes used on the SIMs current data plan
  - `contact` Contact, nullable
    - `email` string
    - `name` string
    - `organization` string
    - `role` string
  - `dfu` DFUEnv, nullable
    - `card` DFUState, nullable
      - `began` integer — The time when the DFU began
      - `crc32` integer — Used for image verification
      - `errors` integer — The number of consecutive errors the DFU process has encountered
      - `file` string — Firmware filename
      - `length` integer — Length of firmware file
      - `md5` string — Used for image verification
      - `mode` 'idle' | 'error' | 'downloading' | 'sideloading' | 'ready' | 'ready-retry' | 'updating' | 'completed' — * "idle" - nothing downloading or downloaded * "error" - halted and in the error state * "downloading" - transferring data from cloud to module * "sideloading" - transferring data via request to module * "ready" - DFU data is ready/verified and waiting on external storage * "ready-retry" - DFU data is ready/verified and retrying * "updating" - currently updating * "completed" - DFU is done successfully
      - `read` integer — The amount the notecard has read of the image from notehub
      - `retry` integer — Value of _fw_retry environment var at time of DFU initialization
      - `status` string — Status message
      - `type` 'card' | 'user'
      - `updated` integer — Last updated timestamp
      - `version` string — Last known version, which is generally a JSON object contained within the firmware image
    - `user` DFUState, nullable
      - `began` integer — The time when the DFU began
      - `crc32` integer — Used for image verification
      - `errors` integer — The number of consecutive errors the DFU process has encountered
      - `file` string — Firmware filename
      - `length` integer — Length of firmware file
      - `md5` string — Used for image verification
      - `mode` 'idle' | 'error' | 'downloading' | 'sideloading' | 'ready' | 'ready-retry' | 'updating' | 'completed' — * "idle" - nothing downloading or downloaded * "error" - halted and in the error state * "downloading" - transferring data from cloud to module * "sideloading" - transferring data via request to module * "ready" - DFU data is ready/verified and waiting on external storage * "ready-retry" - DFU data is ready/verified and retrying * "updating" - currently updating * "completed" - DFU is done successfully
      - `read` integer — The amount the notecard has read of the image from notehub
      - `retry` integer — Value of _fw_retry environment var at time of DFU initialization
      - `status` string — Status message
      - `type` 'card' | 'user'
      - `updated` integer — Last updated timestamp
      - `version` string — Last known version, which is generally a JSON object contained within the firmware image
  - `disabled` boolean
  - `firmware_host` string
  - `firmware_notecard` string
  - `fleet_uids` string[], required
  - `gps_location` Location, nullable
    - `country` string, required
    - `latitude` number, double, required
    - `longitude` number, double, required
    - `name` string, required
    - `timezone` string, required
    - `when` string, required
  - `last_activity` string, date-time, nullable
  - `product_uid` string, required
  - `provisioned` string, date-time, required
  - `serial_number` string
  - `sku` string
  - `temperature` number, double, required
  - `tower_info` object, nullable
    - `cell_id` integer
    - `lac` integer
    - `mcc` integer
    - `mnc` integer
  - `tower_location` Location, nullable
    - `country` string, required
    - `latitude` number, double, required
    - `longitude` number, double, required
    - `name` string, required
    - `timezone` string, required
    - `when` string, required
  - `triangulated_location` Location, nullable
    - `country` string, required
    - `latitude` number, double, required
    - `longitude` number, double, required
    - `name` string, required
    - `timezone` string, required
    - `when` string, required
  - `uid` string, required
  - `voltage` number, double, required

## Other responses

- `default` — The response body in case of an API error.

---

[API](https://skmtc.net/notefile/apis/notehub-api.md) · [All operations](https://skmtc.net/notefile/apis/notehub-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/notefile/notehub-api/versions/9c5b2b63a991/schema)
