Skip to main content
Technical Preview

Overview

One client-mode connector, TeltonikaRMS, for the Teltonika RMS API. RMS (Remote Management System) is Teltonika’s cloud service for managing fleets of its industrial routers, gateways and modems, the boxes that often connect a plant cell, a substation or a remote pump station to the network. Use the connector to bring fleet health into your Unified Namespace: list every gateway and its online state, signal and temperature, pull monitoring graphs and Data Collect values, track location and mobile data usage, and raise alerts. It can also act on the fleet: refresh metrics, reboot a device, run a CLI command, push configuration, queue a firmware update, run a saved task group and organise devices with tags. Topics are cloud-iot/teltonika-rms/<object>/<verb>; every reply goes to <topic>/response. Paths in the table are relative to /api, except GetApiInfo (/api/) and GetActionStatus (/status/channel/{channel}).

Authentication

Every authenticated event sends Authorization: {authorization}, so pass the whole header value: "Bearer <token>".
  • A Personal Access Token is the simple choice for one RMS account. Create it in RMS under account settings, Applications (RMS asks you to turn on two-factor authentication first) and tick only the scopes the connector needs, for example devices:read, device_actions:write, device_configurations:write, device_alerts:read and tags:write.
  • An OAuth 2.0 access token is for apps that act on behalf of many RMS users.
Keep it in a broker secret (suggested TELTONIKA_RMS_AUTHORIZATION) and map it in with GET SECRET. A missing, expired or wrong token returns 401 with {"success": false, "errors": [{"code": "UNAUTHORIZED"}]}; some endpoints return 403 when the token or user is not allowed to do that.

Basic Syntax

RMS is hosted by Teltonika, so BASE_ADDRESS is always https://rms.teltonika-networks.com.
The full template, with all 33 events, is TeltonikaRmsRestApi.lot in the REST API app.

MQTT examples

Request bodies go under body, so control fields like authorization, device_id and query are not sent to RMS. device_id is the numeric RMS id from ListDevices, not the serial number or IMEI. List online gateways: publish to cloud-iot/teltonika-rms/device/list:
Send "query": "" when you do not need filters. Read the last 6 hours of monitoring data: publish to cloud-iot/teltonika-rms/device-graph/get. type is dynamic (signal, temperature, traffic), io or gps, and the dates must be URL-encoded:
Refresh or reboot a device: publish to cloud-iot/teltonika-rms/device-action/execute:
RMS answers straight away with {"success": true, "meta": {"channel": "private-status.1...."}}. Publish that channel to cloud-iot/teltonika-rms/action-status/get as {"authorization": "...", "channel": "<channel>"} and repeat until each device’s last entry has "status": "completed". Use "action": "reboot" to restart the device. Run a command on a gateway: publish {"authorization": "...", "device_id": 46920, "body": {"command": "gsmctl -q"}} to cloud-iot/teltonika-rms/device-command/execute and poll the returned channel the same way. Tag a device: create a tag on cloud-iot/teltonika-rms/tag/create with "body": {"name": "porto-line-1", "company_id": 125, "color": "#4287f5"}, then assign it on cloud-iot/teltonika-rms/device-tags/assign:

Helper actions

Keep the token in a broker secret, poll fleet status every few minutes, and refresh metrics on demand:
Restrict who can publish to cloud-iot/teltonika-rms/# with a rule: its payloads carry the token, and events such as ExecuteDeviceAction, ExecuteDeviceCommand, SendConfiguration and SetUpdates can reboot, reconfigure or reflash devices in the field.

Notes

  • Errors come back on the response topic: 401 for a missing, expired or wrong token (or a resource that belongs to another company), 403 when the token or user is not allowed, 404 for an unknown device, alert, tag or channel, 422 for validation errors such as a missing start_date (the OpenAPI spec does not document rate limits, so keep polling coarse).
  • Long-running actions (reboot, backups, firmware, commands, configuration) return a status channel instead of the result. RMS also streams these statuses over Socket.IO; this template uses the HTTP polling endpoint only.
  • GetDeviceStatistics needs charts, and the graph, Data Collect, location history, data usage and online statistics events need start_date and end_date; RMS rejects the call with 422 otherwise.
  • API calls act on the same devices, companies and credits as the RMS web interface, so a token sees exactly what its user sees.
  • To talk to a single router on the local network instead of through RMS, use the device’s own RUTOS API; this template covers the RMS cloud API only.
Last modified on October 21, 2026