Zum Inhalt springen
DSGVO-konform. Gehostet in DE.
14 Tage kostenlos testen →

Geo-API

IP-Geolokation als eigene API: Land, Region, Stadt, PLZ, Koordinaten, Zeitzone, ASN, Netzbereich (CIDR), RIR und Provider — plus Kontinent/EU-Kennzeichen, Land-Metadaten (Vorwahl, Währung, Amts- und Verkehrssprachen), ein volles Zeitzonen-Objekt, Netzwerk-Signale (Hosting/Cloud inkl. Azure, VPN, Tor, Satellit, Anycast, iCloud Relay, Bogon), einen geschätzten Abuse-Score samt Risiko-Einstufung sowie geschätzter Genauigkeits-Radius und Konfidenz je Feld. Einzeln oder als Batch (bis 1.000 IPs/Anfrage). Aus einer EU-gehosteten, vendor-freien Datenbasis, mit lokalisierten Namen (DE/EN) und einem herunterladbaren .mmdb (IPv4) für die lokale Nutzung in GeoIP2-kompatiblen Tools.

# Schnellstart

API-Key mit dem Scope „geo“ unter Einstellungen → API-Keys erstellen. Authentifizierung per Query-Parameter ?key= (header-unabhängig, ideal für jede Umgebung).

Erster Geo-Lookup
Im Demo-Account ansehen →
$ curl "https://api.xictraq.com/api/geo?ip=46.5.1.1&key=xtraq_IHR_KEY"

{
  "ip": "46.5.1.1",
  "network": "46.5.1.0/24",
  "country_code": "DE",
  "country_name": "Deutschland",
  "is_eu": true,
  "calling_code": 49,
  "currency": { "code": "EUR", "symbol": "€" },
  "languages": ["de"],
  "continent": "Europa", "continent_code": "EU",
  "rir": "RIPE",
  "region": "Nordrhein-Westfalen", "region_code": "DE-NW",
  "city": "Köln", "postal_code": "50667",
  "latitude": 50.9379, "longitude": 6.835,
  "timezone": "Europe/Berlin",
  "time_zone": { "id": "Europe/Berlin", "utc_offset": "+02:00",
                 "utc_offset_seconds": 7200, "is_dst": true,
                 "current_time": "2026-06-05T14:23:11+02:00" },
  "accuracy_radius_km": 25,
  "confidence": { "country": 99, "region": 70, "city": 80 },
  "asn": 3209, "isp": "Vodafone", "isp_domain": "vodafone.de",
  "org_id": "ORG-VG1-RIPE", "org_type": "LIR", "registry_country": "DE",
  "allocation_date": "1999-08-20", "abuse_contact": "abuse@vodafone.de",
  "connection_type": "isp",
  "is_hosting": false, "is_datacenter": false, "cloud_provider": null,
  "is_anycast": false,
  "is_relay": false, "is_vpn": false, "is_tor": false,
  "is_satellite": false, "is_bogon": false,
  "abuse_score": 4, "risk": "niedrig",
  "quota": { "tier": "geo_api_pro", "used": 1241, "monthly_limit": 500000 }
}
Zum Testen sind ohne Add-on 1.000 Lookups/Monat inklusive. Hinweis: accuracy_radius_km, confidence und abuse_score/risk sind transparente Schätzwerte (keine garantierte Genauigkeit); die Flags is_vpn/is_tor/is_hosting/is_anycast usw. beruhen auf bekannten IP-Bereichen. timezone fällt für Länder mit nur einer Zeitzone auf die primäre Landeszone zurück.

# Endpoints

Batch-Lookup (bis 1.000 IPs)
Im Demo-Account ansehen →
$ curl -X POST "https://api.xictraq.com/api/geo/batch?key=xtraq_IHR_KEY" \
    -H "Content-Type: application/json" \
    -d '{"ips":["8.8.8.8","203.0.113.7"]}'

