Digi Remote Manager at its core is primarily API driven:

  • The vast majority of the services provided by the system are accessible via the Remote Manager web service APIs.

  • Web service APIs accept and return JSON content.

  • It uses HTTP Basic Authentication. The username and password are the same as the username and password you use to sign-on to the Remote Manager UI or the application user you create.

Your devices are accessible from the Remote Manager web services APIs and also through the web interface avilable at https://remotemanager.digi.com/.

Device CCCS diagram
  1. Digi Remote Manager offers web service APIs.

  2. Remote Manager interface, third-party tools, and custom applications use the web service APIs to communicate with Remote Manager.

  3. These interfaces can be accessed from a consumer device: personal computer, mobile, etc.

Find Digi Remote Manager web service APIs documentation at https://doc-remotemanager.digi.com/api/.

You can experiment and use the Remote Manager web service APIs with:

API Explorer

The Remote Manager UI has a page called API Explorer.

API Explorer is a graphical tool to send API web requests and review the answer. From here you can:

  • Graphically explore the available APIs.

  • Test web services to list uploaded data, command requests to your devices, etc.

    It provides a set of examples, as well as the ability to type Remote Manager APIs and payloads in manually and enter parameters and select the HTTP method type.

  • Export examples to be used with third-party tools and programming languages.

This tool is available from System > API Explorer tab in https://remotemanager.digi.com.

API Explorer
For more information about the tool, see Remote Manager User Guide > API explorer.

Third-party API tools

You can use Remote Manager web service APIs from different tools, for example with curl command line tool.

To send a get_time data request to the device 00000000-00000000-00XXXXXX-XXXXXXXX you can use:

$ curl \
   -s \
   -X POST \
   -u 'username:password' \
   -H X-Pretty:true \
   -H Content-Type:application/xml \
   'https://remotemanager.digi.com/ws/sci' \
   -d '<sci_request version="1.0">
     <data_service>
       <targets>
         <device id="00000000-00000000-00XXXXXX-XXXXXXXX" />
       </targets>
      <requests>
        <device_request target_name="get_time"></device_request>
      </requests>
     </data_service>
   </sci_request>' | xmllint --format -

Where:

  • username is your account username.

  • password is your account password.

  • 00000000-00000000-00XXXXXX-XXXXXXXX is the device ID of your device.

The answer is similar to the following:

<?xml version="1.0"?>
<sci_reply version="1.0">
  <data_service>
    <device id="00000000-00000000-00XXXXXX-XXXXXXXX">
      <requests>
        <device_request target_name="get_time" status="0">Time: Wed Sep 13 07:58:17 2023
</device_request>
      </requests>
    </device>
  </data_service>
</sci_reply>
You can use the Export > cURL option in API Explorer with any example you select.

Access APIs from a programming language

You can use your preferred programming language to use Remote Manager web service APIs.

Here you have an example in Python to send a get_time data request to the device 00000000-00000000-00XXXXXX-XXXXXXXX:

get_time.py script
import getpass
import requests

host = "remotemanager.digi.com"
api = "https://%s/ws/sci" % host
device_id = "00000000-00000000-00XXXXXX-XXXXXXXX"

# Read user and password from the console.
# Replace these with your own code to read from a secure location or otherwise.
user = input("Username for %s: " % host)
password = getpass.getpass("Password for user %s at %s:" % (user, host))

# Retaining a session when doing multiple requests can speed up your requests
session = requests.Session()
session.auth = (user, password)

headers = {
    "X-Pretty": "true",
    "Content-Type": "application/xml"
}

data = """<sci_request version="1.0">
  <data_service>
    <targets>
      <device id="%s" />
    </targets>
   <requests>
     <device_request target_name="get_time"></device_request>
   </requests>
  </data_service>
</sci_request>""" % device_id

rsp = session.post(api, data=data, headers=headers)
rsp.raise_for_status()

print("Status code:", rsp.status_code)
print("Result text:", rsp.text)

Where 00000000-00000000-00XXXXXX-XXXXXXXX is the device ID of your device.

The result of the execution of this script in your development machine is similar to the following:

$ python3 get_time.py
Username for remotemanager.digi.com: username
Password for user username at remotemanager.digi.com:
Status code: 200
Result text: <sci_reply version="1.0"><data_service><device id="00000000-00000000-00XXXXXX-XXXXXXXX"><requests><device_request target_name="get_time" status="0">Time: Wed Sep 13 08:33:21 2023
</device_request></requests></device></data_service></sci_reply>
You can use the Export > Python option in API Explorer with any example you select.

Python library for Remote Manager web service APIs

Python client library for Digi Remote Manager web service APIs, python-devicecloud, is a library providing simple, intuitive access to Remote Manager for clients written in Python.

The library wraps Remote Manager REST API and hides the details of forming HTTP requests in order to gain access to device information, file data, streams, and other features of Remote Manager.

This library is available in PyPI and can be install with pip.

For more information and examples, see python-devicecloud API documentation.

See Web service APIs application examples for more information on available examples.

Web service APIs application examples

This example demonstrates the features available on the ConnectCore family of products and ConnectCore Cloud Services, allowing to remotely monitor and manage your device running the cccs-gs-demo.

The source code is located inside connectcore directory of the repository.

The web applications is built with the Django framework and can be run locally. It uses the Python library for Remote Manager web service APIs to communicate with Digi Remote Manager and manage the devices in the demo.

For more information on ConnectCore Cloud Services demo, see ConnectCore Cloud Services demo.