Public Access
Subscription access is open to all pilots under the same terms. Every subscriber receives an identical telemetry stream over WebSocket. No per-user filtering is performed server-side.
Endpoint
ws://localhost:8080/public/ogn
Provide a valid JWT via Authorization: Bearer <token> or?token=<token>.
Reference client
const ws = new WebSocket('ws://localhost:8080/public/ogn');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(data);
};Schema (TelemetryEventV1)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "TelemetryEventV1",
"type": "object",
"additionalProperties": false,
"required": [
"v",
"ts",
"addr",
"lat",
"lon"
],
"properties": {
"v": {
"const": "telemetry_v1"
},
"ts": {
"type": "string",
"description": "ISO 8601 UTC timestamp"
},
"addr": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"alt_msl": {
"type": "number"
},
"gs_kmh": {
"type": "number"
},
"track_deg": {
"type": "number"
},
"vario_ms": {
"type": "number"
},
"aircraft_type": {
"enum": [
"glider",
"tow",
"helicopter",
"parachute",
"drop_plane",
"hang_glider",
"paraglider",
"powered",
"jet",
"balloon",
"uav",
"unknown"
]
},
"privacy": {
"type": "boolean"
},
"source": {
"const": "OGN"
},
"turn_rate_rot": {
"type": "number"
},
"receiver": {
"type": "string"
},
"signal_db": {
"type": "number"
},
"callsign": {
"type": "string"
},
"gps_accuracy": {
"type": "string"
}
}
}Example payload
{
"v": "telemetry_v1",
"ts": "2026-02-08T20:00:00Z",
"addr": "D-1234",
"lat": 46.9,
"lon": 7.4,
"alt_msl": 1250,
"gs_kmh": 120,
"track_deg": 90,
"vario_ms": 1.5,
"aircraft_type": "glider",
"source": "OGN"
}