https://aprs.hb9v.ch/api · Lecture publique (CORS ouvert).
Horodatages en secondes Unix UTC, vitesses en km/h, altitudes en m, températures en °C.
Pour le temps réel, utilisez le WebSocket wss://aprs.hb9v.ch/api/ws.
Stations d'une zone, au format GeoJSON. bbox=ouest,sud,est,nord · since (min, déf. 60) · types · limit.
curl "https://aprs.hb9v.ch/api/stations?bbox=6,46,8,47.5&since=60"
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {"type":"Point","coordinates":[6.14,46.19]},
"properties": {
"callsign":"HB9AR-10","station_type":"igate",
"symbol":"I&","speed":null,"course":null,
"comment":"...","has_weather":false,"last_heard":1780404000
}
}]
}
Détail d'une station (position, type, compteur, et bloc weather si c'est une station météo).
curl "https://aprs.hb9v.ch/api/station/HB9HPG-9"
Historique de positions pour tracer un trajet. hours (déf. 24, max 720).
curl "https://aprs.hb9v.ch/api/station/HB9HPG-9/track?hours=24"
Série météo (température, humidité, pression, vent, pluie…). hours (déf. 48).
Renvoie { "defs": {...}, "points": [...] }. defs contient les
noms (parm), unités (unit) et équations (eqns, par voie :
a,b,c → valeur = a·x²+b·x+c) issus des paquets PARM/UNIT/EQNS. hours (déf. 24).
Recherche d'indicatif par préfixe. q (requis) · limit.
curl "https://aprs.hb9v.ch/api/search?q=HB9&limit=10"
Statistiques globales (stations totales, actives 1 h, paquets…).
Positions d'une zone sur une fenêtre, pour l'animation temporelle. bbox · hours (déf. 6, max 72).
Messages récents, ou pour un indicatif via call.
curl "https://aprs.hb9v.ch/api/messages?call=HB9HPG&limit=20"
Émettre un message APRS — réservé (en-tête X-APRS-Token), car c'est une transmission radioamateur.
Envoyez {"bbox":[o,s,e,n]} pour recevoir les positions live de la zone, et {"client_id":"..."} pour recevoir vos alertes.
const ws = new WebSocket("wss://aprs.hb9v.ch/api/ws");
ws.onopen = () => ws.send(JSON.stringify({bbox:[6,46,8,47.5]}));
ws.onmessage = (e) => console.log(JSON.parse(e.data));