1. API-Key erzeugen

Nach der Registrierung im Kundenbereich unter API-Keys einen Key anlegen. Der Klartext-Wert wird genau einmal angezeigt – danach ist nur noch das Präfix sichtbar.

Jeder Key hat Scopes: geo:read für die Abfrage-Endpunkte, geo:bulk für Batch-Aufrufe, mcp:use für den MCP-Server.

2. Erste Anfrage

Der Key wird als Bearer-Token übergeben:

curl -H "Authorization: Bearer $GEO_API_KEY" \
  "https://geodata.bitfertig.de/api/v1/geocode?q=Neue%20Promenade%205,%2010178%20Berlin&limit=3"

Antwort (gekürzt):

{
  "query": "Neue Promenade 5, 10178 Berlin",
  "count": 1,
  "results": [
    {
      "id": "address:365710:5",
      "type": "address",
      "name": "Neue Promenade 5",
      "location": { "lat": 52.52297, "lon": 13.40171 },
      "address": {
        "street": "Neue Promenade",
        "house_number": "5",
        "postal_code": "10178",
        "city": "Berlin",
        "country": "DE"
      }
    }
  ]
}

Das Feld type nennt die Genauigkeit des Treffers: address ist die exakte Hausnummer, street die Straßenmitte und city die Ortsmitte. Wer eine Hausnummer mitschickt, bekommt die Originalkoordinate aus OpenStreetMap.

3. Kontingent im Blick behalten

Jede Antwort enthält Header zum aktuellen Stand:

HeaderBedeutung
X-Quota-LimitMonatskontingent des Tarifs
X-Quota-Remainingverbleibende Einheiten
X-RateLimit-Planerlaubte Anfragen pro Minute

Der aktuelle Stand ist außerdem über GET /api/v1/me und im Kundenbereich abrufbar.

4. Fehler richtig behandeln

StatusFehlercodeBedeutung
401unauthenticatedKey fehlt, ist widerrufen oder abgelaufen
402subscription_requiredKein aktives Abo – Tarif buchen oder Zahlung aktualisieren
403–Dem Key fehlt der benötigte Scope
422–Ungültige Parameter, Details unter errors
429rate_limit_exceededZu viele Anfragen pro Minute – erneut versuchen
429quota_exceededMonatskontingent erschöpft – Tarif wechseln oder warten

Client-Fehler (4xx) verbrauchen kein Kontingent.

Endpunkte auf einen Blick

  • GET/api/v1/geocode
  • GET/api/v1/reverse
  • POST/api/v1/geocode/batch
  • GET/api/v1/me
  • POST/mcp