{
  "results": [
    { "ip": "8.8.8.8", "network": "8.8.8.0/24", "country_code": "US",
      "rir": "ARIN", "is_anycast": true, "cloud_provider": "Google Cloud",
      "abuse_score": 12, "risk": "niedrig", "...": "…" },
    { "ip": "203.0.113.7", "error": "invalid_ip" }
  ],
  "count": 2,
  "quota": { "tier": "geo_api_pro", "used": 1243, "monthly_limit": 500000 }
}

# Was eine Antwort liefert

Jeder Lookup gibt ein flaches JSON-Objekt zurück — vier Feldgruppen plus quota. Land-/Standort-Felder, Land-Metadaten, Netz-/Register-Felder und Netzwerk-/Risiko-Signale.

Standort & Zeitzone

country_code/country_name, is_eu, continent/continent_code, region/region_code, city, postal_code, latitude, longitude. timezone als IANA-Zone plus ein time_zone-Objekt mit id, utc_offset (z. B. +02:00), utc_offset_seconds, is_dst (Sommerzeit-Flag) und current_time (aktuelle Ortszeit als ISO-8601). Liefert die City-Ebene keine Zone, aber das Land hat nur eine, ergänzt timezone die primäre Landeszone; Mehrzeitzonen-Länder (US, Russland, …) bleiben bewusst null statt eine pauschale Zone zu erfinden.

Land-Metadaten

Je erkanntem Land calling_code (Telefon-Vorwahl als Ganzzahl, z. B. 49), currency als Objekt aus code und symbol (z. B. EUR / €) und languages als Array der Amts- und Verkehrssprachen im ISO-639-1-Format. Diese Felder leiten sich aus dem Ländercode ab und ersparen eine zweite Nachschlagetabelle.

Netz & RIR-Register

network ist der gematchte Netzbereich als IPv4-CIDR (z. B. 8.8.8.0/24), rir die zuständige Regional Internet Registry (RIPE, ARIN, APNIC, LACNIC, AFRINIC). asn, isp und isp_domain benennen den Netzbetreiber. Aus dem RIR-Register stammen zusätzlich org_id (Org-Handle zum Gruppieren aller Netze einer Firma), org_type (z. B. LIR oder Endkunde), registry_country (Land des Betreibers laut Register), allocation_date (Erstregistrierung der ASN — ein sehr junges Netz kann ein Risiko-Signal sein) und abuse_contact (Abuse-E-Mail des Betreibers für Missbrauchsmeldungen).

Netzwerk- & Risiko-Signale

Pro IP Flags für Hosting (is_hosting), Rechenzentrum (is_datacenter), VPN (is_vpn), Tor (is_tor), Satellit (is_satellite), Anycast/Resolver (is_anycast), iCloud Private Relay (is_relay) und Bogon (is_bogon), dazu cloud_provider (erkennt bekannte Cloud-ASNs wie AWS, Google Cloud, Azure; sonst null) und ein abgeleiteter connection_type (hosting, satellite, relay oder isp). Daraus wird ein abuse_score von 0 bis 100 errechnet — Tor (+40), VPN (+30), Hosting (+20) und Anycast ohne bekannten Public-Resolver (+10) summieren sich; ein Treffer in der Spamhaus-DROP-Liste hebt den Score auf mindestens 90. risk gruppiert den Score grob: niedrig (unter 20), erhöht (unter 50), hoch (ab 50). Das risk-Label wird unabhängig von lang immer deutsch zurückgegeben. Konnten die Reputationslagen nicht gelesen werden, liefert die API abuse_score und risk als null statt einer Bestnote. Alle Flags und der Score sind Schätzwerte auf Basis bekannter IP-Bereiche — keine garantierte Aussage.

Genauigkeit & Konfidenz (transparent)

