📘 DLBOTA API Dokumentation

Version: 1.0
Basis-URL: https://logs.dlbota.de/api/


🔹 GET /stats.php

Gibt eine statistische Zusammenfassung für ein Rufzeichen im JSON-Format zurück.

🔸 Request

URL:

/stats.php?callsign={RUFZEICHEN}

Methode: GET
Parameter:

Parameter Typ Pflichtfeld Beschreibung
callsign String Ja Amateurfunkrufzeichen (z. B. DG9VH)

🔸 Beispiel-Request

GET /api/stats.php?callsign=DG9VH

🔸 Beispiel-Antwort

{
  "callsign": "DG9VH",
  "activator": {
    "activations": 12,
    "bunkers": 8,
    "qsos": 456
  },
  "hunter": {
    "bunkers": 15,
    "qsos": 712
  }
}

🔸 Fehlerantworten

HTTP-Code Beschreibung
400 Fehlender oder leerer callsign
500 Interner Serverfehler (z. B. DB down)

Beispiel:

{
  "error": "Missing or empty callsign parameter."
}

🔸 Hinweise


🧪 Testmöglichkeit

Du kannst die API direkt im Browser oder mit Tools wie curl, Postman oder JavaScript fetch() testen:

curl "https://logs.dlbota.de/api/stats.php?callsign=DG9VH"

🔹 GET /bunkers.php

Gibt die Liste aller aktuell gültigen Bunker im JSON-Format zurück.

🔸 Request

URL:

/bunkers.php?apikey={APIKEY}

Methode: GET
Parameter:

Parameter Typ Pflichtfeld Beschreibung
apikey String Ja persönlicher API-Key, read-only ausreichend
limit int Nein Anzahl der gelieferten Datensätze - wenn leer = 9999 maximal
offset int Nein Offset, ab dem geliefert wird, wenn leer = 0

🔸 Beispiel-Request

GET /api/bunkers.php?apikey=thisisthesystemgeneratedapikey

🔸 Beispiel-Antwort

"status": "ok",
    "count": 861,
    "bunkers": [
        {
            "id": 01,
            "scheme": "DLBOTA",
            "DXCC": 230,
            "reference": "B\/DL-0001",
            "name": "Beispielbunker",
            "type": "Beipspieltyp",
            "latitude": "40.123456",
            "longitude": "13.987654",
            "locator": "JN39xy",
            "bundesland_key": "RP",
            "description": "https:\/\/www.invalid.com\/example.php",
            "valid_from": "1900-01-01",
            "valid_to": "9999-12-31",
            "no_dublette": null,
            "bundesland": "Rheinland-Pfalz",
            "first_qso": null
        },
        ...

🔸 Fehlerantworten

HTTP-Code Beschreibung
400 Fehlender oder leerer apikey
500 Interner Serverfehler (z. B. DB down)

Beispiel:

{
  "error":"Ung\u00fcltiger oder inaktiver API-Key"
}

🔸 Hinweise


🧪 Testmöglichkeit

Du kannst die API direkt im Browser oder mit Tools wie curl, Postman oder JavaScript fetch() testen:

curl "https://logs.dlbota.de/api/bunkers.php?apikey=deinApiKey"

🔹 GET /first_activations.php

Gibt die Liste aller aktuell aktivierten Bunker mit den jeweiligen Rufzeichen und deren erster Aktivierung im JSON-Format zurück.

🔸 Request

URL:

/first_activations.php?apikey={APIKEY}

Methode: GET
Parameter:

Parameter Typ Pflichtfeld Beschreibung
apikey String Ja persönlicher API-Key, read-only ausreichend
callsign String Nein Amateurfunkrufzeichen (z. B. DG9VH)

🔸 Beispiel-Request

GET /api/first_activations.php?apikey=thisisthesystemgeneratedapikey&callsign=DG9VH

🔸 Beispiel-Antwort

"status": "ok",
    "count": 2,
    "bunkers": [
        {
            "reference": "B\/DL-0056",
            "name": "Bunker oder Geschützstellung Beckingen",
            "mycall": "dg9vh",
            "first_qso": "2025-07-19",
            "qso_count": 28
        },
        {
            "reference": "B\/DL-0291",
            "name": "Regelbau 501",
            "mycall": "dg9vh",
            "first_qso": "2025-07-19",
            "qso_count": 28
        }
    ]

🔸 Fehlerantworten

HTTP-Code Beschreibung
400 Fehlender oder leerer apikey
500 Interner Serverfehler (z. B. DB down)

Beispiel:

{
  "error":"Ung\u00fcltiger oder inaktiver API-Key"
}

🔸 Hinweise


🧪 Testmöglichkeit

Du kannst die API direkt im Browser oder mit Tools wie curl, Postman oder JavaScript fetch() testen:

curl "https://logs.dlbota.de/api/first_activations.php?apikey=deinApiKey"