Platform · Device Connectivity

Connect any device without building a backend

Connections, credentials, provisioning, an API: every IoT product needs that layer first. Thinger.io ships it, so your devices come online over the protocols they already speak.

Start for Free

IOTMP·MQTT·HTTP·LoRaWAN·Sigfox·WebSockets

The problem

The backend you keep rebuilding

Every connected product needs the same invisible software first, and none of it is the product.

Build it yourselfMonths to build, years to maintain
HardwareConnectionsCredentialsProvisionAPILive data
ESP32 boardsMQTT
Linux gatewaysHTTP
Field sensorsLoRaWAN
Asset trackersSigfox

20 pieces before the product, and one more row per protocol

Ships with Thinger.ioReady when the account is
  • ESP32 boardsMQTT
  • Linux gatewaysHTTP
  • Field sensorsLoRaWAN
  • Asset trackersSigfox

Thinger.io

  • Connections kept alive
  • Per-device credentials
  • Auto-provisioning
  • REST API per resource
  • Live data streams

One console · one REST API

Same handling for one ESP32 on a bench or a fleet in the field

Open protocols

Speak your hardware's language

Use the protocol each device already speaks. They all end in the same device model, buckets, dashboards and API.

The native protocol

The Internet of Things Message Protocol, spoken by the open-source Thinger.io clients. One persistent connection exposes the device resources as a live REST API and carries remote OTA updates and a remote console to microcontrollers, plus remote SSH and web service proxies on Linux.

  • Device API
  • OTA
  • Remote console
  • Remote SSH

Read about IOTMP, the open protocol

Developer experience

A device online in a sketch you can read

A complete ESP32 sketch with a heater relay to switch and a temperature sensor to read.

esp32.inoThinger.io Arduino client
#include <ThingerESP32.h>
#include <DHT.h>
#include "arduino_secrets.h"
ThingerESP32 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);
DHT dht(4, DHT22);
void setup() {
pinMode(16, OUTPUT);
dht.begin();
thing.add_wifi(SSID, SSID_PASSWORD);
// switch the heater relay from anywhere
thing["heater"] << digitalPin(16);
// read the room temperature on demand
thing["temperature"] >> outputValue(dht.readTemperature());
}
void loop() {
thing.handle();
}

Same resources, over REST

POST/v3/users/you/devices/esp32/resources/heaterswitch it
GET/v3/users/you/devices/esp32/resources/temperatureread it

Device API

Every resource declared in setup() appears in the console’s API explorer and becomes a REST endpoint: POST to send it a value, GET to read it.

Always connected

thing.handle() in the loop keeps the connection alive and reconnects on its own when the network drops.

Remote OTA

ESP32, ESP8266 and the other supported boards take over-the-air firmware updates from the Thinger.io VS Code extension, wherever they are deployed.

Remote console

The same connection carries a remote console session to microcontrollers, and remote SSH to Linux devices, with nothing else exposed.

ONLINE FROM THE FIRST BOOT

From one to a fleet

Provisioning that scales with production

Connecting the first device is the demo. Connecting every unit that leaves the factory is the business.

  1. Step 01: Once, at design time

    Define the product once

    A product profile describes a device family: which properties it keeps, which time series buckets store its data, how payloads are parsed by scripts, and the unified API resources and dashboard template every unit inherits.

  2. Step 02: On first connection

    Units provision themselves

    With auto-provisioning, devices register on first connection and receive their own identity and access token, so nobody creates units by hand. LoRaWAN fleets provision from the network server, building each identifier from a configured prefix plus the device EUI.

  3. Step 03: At the customer

    Customers onboard themselves

    The claim feature moves onboarding to the end user: a link or QR code assigns devices and dashboards into their account through an automatically created workspace with predefined roles, while the developer keeps centralized control.

Good to know

Frequently asked questions

What engineers ask before connecting their first fleet.

Still have questions? Talk to us
Do I need to run my own MQTT broker?

No. The platform includes its own MQTT broker, so any MQTT client can connect directly with its device identifier and credentials. It listens on port 1883 and on port 8883 with SSL/TLS, supports MQTT 3.1 and 3.1.1, and is multi-tenant by design, so several organisations share a broker without overlapping topics. Topics can feed data buckets, dashboards and product pipelines directly.

What is IOTMP and when should I use it?

IOTMP, the Internet of Things Message Protocol, is the platform’s native protocol, implemented by the open-source clients for Arduino, Linux, ESP-IDF and Zephyr. A device connected over IOTMP keeps one persistent connection through which its resources are exposed as a live REST API, and gains features plain telemetry protocols do not carry: over-the-air firmware updates and a remote console on microcontrollers, plus remote SSH, socket proxies and remote web services on Linux devices. If your hardware can run one of the clients, IOTMP is the recommended way to connect it.

How are devices provisioned at scale?

Through products. A product profile describes a device family once: its properties, buckets, payload scripts, API resources and dashboard template. With auto-provisioning enabled, units register themselves on first connection and receive their own identity and access token instead of being created by hand. LoRaWAN fleets provision from the network server side, building each device identifier from a configured prefix plus the device EUI, and the claim feature lets end customers onboard their own units with a link or a QR code.

How is device communication secured?

Each device authenticates with its own identifier and credentials, and credentials are stored hashed with PBKDF2 SHA256 and a 32-byte salt, never in plain text. IOTMP clients connect over TLS, MQTT clients can use SSL/TLS on port 8883, and HTTP devices call their callback over HTTPS with an authorization token. The platform is operated under an ISO 27001 certified management system.

Can I integrate hardware that cannot run a Thinger.io client?

Yes. The HTTP device profile integrates anything able to send an HTTP POST with a JSON body: third-party hardware, cloud services or custom programs. Callbacks can store the data in buckets, trigger endpoints and update device properties, and the HTTP response can carry a property back to the device for bidirectional communication. Sigfox devices integrate the same way through callbacks or through the Sigfox plugin, and LoRaWAN devices connect through their network server with the corresponding plugin.

Connect your first device today

Create a free developer account and bring a device online with the protocols and libraries above, or read the documentation first. When the product grows, the platform grows with it.

ISO 27001 certified · Cloud plans from 49 EUR/month