Get a list of Devices in an Account
# Get a List of Devices in an Account ### `GET /devices/{accountName}?lastSeenDeviceId={15-digit IMEI}` Returns an array of all devices in the specified account. Each device object includes information needed for managing firmware, including the device make and model, MDN, FOTA eligibility, distribution type, and firmware installed on the device. Each response includes a maximum of 1,000 devices. If the report contains more than 1,000 devices (indicated by the `hasMoreData` parameter in each response), send additional requests to retrieve the remaining devices. Use the `lastSeenDeviceId` parameter to return a different set of devices in each response. ## HTTP Request [GET https://thingspace.verizon.com/api/fota/v3/devices/{accountName}?lastSeenDeviceId={15-digit IMEI}](/docs/premium-apis/software-management/software-management-v3/api-endpoints/account-devices/getaccountdeviceinformation) ## Header Parameters The request header must contain a current ThingSpace authorization token, set the content to "JSON" and a current VZ-M2M-session token. |Parameter Name|Data Type|Description| |-----|-----|-----| | **Authorization** *(required)* | string | HTTP Authorization request header containing a valid Bearer token: `Authorization: Bearer {token}` | | **VZ-M2M-Token** *(required)* | string | A valid session token returned by a Connectivity Management `POST /session/login` request. | | **Content-Type** *(required)* | string | Must be `application/json`. | ## Request Parameters The `accountName` must be included in the path. |Parameter Name|Data Type|Description| |-----|-----|-----| | **accountName** *(required)* | string | The billing name of the account. An account name is numeric and must include any leading zeros. | | **lastSeenDeviceId** *(optional)* | string | Only return devices with an International Mobile Equipment Identifier (IMEI) larger than this value. Use `0` for the first request. If `hasMoreData=true` in the response, use the `lastSeenDeviceId` value from the response in the next request. | ## Request Body None. ## Success Response **Status 200** A success response contains the account name and an array of device objects. Example Response: **Note:** This example response has been shortened to only show three devices, although there were over 1,000 devices in the original response, as indicated by `hasMoreData = true`. ```json { "accountName": "0000123456-00001", "maxPageSize": 1000, "hasMoreData": true, "lastSeenDeviceId": "15-digit IMEI", "deviceList": [ { "deviceId": "15-digit device ID", "mdn": "10-digit MDN", "model": "NRF9160", "make": "NORDIC SEMICONDUCTOR ASA", "firmware": "fcb82d0b-2da7-4610-9107-49b0043983a8", "fotaEligible": false, "licenseAssigned": true, "status": "Active", "protocol": "LWM2M", "softwareList": [], "filesList": [], "createTime": "2020-06-15 05:29:25.352 +0000 UTC", "upgradeTime": "2021-07-30 06:10:01.33 +0000 UTC", "statusTime": "2021-09-24 07:10:19.396 +0000 UTC", "refreshTime": "2021-09-29 07:43:08.181 +0000 UTC", "lastConnectTime": "2021-09-29 07:43:08.181 +0000 UTC" }, { "deviceId": "15-digit device ID", "mdn": "10-digit MDN", "model": "NRF9160", "make": "NORDIC SEMICONDUCTOR ASA", "firmware": "e7f4d5d4-f607-43a6-b383-cfdb6d725c82", "fotaEligible": true, "licenseAssigned": true, "status": "Active", "protocol": "HTTP,LWM2M", "softwareList": [ { "name": "Sample OEM App", "version": "nRF9160-2021-07-15-1.0", "upgradeTime": "2021-07-15 16:47:52.43 +0000 UTC" }, { "name": "Sample OEM Application", "version": "nRF9160-2021-08-13-1.0", "upgradeTime": "2021-08-17 15:50:53.137 +0000 UTC" }, { "name": "Verizon MDM IoT Nordic nRF9160", "version": "1.0.0.11", "upgradeTime": "2021-07-15 14:28:08.138 +0000 UTC" } ], "filesList": [], "createTime": "2020-08-21 07:44:28.762 +0000 UTC", "upgradeTime": "2021-02-15 23:25:00.844 +0000 UTC", "statusTime": "2021-09-16 07:15:30.745 +0000 UTC", "refreshTime": "2021-09-29 07:43:08.276 +0000 UTC", "lastConnectTime": "2021-09-29 07:43:08.181 +0000 UTC" }, { "deviceId": "15-digit device ID", "mdn": "10-digit MDN", "model": "GM01Q", "make": "SEQUANS COMMUNICATIONS", "firmware": "SR1.2.0.0-10512", "fotaEligible": true, "licenseAssigned": false, "status": "Active", "protocol": "LWM2M", "softwareList": [], "filesList": [], "createTime": "2020-11-10 15:35:00.122 +0000 UTC", "upgradeTime": "1900-01-01 00:00:00 +0000 UTC", "statusTime": "2021-08-11 17:19:42.892 +0000 UTC", "refreshTime": "2021-09-29 07:43:08.27 +0000 UTC", "lastConnectTime": "2021-09-29 07:43:08.181 +0000 UTC" }, { "deviceId": "15-digit device ID", "mdn": "10-digit MDN", "model": "BG96", "make": "QUECTEL", "firmware": "BG96MAR04A04M1G", "fotaEligible": true, "licenseAssigned": true, "status": "Active", "protocol": "HTTP,LWM2M", "softwareList": [ { "name": "VZ_MDM_IOT", "version": "0.14", "upgradeTime": "2021-08-11 17:16:29.617 +0000 UTC" }, { "name": "configfile-Quectel_QUECTEL BG96_hello-world.txt", "version": "1.0", "upgradeTime": "2021-07-12 14:49:18.123 +0000 UTC" }, { "name": "configfile-Quectel_QUECTEL BG96_imei-mdn.txt", "version": "1.0", "upgradeTime": "2021-05-18 18:19:17.954 +0000 UTC" } ], "filesList": [], "createTime": "2020-09-16 23:26:39.542 +0000 UTC", "upgradeTime": "1900-01-01 00:00:00 +0000 UTC", "statusTime": "2021-09-08 07:56:50.251 +0000 UTC", "refreshTime": "2021-09-29 07:43:08.3 +0000 UTC", "lastConnectTime": "2021-09-29 07:43:08.181 +0000 UTC" }, { "deviceId": "15-digit device ID", "mdn": "10-digit MDN", "model": "BG96", "make": "QUECTEL", "firmware": "BG96MAR04A04M1G", "fotaEligible": true, "licenseAssigned": false, "status": "Active", "protocol": "HTTP,LWM2M", "softwareList": [ { "name": "VZ_MDM_IOT", "version": "0.14", "upgradeTime": "2021-08-11 17:16:29.603 +0000 UTC" } ], "filesList": [], "createTime": "2021-03-24 15:06:56.813 +0000 UTC", "upgradeTime": "1900-01-01 00:00:00 +0000 UTC", "statusTime": "2021-08-11 17:19:42.767 +0000 UTC", "refreshTime": "2021-09-29 07:43:08.218 +0000 UTC", "lastConnectTime": "2021-09-29 07:43:08.181 +0000 UTC" }, { "deviceId": "15-digit device ID", "mdn": "10-digit MDN", "model": "BG96", "make": "QUECTEL", "firmware": "BG96MAR02A10M1G", "fotaEligible": true, "licenseAssigned": false, "status": "Active", "protocol": "LWM2M", "softwareList": [], "filesList": [], "createTime": "0001-01-01 00:00:00 +0000 UTC", "upgradeTime": "1900-01-01 00:00:00 +0000 UTC", "statusTime": "2021-08-11 17:19:42.603 +0000 UTC", "refreshTime": "2021-09-29 07:43:08.158 +0000 UTC", "lastConnectTime": "2021-09-29 07:43:08.181 +0000 UTC" }, { "deviceId": "15-digit device ID", "mdn": "10-digit MDN", "model": "BG96-NA", "make": "QUECTEL", "firmware": "BG96NAMAR02A09M1G_O_BETA0423A", "fotaEligible": false, "licenseAssigned": true, "status": "Active", "protocol": "LWM2M", "softwareList": [], "filesList": [], "createTime": "0001-01-01 00:00:00 +0000 UTC", "upgradeTime": "1900-01-01 00:00:00 +0000 UTC", "statusTime": "2021-08-11 17:19:43.056 +0000 UTC", "refreshTime": "2021-09-29 07:43:08.314 +0000 UTC", "lastConnectTime": "2021-09-29 07:43:08.181 +0000 UTC" } ] } ``` `hasMoreData = true` means there is more than the first 1000. `lastSeenDeviceId` should be used for pagination. So, to get devices beyond the first 1000, run a follow up API request such as: `https://thingspace.verizon.com/api/fota/v3/devices/{accountName}?lastSeenDeviceId={last IMEI value in the list}` ## Success Parameters |Parameter Name|Data Type|Description| |-----|-----|-----| | **accountName** | string | The name (number) of the billing account. | | **hasMoreData** | boolean | Value ="**true**" if there are more devices to retrieve beyond the initial 1000. | | **lastSeenDeviceId** | string | If `hasMoreData="true"`, use this value for the next request. `0` if `hasMoreData=false`. | | **maxPageSize** | integer | Maximum number of results included in the response. | | **deviceList** | array | | | **deviceId** | string | The IMEI of the device. | | **mdn** | string | The MDN (phone number) of the device. | | **model** | string | FOTA model of the device. | | **make** | string | FOTA make of the device. | | **firmware** | string | The current firmware on the device. | | **fotaEligible** | boolean | Value ="**true**" if the device software can be upgraded over the air using the Software Management Services API. | | **licenseAssigned** | boolean | Value ="**true**" if a Monthly Recurring Charge (MRC) license has been assigned to this device. | | **status** | string | Indicates if a device is active or not. Valid values include: **active**, **suspended** or **pending**. | | **protocol** | string | The device management protocol supported by the device. Valid values include: **LWM2M**. | | **softwareList** | array | | | **name** | string | The name of the software. | | **version** | string | Software version. | | **upgradeTime** | string ($date-time) | The timestamp of the last upgrade. | | **filesList** | array | | | **name** | string | The name of the files. | | **createTime** | string ($date-time) | The date and time when the device record is created. | | **upgradeTime** | string ($date-time) | The date and time when the device firmware or software was last upgraded. | | **statusTime** | string ($date-time) | The system timestamp associated with this status. | | **refreshTime** | string ($date-time) | The date and time when the device is refreshed. | | **lastConnectionTime** | string ($date-time) or **N/A** | The last known time the device connected to the network. | ## Failure Responses All error messages are returned in this format: ```json { "errorCode": "error code string", "errorMessage": "error message string" } ``` Error codes and messages are listed on the [Error Messages page](https://thingspace.verizon.com/documentation/api-documentation.html#/http/software-management/guides/error-messages), along with explanations and suggestions for corrective actions.