Why TagoTiP

Built for constrained
devices and real networks

Built for constrained devices

Everything you need to send telemetry data reliably — less overhead and more clarity.

Smaller Payloads

Smaller Payloads

Compact pipe-delimited framing uses a fraction of the bandwidth of HTTP/JSON — 112 bytes vs 487 bytes for the same data. Critical for LTE-M, NB-IoT, LoRa, and satellite links.

Compact pipe-delimited framing uses a fraction of the bandwidth of HTTP/JSON — 112 bytes vs 487 bytes for the same data. Critical for LTE-M, NB-IoT, LoRa, and satellite links.

Human-Readable

Human-Readable

Read, write, and debug frames directly in your terminal or serial monitor. No binary parsers, no external tools. If you can read a pipe-delimited string, you can debug TagoTiP.

Read, write, and debug frames directly in your terminal or serial monitor. No binary parsers, no external tools. If you can read a pipe-delimited string, you can debug TagoTiP.

Track your deployment in real-time, receive alerts, and view detailed performance metrics to optimize uptime.

Transport-Agnostic

Transport-Agnostic

The same frame format works over UDP, TCP, MQTT, and HTTP. Switch transports without changing your device firmware or data pipeline.

The same frame format works over UDP, TCP, MQTT, and HTTP. Switch transports without changing your device firmware or data pipeline.

Track your deployment in real-time, receive alerts, and view detailed performance metrics to optimize uptime.

Type-Safe by Design

Type-Safe by Design

Explicit assignment operators define numbers, strings, booleans, and GPS coordinates inline. No ambiguous JSON casting — the type is declared at the source.

Explicit assignment operators define numbers, strings, booleans, and GPS coordinates inline. No ambiguous JSON casting — the type is declared at the source.

Track your deployment in real-time, receive alerts, and view detailed performance metrics to optimize uptime.

Comparison

Less bytes. More signal.

See how TagoTiP compares with a standard HTTP/JSON request for IoT sensor readings.

HTTP / JSON487 bytes
POST /data HTTP/1.1
Host: api.tago.io
Content-Type: application/json
Authorization: ate2bd31...c0d0
[{
"variable": "temperature",
"value": 32.5,
"unit": "C"
}, {
"variable": "humidity",
"value": 65,
"unit": "%"
}]
4.3x smaller
TagoTiP112 bytes
PUSH|4deedd7bab8817ec|sensor-01|
[temperature:=32.5#C;humidity:=65#%]

Transports

One protocol. Every network.

TagoTiP's frame format is transport-agnostic. Send over any protocol your hardware or network supports.

UDP

Fire-and-forget telemetry. Minimal overhead for battery-powered, constrained hardware.

TCP

Ordered, guaranteed delivery for environments where data integrity is critical.

MQTT

Drop TagoTiP frames into your existing broker and TagoIO pipeline with zero changes.

HTTP

Zero infra changes. Switch the payload format, keep your existing REST stack.

Syntax

No ambiguity. No external schema.

Easy to use. Type operators are part of the frame itself.

:=
Numbers & Units
Integer or decimal. Attach any unit with #.
# variable := value #unit
temperature:=32.5#C
pressure:=1013.25#hPa
battery:=3.7#V
=
Strings
Any text value. Status labels, version strings, named locations.
# variable = "text value"
status="running"
firmware="v2.3.1"
location_name="warehouse-A"
?=
Booleans
Exact lowercase true or false — no other values accepted.
# variable ?= true | false
door_open?=true
alarm_active?=false
connected?=true
@=
GPS Coordinates
lat, lng — or lat, lng, alt. Altitude always in meters.
# variable @= lat,lng[,alt]
location@=-35.28,149.12,600
# combined with number in one frame
[location@=-35.28,149.12;speed:=72#kmh]
→ All 4 types in a single frame
PUSH|4deedd7bab8817ec|sensor-01|[temperature:=32.5#C;status="online";alarm?=false;pos@=-35.28,149.12,600]

Get Started

Start sending data in minutes

Start sending data in minutes

TagoTiP is free, open-source, and available now on TagoIO.
No SDKs required — just form the frame and send.