API-Referenz
Endpunkte, Antwortformate und HTTP-Fehler für Einzel-IP-Abfragen.
Endpunkte
https://api.ipquery.ioOhne API-SchlüsselIP des Aufrufers
/Standard: text/plainGibt die Adresse zurück, von der die Anfrage ausgeht. Ein fetch im Browser ermittelt die Browserverbindung; ein serverseitiger fetch die Serververbindung.
curl --fail --silent --show-error --max-time 5 \
"https://api.ipquery.io/?format=json"Einzelne IP
/:ipStandard: application/jsonTragen Sie eine IPv4- oder IPv6-Adresse in den Pfad ein. Das Ergebnis beschreibt diese Adresse, unabhängig von der Verbindung des Aufrufers.
curl --fail --silent --show-error --max-time 5 \
"https://api.ipquery.io/1.1.1.1"
curl --fail --silent --show-error --max-time 5 \
"https://api.ipquery.io/2606:4700:4700::1111"Verwenden Sie HTTPS. Fügen Sie ?format=json hinzu, wenn Ihre Anwendung ein strukturiertes Ergebnis für die eigene IP benötigt.
Antwortformate
Setzen Sie den Abfrageparameter format auf das gewünschte Antwortformat.
- JSON
?format=jsonapplication/json- XML
?format=xmlapplication/xml- YAML
?format=yamlapplication/x-yaml- Text
?format=texttext/plain
Text gibt nur die Adresse zurück. JSON, XML und YAML liefern das strukturierte Abfrageergebnis.
Fehler und Sammelabfragen
Prüfen Sie den HTTP-Status, bevor Sie ein erfolgreiches Ergebnis lesen. Ein unterstützter Wert für den Abfrageparameter format bestimmt das Format der Fehlerantwort; bei fehlendem oder nicht unterstütztem Format wird Klartext zurückgegeben.
Ungültige Adresse
HTTP 404Prüfen Sie die Adresssyntax. Der Pfad akzeptiert eine einzelne IPv4- oder IPv6-Adresse.
curl -i "https://api.ipquery.io/not-an-ip?format=json"HTTP/1.1 404 Not Found
Content-Type: application/json
{"error":"IP address not-an-ip not found"}Nicht unterstütztes Format
HTTP 400Verwenden Sie json, xml, yaml oder text. CSV ist kein API-Antwortformat.
curl -i "https://api.ipquery.io/1.1.1.1?format=csv"HTTP/1.1 400 Bad Request
Content-Type: text/plain
Invalid formatSammelabfragen deaktiviert
HTTP 400Verwenden Sie für Besucher den Endpunkt der eigenen IP oder fragen Sie eine einzelne Adresse ab. Wiederholungen derselben Sammelanfrage schalten sie nicht frei.
curl -i "https://api.ipquery.io/1.1.1.1,8.8.8.8?format=json"HTTP/1.1 400 Bad Request
Content-Type: application/json
{"error":"Bulk lookups are disabled due to abuse. For your own IP, embed fetch(\"https://api.ipquery.io/?format=json\") in your app, or use a single-IP lookup at https://api.ipquery.io/<ip>."}Fehlgeschlagene Anfragen behandeln
GET-Anfragen im Browser unterstützen ursprungsübergreifenden Zugriff. Ein Netzwerkfehler lässt fetch fehlschlagen; ein HTTP-Fehler liefert hingegen weiterhin eine Antwort. Prüfen Sie response.ok vor dem Parsen von JSON.
const response = await fetch(
"https://api.ipquery.io/1.1.1.1?format=json",
{ signal: AbortSignal.timeout(5000) }
);
if (!response.ok) {
const message = await response.text();
throw new Error("IPQuery " + response.status + ": " + message);
}
const data = await response.json();
console.log(data.ip);Ein Timeout oder eine Antwort mit Status 5xx ist kein IP-Datensatz. Behalten Sie einen ausdrücklichen Nicht-verfügbar-Zustand bei und begrenzen Sie Wiederholungen. Fehler des vorgeschalteten Dienstes können Text oder HTML enthalten; erwarten Sie daher nicht in jeder Antwort JSON.
Fehlende Quellwerte können als leere Zeichenketten vorliegen. Ein false-Merkmal bedeutet keinen Treffer, kein Sicherheitsurteil. Felddefinitionen lesen
Tatsächliche Antwort
1.1.1.1{
"ip": "1.1.1.1",
"isp": {
"asn": "AS13335",
"org": "Cloudflare, Inc.",
"isp": "Cloudflare, Inc."
},
"location": {
"country": "Australia",
"country_code": "AU",
"city": "Brisbane",
"state": "Queensland",
"zipcode": "",
"latitude": -27.474848400186662,
"longitude": 153.00996200912815,
"timezone": "Australia/Brisbane",
"localtime": "2026-11-03T10:24:52"
},
"risk": {
"is_mobile": false,
"is_vpn": false,
"is_tor": false,
"is_proxy": false,
"is_datacenter": true,
"risk_score": 20
}
}