How To: Retrieve Device Inventory Data Including IMSI Using the Digi RM API

Introduction

Digi Remote Manager (DRM) provides a REST API that allows you to retrieve a comprehensive inventory of all enrolled Digi devices, including key network identifiers needed for fleet management and troubleshooting.

A common requirement is to retrieve the following fields for every device in a DRM account:

  • Device ID — the DRM system identifier for the device
  • IP address — both the local (LAN-side) and public (WAN-side) addresses
  • MAC address
  • IMSI — the International Mobile Subscriber Identity, a unique 15-digit identifier stored on the device's SIM
  • Additional network and status metadata — carrier, technology, signal, firmware version, and more

The IMSI field is not included in the standard device inventory response. Retrieving it requires a second API call to a different endpoint. This article explains which two endpoints to call and how to combine their results to produce a complete per-device inventory record.

Prerequisites

Before using the APIs described in this article, confirm the following:

  • You have an active Digi Remote Manager account with at least one cellular device enrolled.
  • You have valid DRM credentials (username and password, or a DRM API key) for HTTPS Basic Authentication.

Device Health Metrics and Firmware

IMSI data is only available for a device if it has reported a network interface record to DRM. Devices that have never reported this record will not appear in the network interfaces endpoint and will therefore have no IMSI available.

To ensure network interface records are reported:

  • Confirm that Device Health metrics are enabled on each device (Monitoring > Device Health > Enable device metric samples upload).
  • Ensure devices are running a current DAL OS firmware version. Older DAL OS versions may not report all network interface data. Note that DAL OS firmware and cellular modem firmware are separate — for IMSI availability, DAL OS version is the relevant dependency.

 

 

 

Note:  For detailed steps on enabling Device Health metrics and updating firmware, see the companion article: How to Retrieve Cellular Performance Metrics Using the Digi Remote Manager API.

Retrieve a Comprehensive Device Inventory

Building a complete device inventory — including IMSI — requires two API calls. The first retrieves core device metadata; the second retrieves SIM-level identifiers. Join the results on the device ID to produce a unified record per device.

Step 1 — Retrieve Core Device Records

Call the v1/devices endpoint to retrieve all enrolled devices and their associated metadata, including Device ID, IP addresses, MAC address, carrier, signal, and firmware information.

          GET https://remotemanager.digi.com/ws/v1/devices/inventory?size=1000

For large fleets, use the bulk variant to retrieve results as a CSV file, which is more efficient for programmatic processing:

          GET https://remotemanager.digi.com/ws/v1/devices/bulk?fields=id,name,mac,ip,public_ip,serial_number,type,firmware_version,         firmware_status,connection_status,carrier,network,signal_percent,      signal_strength,health_status,group,last_connect,last_update

Key fields returned per device:

Field

Description

id

DRM system-generated device identifier — use this as the join key to match IMSI records in Step 2

name

Friendly device name as configured in DRM

mac

Device MAC address

ip

Local (LAN-side) IP address of the device

public_ip

Public (WAN-side) IP address

serial_number

Physical device serial number

type

Device model — e.g., Digi TX64, Digi EX15

firmware_version

Currently installed DAL OS firmware version

firmware_status

Firmware currency status: up_to_date, update_available, or not_identified

connection_status

Current DRM connection state: connected or disconnected

carrier

Active primary cellular carrier name

carrier2

Active secondary cellular carrier (dual-SIM devices only)

network

Active cellular technology: 4g, 5g, lte, etc.

signal_percent

Primary cellular signal strength as a percentage (0–100) — current snapshot value

signal_strength

Primary cellular signal strength in dBm — current snapshot value

health_status

Device health state: normal, warning, error, or unknown

group

DRM group path the device is assigned to

geoposition

GPS coordinates (latitude/longitude), if the device reports location data

last_connect

Timestamp of the device's most recent connection to DRM

last_update

Timestamp of the most recent data update received from the device

metrics_uri

URI link to the full list of metric streams being reported by this device

 

Note:  The signal_strength and signal_percent fields reflect the device's current or last-reported snapshot value only. For historical time-series signal data, use the streams/history endpoint described in the companion article: How to Retrieve Cellular Performance Metrics Using the Digi Remote Manager API.

Note:  If your account contains more than 1000 devices, paginate through the results using the cursor and next_uri values returned in each response, or use the /bulk endpoint to retrieve all records in a single CSV export

Step 2 — Retrieve IMSI and SIM Metadata

The IMSI field is not part of the device record returned by v1/devices. It is stored on the network interface record associated with each device's SIM. Use the v1/network_interfaces endpoint to retrieve it.

          GET https://remotemanager.digi.com/ws/v1/network_interfaces/inventory?size=1000

For bulk/CSV output:

           GET https://remotemanager.digi.com/ws/v1/network_interfaces/bulk?fields=device_id,imsi,sim_id,interface_type,phone_number,active

Field

Description

device_id

DRM device identifier — use this to join with the id field from the v1/devices response in Step 1

imsi

International Mobile Subscriber Identity — a unique 15-digit identifier assigned to the SIM

