real-time metrics · plain HTTP · no sign-up

Metrics from anything,
with one HTTP request.

No account, no agent, no SDK. A device, a script or a cron job sends a value with GET /set - the chart of it is live in any browser.

shell
$ curl "/set/<your-key>?/temperature=21.5"
LIVE a real channel, drawn by the same viewer as /ch/<id>: drag it, zoom it with the wheel

How it works

1
Make a key

Any 16 random bytes in hex. It is the secret of your channel: whoever has it writes.

openssl rand -hex 16
2
Send values

One request, any number of items. Names are paths; numbers go to the history.

curl "/set/$KEY?/cpu=37&/mem=61"
3
Watch it live

The public ID is the first 16 bytes of SHA3-256 of the key. Share it: it only reads.

/ch/<id>

From your stack

If it can make an HTTP request, it can send metrics. Replace KEY with your key - or get one with the code filled in, in the playground.


            

The model, in six lines

⚿Key writes, ID reads

The channel is made by its key on the first write. The ID is derived from the key, so a shared link can never write.

⌥Items are paths

/, /room1/temperature, … <path>/_name is the title of an item.

∿History is built in

Every number is kept with its time in milliseconds; kept for 14 days, the chart goes from 5 minutes to 2 weeks.

⇄Any HTTP client

GET with a query or POST with a form. curl, wget, Python, Node, ESP32, PowerShell, a PLC.

◷Real time

A value is on the chart in about a second; the page keeps asking, no reload.

≤Limits

A name up to 64 bytes, a value up to 10 KB, 10 writes a second from one address.

The API at a glance

GET|POST/set/<key>?<item>=<value>write items: the query or a form
GET/get/<id>the current values of a channel (JSON)
GET/history/<id>/<item>?dt=<ms>an hour of the history of an item
GET/view_url_by_api_key/<key>the URL of the page of the channel of a key
PAGE/ch/<id>the live page of a channel
The full reference →

Good for

Send your first value in the next minute.