API-Dokumentation
Fünf Endpoints unter /api/partner/v1. Authentifizierung per API Key, Antworten immer als JSON.
Die interaktive OpenAPI-Referenz ist aktuell noch nicht öffentlich verfügbar. Die folgende, manuell gepflegte Dokumentation ist bis dahin die verbindliche Referenz.
Authentifizierung
Jede Anfrage benötigt einen Authorization: Bearer-Header mit deinem API Key (Format Präfix.Geheimnis, z. B. ab12cd34ef56.dasGeheimeToken…). Den Key erhältst du im Dashboard - er wird dort nur einmal im Klartext angezeigt.
curl -H "Authorization: Bearer <key_prefix>.<secret>" \
"https://app.drohnenatlas.app/api/partner/v1/coverage"Fehlerantworten: 401 für fehlenden/unbekannten/abgelaufenen Key, 403 für widerrufene Keys, gesperrte Accounts oder fehlenden Scope, 429 oberhalb des Rate-Limits (60/Minute im Sandbox-Plan).
Schnellstart
Es gibt aktuell keine offiziellen DrohnenAtlas-SDKs - die Beispiele unten nutzen jeweils den Standard-HTTP-Client der Sprache.
curl -H "Authorization: Bearer <key_prefix>.<secret>" \
"https://app.drohnenatlas.app/api/partner/v1/rules?country=DE"const res = await fetch("https://app.drohnenatlas.app/api/partner/v1/rules?country=DE", {
headers: { Authorization: "Bearer <key_prefix>.<secret>" },
});
const { data } = await res.json();import requests
res = requests.get(
"https://app.drohnenatlas.app/api/partner/v1/rules",
params={"country": "DE"},
headers={"Authorization": "Bearer <key_prefix>.<secret>"},
)
data = res.json()["data"]$client = new \GuzzleHttp\Client();
$response = $client->get('https://app.drohnenatlas.app/api/partner/v1/rules', [
'query' => ['country' => 'DE'],
'headers' => ['Authorization' => 'Bearer <key_prefix>.<secret>'],
]);
$data = json_decode((string) $response->getBody(), true)['data'];GET /coverageScope: keinerZeigt, für welche Länder DrohnenAtlas-Zonendaten lizenzrechtlich freigegeben sind. Kein Standort-Parameter - liefert die vollständige Länderliste.
curl -H "Authorization: Bearer <key_prefix>.<secret>" \
"https://app.drohnenatlas.app/api/partner/v1/coverage"{
"data": [
{ "country": "DE", "coverage": "none", "allowed": false, "reason": "non_commercial_licence" },
{ "country": "CH", "coverage": "full", "allowed": true, "reason": "cleared" }
],
"meta": { "queried_at": "2026-08-08T12:00:00+00:00" }
}Deutschland (dipul) ist non-commercial-lizenziert und erscheint daher aktuell immer mit coverage: 'none' - das ist erwartetes Verhalten, kein Fehler.
GET /meta/healthScope: keinerServicestatus und API-Version. Erfordert weiterhin einen gültigen API Key - eignet sich damit auch als Key-Check.
curl -H "Authorization: Bearer <key_prefix>.<secret>" \
"https://app.drohnenatlas.app/api/partner/v1/meta/health"{
"status": "ok",
"version": "v1",
"queried_at": "2026-08-08T12:00:00+00:00"
}GET /rulesScope: rulesDeutsche Drohnenregeln als strukturiertes JSON (Betriebskategorien, Unterkategorien, Rechtsgrundlagen).
country– ISO-3166-Ländercode, aktuell nur DE unterstützt (Standard: DE)
curl -H "Authorization: Bearer <key_prefix>.<secret>" \
"https://app.drohnenatlas.app/api/partner/v1/rules?country=DE"{
"data": {
"locale": "de",
"version": "2026.1",
"last_reviewed": "2026-05-01T00:00:00+00:00",
"payload": { "operational_categories": { "open": { "subcategories": ["…"] } } },
"disclaimer": "Diese Auskunft ist eine unverbindliche Einschätzung und keine Rechtsberatung."
}
}GET /authoritiesScope: authoritiesZuständige Behörde für einen Standort oder ein Bundesland - Kontaktdaten für Genehmigungen und Rückfragen.
lat, lng– Koordinaten (bevorzugt, löst automatisch die zuständige Behörde auf)bundesland– Alternativ: Bundesland-Name, z. B. Bayernags– Alternativ: 8-stelliger Amtlicher Gemeindeschlüsseltype– Behördentyp - police, ordnungsamt, landesluftfahrt (Standard), naturschutz, baf_edr, property_owner, other
curl -H "Authorization: Bearer <key_prefix>.<secret>" \
"https://app.drohnenatlas.app/api/partner/v1/authorities?lat=52.5&lng=13.4"{
"data": {
"name": "Luftamt Bayern Nordbayern",
"authority_type": "landesluftfahrt",
"authority_type_label": "Luftfahrtbehörde",
"level": "Land",
"jurisdiction": { "bundesland": "Bayern", "landkreis": null, "jurisdiction_key": "09" },
"phone": "…",
"emails": ["luftamt@bayern.example"],
"website": "…",
"last_verified": "2026-01-15T00:00:00+00:00"
}
}Kein Treffer für den Standort → 404.
GET /verdictScope: verdictFlugfreigabe-Einschätzung für einen konkreten Standort und eine Drohnenklasse.
country– Pflichtfeld, ISO-3166-Ländercode (z. B. DE)lat, lng– Koordinaten (optional)drone_class– Optional: C0, C1, C2, C3 oder C4
curl -H "Authorization: Bearer <key_prefix>.<secret>" \
"https://app.drohnenatlas.app/api/partner/v1/verdict?country=DE&lat=52.5&lng=13.4&drone_class=C2"{
"data": {
"coverage": "none",
"country": "DE",
"reason": "non_commercial_licence",
"message": "Für dieses Land liegt derzeit keine lizenzrechtlich freigegebene Zonenquelle vor. Es ist kein Verdict verfügbar - das bedeutet NICHT, dass der Flug erlaubt ist.",
"rules_available_at": "/partner/v1/rules",
"disclaimer": "Diese Auskunft ist eine unverbindliche Einschätzung und keine Rechtsberatung."
}
}Der Sandbox-Plan enthält den Scope verdict nicht - eine Anfrage mit einem Sandbox-Key antwortet mit 403. Kontaktiere uns für Zugang zu diesem Endpoint. Für Deutschland liegt aktuell ohnehin keine lizenzrechtlich freigegebene Zonenquelle vor (siehe Beispielantwort) - ein Verdict ersetzt in keinem Fall die eigenständige Prüfung der verbindlichen Zonenkarte.