sim_id

SIM card identifier — ICCID, MEID, or ESN depending on the cellular technology

interface_type

Cellular technology type: gsm, cdma, lte, or unspecified

phone_number

MSISDN (phone number) associated with the SIM, if reported by the device

active

Boolean — true indicates this was the active SIM interface on the device's last report to DRM

 

Important:  Not all devices create a network interface record in DRM. If a device does not appear in the v1/network_interfaces response, its IMSI is not available. This is typically resolved by enabling Device Health metrics on the device and ensuring it is running a current firmware version. See Prerequisites above.

Important:  A device with two SIM slots will have two network interface records in the response — one per SIM. Use the active field to identify which SIM was active on the device's most recent report.

 Step 3 — Join the Two Responses        

To produce a unified inventory record for each device, join the results from Step 1 and Step 2 using the matching device identifier fields:

          v1/devices response field:                           id
          v1/network_interfaces response field:  device_id

A complete joined record will contain all core device metadata from Step 1 — Device ID, IP addresses, MAC address, carrier, firmware version, and connection status — together with the IMSI, ICCID, and SIM metadata from Step 2.

Devices that have no matching entry in the v1/network_interfaces response should be flagged for review. In most cases, enabling Device Health metrics and reconnecting the device to DRM will resolve the missing record.

Exporting Device Inventory to CSV

The v1/devices and v1/network_interfaces endpoints each provide a /bulk variant that returns results directly as a CSV file rather than JSON. This is the most efficient way to export inventory data for use in a spreadsheet, database import, or reporting tool.

Export Core Device Records as CSV

Replace the /inventory path with /bulk and add a fields parameter to specify the columns you want. The response body is a CSV file you can save directly:

          GET https://remotemanager.digi.com/ws/v1/devices/bulk?fields=id,name,mac,ip,public_ip,serial_number,type,firmware_version,firmware_status,connection_status,carrier,network,signal_strength,health_status,group,last_connect,last_update

Using curl, save the output directly to a file:

          curl -u 'username:api_key' \ 'https://remotemanager.digi.com/ws/v1/devices/bulk?fields=id,name,mac,ip,public_ip,serial_number,firmware_version,carrier,network' \ -o devices.csv

Export IMSI and SIM Records as CSV

Use the /bulk variant of the network_interfaces endpoint in the same way:

          GET https://remotemanager.digi.com/ws/v1/network_interfaces/bulk?fields=device_id,imsi,sim_id,interface_type,phone_number,active

          curl -u 'username:api_key' \  'https://remotemanager.digi.com/ws/v1/network_interfaces/bulk?fields=device_id,imsi,sim_id,interface_type,active' \ -o network_interfaces.csv

Note:  The two CSV files can be joined on the id column (from devices.csv) and the device_id column (from network_interfaces.csv) using any spreadsheet application or scripting tool to produce a single unified inventory file per device. For a detailed walkthrough of the join process and handling edge cases such as dual-SIM devices, see the companion article: How to Export Digi Remote Manager API Data to CSV.

Common Issues

Working with Subaccounts

If your DRM account is organised with a parent account and one or more subaccounts, you can scope any API request — including calls to v1/devices/inventory and v1/network_interfaces — to a specific subaccount using standard HTTP request headers. This is the correct method for targeting subaccount data, and replaces any use of customer_id as a URL query parameter, which is not supported by these endpoints.

The actor Header — Scope a Request to a Single Subaccount

Add the actor header to any API request to direct it at a specific subaccount. The value is the customer_id of the target subaccount, which can be retrieved by calling GET /ws/v1/subaccounts/inventory. When actor is used on a GET request, only items belonging to that subaccount are returned.

Example — retrieve device inventory scoped to subaccount 74214:

          GET https://remotemanager.digi.com/ws/v1/devices/inventory
          Header: actor: 74214

Example — retrieve network interfaces (IMSI) scoped to subaccount 74214:

          GET https://remotemanager.digi.com/ws/v1/network_interfaces/inventory
          Header: actor: 74214

The account-filter Header — Retrieve Data Across All Subaccounts

Add the account-filter: all header to retrieve data from the parent account and all subaccounts in a single response. This is useful for building a complete fleet-wide inventory that spans all managed accounts.

Example — retrieve all devices across the parent account and all subaccounts:

          GET https://remotemanager.digi.com/ws/v1/devices/inventory
          Header: account-filter: all

The table below summarises the behaviour of each header combination when called by a parent account user:

Header

Value

Result

(none)

(none)

Returns data scoped to the authenticated user's own account only

actor

Subaccount customer_id — e.g., 74214

Returns data for the specified subaccount only

account-filter

all

Returns data across the parent account and all subaccounts

 

Note:  The actor and account-filter headers are used alongside your standard HTTP Basic Authentication credentials. No changes to the URL or query parameters are needed to scope requests to a subaccount. To find the customer_id values for your subaccounts, call GET https://remotemanager.digi.com/ws/v1/subaccounts/inventory.

Further Information

Last updated: Jul 21, 2026

Did you find this article helpful?