live

afu-service

API für deutsche Amateurfunk-Daten — Rufzeichen, DOKs, Bänder, MUF und Repeater.

Suche

Rufzeichen, DOK oder Sonder-DOK eingeben — der Typ wird automatisch erkannt.

Rufzeichen

GET /callsign/:callsign

Liefert Daten zu einem einzelnen Rufzeichen. Eingaben werden in Großbuchstaben normalisiert.

  • Cache-TTL 4 Wochen — danach automatischer Re-Fetch.
  • Quellen: BnetzA und QRZ.com (parallel abgefragt). Treffer im Feld sources.
  • Daten werden bevorzugt von BnetzA übernommen.
GET /callsign/DL1ABC
POST /callsigns neu

Batch-Abfrage einer Rufzeichen-Liste. Liefert 200 + Ergebnisse, wenn alles frisch im Cache ist; sonst 202 mit Job-ID, Header Location und Retry-After.

POST /callsigns
Content-Type: application/json

{ "callsigns": ["DL1ABC", "DK0SP"] }
GET /callsigns/job/:jobId neu

Status-Abruf für einen async gestarteten Batch-Job.

  • pending/running → Fortschritt (processed/total); Job bleibt erhalten.
  • completed/failed → Ergebnis bzw. Fehler; Job wird mit dem Abruf gelöscht.
  • Nicht abgeholte Jobs verfallen nach 1 Stunde.

DOKs

GET /dok/:dok

Liefert Daten zu einem regulären DOK oder Sonder-DOK.

  • Reguläre DOKs: Name, Vorsitz, Website, Distrikt und Region.
  • Sonder-DOKs: gruppiert nach Anlass, mit Gültigkeitszeitraum und Bezugs-DOK.

Bänder & MUF

GET /bands

Alle Amateurfunk-Bänder als JSON, inklusive Frequenzsegmente und Aktivitäten.

  • Pro Band: Name, Wellenlänge, Frequenzgrenzen, ITU-Region, Hinweise.
  • Segmente: Frequenzbereich, bevorzugte Modi, max. Bandbreite, Nutzung.
  • HTTP-Cache 120 s.
  • Visuelle Darstellung: Bänder-Übersicht

Aktuelle MUF-Daten (Maximum Usable Frequency) als JSON, ausgelesen aus dem JR055-Bild via OCR.

  • Bild und OCR-Ergebnis 5 Minuten gecacht — OCR läuft nur bei neuem Bild.
  • Visuelle Karte: MUF-Karte

Aktuelles JR055-MUF-Bild als PNG.

Repeater

Liste der bekannten Repeater. Optionale Query-Parameter zum Filtern.

  • mode — z. B. FM, DMR, C4FM, D-STAR
  • band — z. B. 2m, 70cm
  • source — z. B. repeatermap.de, fm-funknetz.de
  • qrgMin, qrgMax — Output-Frequenz in MHz
GET /repeaters?mode=FM&band=70cm&qrgMin=438&qrgMax=439
GET /repeaters/sync/repeatermap.de

Repeater-Daten von repeatermap.de synchronisieren.

GET /repeaters/sync/fm-funknetz.de

Repeater-Daten von fm-funknetz.de synchronisieren.

Prüfungstermine

Offizielle BNetzA-Amateurfunk-Prüfungstermine je Standort, aus der amtlichen PDF geparst.

  • Ein Eintrag je (standort, datum, tageszeit, prüfung) mit eigenem status (verfuegbar/ausgebucht) — pro Tag/Standort sind mehrere Einträge möglich.
  • tageszeit: Vormittags/Mittags/Nachmittags. pruefung: aufgelöste Prüfungsart; ohne Code „Alle Prüfungen“, Sonderfälle wie „Morseprüfung“.
  • Zusätzlich stand (Stand der PDF), pdf_url und legende (offizielle Erklärtexte).
  • Nur aktuelle Termine, sortiert nach Datum. HTTP-Cache 5 min. CORS für funkpate.de & learn.afu.tools.
GET /pruefungstermine

Auswertung aus dem Termin-Verlauf — u. a. Ø/Median-Zeit von „verfügbar“ bis „ausgebucht“ je Standort.

  • Pro Standort: beobachtete Slots, Anzahl ausgebuchter Übergänge, avgHoursToBooked, avgDaysToBooked, medianHoursToBooked.
  • Werte füllen sich über mehrere Sync-Läufe. HTTP-Cache 5 min.
GET /pruefungstermine/sync

Stößt den Import aus der PDF manuell an (läuft im Hintergrund; ansonsten automatisch alle 6 h). Antwortet mit 202.

Exports

GET /export/json/:type

Strukturierter JSON-Export der DOK-Daten.

  • dok — reguläre DOK-Liste
  • sdok — Sonder-DOK-Liste
GET /export/csv/:filename

CSV-Export. Verfügbare Dateien: dok, sdok — wöchentlich generiert.