Put your users on the live map in three lines.
If your logger already knows the operator frequency, one loopback UDP datagram puts it on ham-radio.live in real time. Read-only, no keys, no dependency.
01Send one datagram on frequency change
One UTF-8 JSON object per update, ≤ 1 KB. Fire-and-forget — no reply to parse, no connection to keep open.
Treat 7373 as busy-tolerant: if the send fails, skip it silently and retry on the next frequency change. Never block your UI on it.
02Payload
Send whichever frequency unit you already have — no conversion on your side.
| Field | Type | Required | Meaning |
|---|---|---|---|
| freq_hz · freq_khz · freq_mhz | number | one of | Current frequency, in whichever unit is convenient. |
| mode | string | optional | Operating mode — FT8, USB, CW, … |
| source | string | optional | Your app name. Shown for display and debugging. |
| callsign | string | optional | Informational only — identity comes from the browser session. |
03Why there is no authentication
The trust boundary is the operator browser, not the packet.
The operator is already signed in to ham-radio.live in their browser, and that session carries their identity. The connector only reads 127.0.0.1:7373 and forwards frequency to that logged-in session. The port is bound to loopback, so nothing off the machine can reach it — a local sender can only ever affect its own operator session. No API key to issue, store, or leak.
04Already broadcasting? You may be done.
The connector also listens on the standard ports loggers already use. Emit on one of these and integration works today — nothing to build.
| If you already emit | Port | Status |
|---|---|---|
| WSJT-X / JTDX UDP protocol | 2237 | works today |
| N1MM+ / Logger32 RadioInfo XML | 12060 | works today |
| Log4OM RadioInfo XML | 12040 | works today |
| MacLogger DX Radio Report | 9932 | works today |
The reason to add the native feed anyway
When several apps listen on one broadcast port, they can contend for the same datagrams. Pushing to 127.0.0.1:7373 is a private channel — your feed reaches ham-radio.live without you or anyone else fighting over a shared port.