Statt eine Punkt-Genauigkeit vorzutäuschen, liefert jede Antwort accuracy_radius_km (geschätzter Radius in km um die Koordinaten) und confidence je Feld (country, region, city als 0–100). Der Radius richtet sich nach der erreichten Granularität: stadtgenau aus einer Operator-/Geofeed-Quelle rund 25 km (iCloud-Relay-Standorte gröber, rund 80 km), aus der City-DB rund 50 km, nur regionsgenau 150 km, nur landesgenau 600 km. Beides sind offene Schätzwerte — keine zugesicherte Präzision. Kennt die offene Ortsdatenbank für einen Adressbereich nur einen Ersatzort (etwa den Sitz des Netzbetreibers, bei dem sich Zugänge aus dem ganzen Land sammeln), bleiben Stadt und Region leer und der Radius beträgt 600 km — lieber keine Angabe als eine falsche. Meldet der Netzbetreiber den Ort selbst per Geofeed, gilt seine Angabe.

Neutralisierte Abrufe
Der Schalter ?neutral=1 bzw. der Header X-Neutral: 1 wirkt auch auf die Geo-API. Er nimmt E-Mail-Adressen aus der Antwort — in dieser API betrifft das allein abuse_contact, das dann [entfernt] lautet. Die abgefragte IP-Adresse selbst bleibt stehen: sie ist die Eingabe des Aufrufs, die der Aufrufer ohnehin kennt. Wer sie nicht weiterverarbeiten will, muss sie selbst verwerfen — die Neutralisierung nimmt sie nicht heraus. Ob eine Antwort tatsächlich neutralisiert wurde, steht im Antwort-Header X-Neutralisiert.

# Kontingente & Preise

Buchbar als Add-on unter Einstellungen → Abo & Rechnung. Pro-Minute-Limit pro Key zusätzlich konfigurierbar.

Geo-API Starter

5 €/Monat

50.000 Lookups / Monat

monatlich kündbar

Geo-API Pro

12 €/Monat

500.000 Lookups / Monat

monatlich kündbar

Geo-API Business

29 €/Monat

3 Mio. Lookups / Monat

monatlich kündbar

# Lokale Datenbank (.mmdb)

Wer Geodaten lokal auflösen will, lädt über /geo/db eine .mmdb im offenen GeoIP2-Format. Jedes Tool oder Framework, das dieses Format liest, kann sie direkt einbinden — kein externer Account, EU-Datenbasis, IPv4, wöchentlich aktualisierbar. Für IPv6 nutzen Sie zusätzlich den /geo-Endpoint.

Die Stadt-/Regionsnamen der API sind sprachabhängig (lang=de|en) lokalisiert (z. B. „München“, „Niedersachsen“). Die .mmdb selbst enthält die englischen Originalnamen.

Häufige Fragen

Per Query-Parameter ?key=xtraq_… (empfohlen, header-unabhängig). Der Key benötigt den Scope „geo“ — beim Anlegen unter Einstellungen → API-Keys auswählen. X-Api-Key und Authorization: Bearer werden ebenfalls akzeptiert.
Verfügbarkeit nach Plan
Die Geo-API ist ein Add-on zu jedem Tarif — auch zum Gratis-Tarif — und wird unter Einstellungen → Abo & Rechnung in drei Volumen-Stufen gebucht: Starter (5 €/Monat, monatlich kündbar, 50.000 Lookups), Pro (12 €/Monat, monatlich kündbar, 500.000) und Business (29 €/Monat, monatlich kündbar, 3 Mio.). Ohne gebuchtes Add-on sind zum Testen 1.000 Lookups/Monat inklusive. Jeder API-Key benötigt den „geo“-Scope; ohne ihn antwortet /geo mit 403 scope_denied. Einen Key, dessen einziger Scope „geo“ ist, legen Sie unter Einstellungen → API-Keys in jedem Tarif an — auch unterhalb von Business, wo die übrige REST-API gesperrt bleibt. Er gilt ausschließlich für die Geo-Endpoints. Preise inkl. USt., monatlich kündbar.
In 60 Sekunden starten

Lassen Sie XICTRAQ Ihre Website bewachen.

Dauerhaft kostenloser Plan verfügbar. Keine Kreditkarte, keine Installation, keine versteckten Kosten.