# TagoTiP | Lightweight IoT Telemetry Protocol | TagoIO

> TagoTiP is a lightweight, human-readable IoT telemetry protocol for UDP, TCP, HTTP, and MQTT. 4.3x smaller than HTTP/JSON. Free and open-source.

One Cloud. Every Transport for IoT.

TagoTiP is a lightweight, human-readable IoT telemetry protocol and end-point for **UDP**, **TCP**, **HTTP**, and **MQTT**.

## Built for constrained devices and real networks

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

### 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.

### 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.

### Transport-Agnostic

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

### 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.

## Less bytes. More signal.

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

### HTTP / JSON (487 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": "%"
}]
```

### TagoTiP (112 bytes)

```
PUSH|4deedd7bab8817ec|sensor-01|
[temperature:=32.5#C;humidity:=65#%]
```

## 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.

## 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]`

```
PUSH|4deedd7bab8817ec|sensor-01|[temperature:=32.5#C;status="online";alarm?=false;pos@=-35.28,149.12,600]
```

## Frequently Asked Questions

### What is TagoTiP?

TagoTiP is a lightweight, human-readable IoT telemetry protocol from TagoIO. It uses compact pipe-delimited frames that work over UDP, TCP, MQTT, and HTTP, so devices can send data with less bandwidth than HTTP/JSON.

### Which transports does TagoTiP support?

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

### How much smaller is TagoTiP than HTTP/JSON?

For the same sensor reading, a TagoTiP frame is about 112 bytes versus 487 bytes for HTTP/JSON, roughly 4.3 times smaller. That matters on LTE-M, NB-IoT, LoRa, and satellite links.

### Is TagoTiP free and open?

Yes. TagoTiP is free and open, available now on TagoIO with no SDK required. You form the frame and send it.

### Do I need an SDK to use TagoTiP?

No. Because the frames are plain text, you can build and send them directly from your firmware or any client. The protocol is human-readable by design.

## Start sending data in minutes

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

[llms.txt](https://tago.io/llms.txt)
