APRSLive — API publique

Données APRS en temps réel (Suisse & Europe) issues du réseau APRS-IS. Version 1.0.0.
🧪 Swagger interactif 📖 ReDoc 📄 openapi.json 🗺️ Retour à la carte
Base URL : 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

GET /api/stations

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
    }
  }]
}

GET /api/station/{callsign}

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"

GET /api/station/{callsign}/track

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"

Données

GET /api/station/{callsign}/weather

Série météo (température, humidité, pression, vent, pluie…). hours (déf. 48).

GET /api/station/{callsign}/telemetry

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

Général

GET /api/search

Recherche d'indicatif par préfixe. q (requis) · limit.

curl "https://aprs.hb9v.ch/api/search?q=HB9&limit=10"

GET /api/stats

Statistiques globales (stations totales, actives 1 h, paquets…).

GET /api/replay

Positions d'une zone sur une fenêtre, pour l'animation temporelle. bbox · hours (déf. 6, max 72).

Messages lecture publique · envoi protégé

GET /api/messages

Messages récents, ou pour un indicatif via call.

curl "https://aprs.hb9v.ch/api/messages?call=HB9HPG&limit=20"

POST /api/messages

Émettre un message APRS — réservé (en-tête X-APRS-Token), car c'est une transmission radioamateur.

Temps réel

WebSocket /api/ws

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));
Bon usage : mettez les réponses en cache et évitez de marteler l'API ; préférez le WebSocket pour le temps réel. Données dérivées d'OpenStreetMap (ODbL) et du réseau APRS-IS.