Dokumentacja referencyjna API

Endpointy, formaty odpowiedzi i błędy HTTP dla zapytań o pojedynczy IP.

Endpointy

Bazowy URLhttps://api.ipquery.ioBez klucza API

IP wywołującego

GET/Domyślnie: text/plain

Zwraca adres, z którego wysłano żądanie. Fetch w przeglądarce identyfikuje jej połączenie, a fetch po stronie serwera identyfikuje połączenie serwera.

Żądanie
curl --fail --silent --show-error --max-time 5 \
  "https://api.ipquery.io/?format=json"

Pojedynczy IP

GET/:ipDomyślnie: application/json

Umieść jeden adres IPv4 lub IPv6 w ścieżce. Wynik opisuje ten adres niezależnie od połączenia wywołującego.

Żądanie
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"

Używaj HTTPS. Dodaj ?format=json gdy aplikacja potrzebuje ustrukturyzowanego wyniku dla własnego IP.

Formaty odpowiedzi

Ustaw wartość parametru format zapytania, aby wybrać format odpowiedzi.

JSON
?format=jsonapplication/json
XML
?format=xmlapplication/xml
YAML
?format=yamlapplication/x-yaml
Tekst
?format=texttext/plain

Tekst zwraca wyłącznie adres. JSON, XML i YAML zwracają ustrukturyzowany wynik zapytania.

Błędy i zapytania zbiorcze

Sprawdź status HTTP przed odczytem prawidłowego wyniku. Treść błędu ma format zgodny z obsługiwaną wartością parametru format zapytania; brak formatu lub nieobsługiwany format powoduje zwrócenie zwykłego tekstu.

Nieprawidłowy adres

HTTP 404

Sprawdź składnię adresu. Ścieżka przyjmuje jeden adres IPv4 lub IPv6.

Żądanie
curl -i "https://api.ipquery.io/not-an-ip?format=json"
HTTP 404
HTTP/1.1 404 Not Found
Content-Type: application/json

{"error":"IP address not-an-ip not found"}

Nieobsługiwany format

HTTP 400

Użyj json, xml, yaml lub text. CSV nie jest formatem odpowiedzi API.

Żądanie
curl -i "https://api.ipquery.io/1.1.1.1?format=csv"
HTTP 400
HTTP/1.1 400 Bad Request
Content-Type: text/plain

Invalid format

Zapytania zbiorcze są wyłączone

HTTP 400

Dla odwiedzającego użyj endpointu własnego IP lub sprawdź pojedynczy adres. Ponawianie tego samego zapytania zbiorczego nie włączy jego obsługi.

Żądanie
curl -i "https://api.ipquery.io/1.1.1.1,8.8.8.8?format=json"
HTTP 400
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>."}

Obsłuż nieudane żądanie

Żądania GET z przeglądarki obsługują dostęp między różnymi źródłami. Błąd sieci odrzuca obietnicę zwracaną przez fetch; błąd HTTP nadal zwraca odpowiedź. Sprawdź response.ok przed parsowaniem JSON.

Sprawdź status HTTP
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);
Błędy połączenia i awarie serwera

Przekroczenie limitu czasu lub odpowiedź 5xx nie jest rekordem IP. Zachowaj jawny stan niedostępności i ogranicz liczbę ponowień. Treść błędu usługi nadrzędnej może zawierać tekst lub HTML, dlatego nie zakładaj, że każda odpowiedź zawiera JSON.

Brakujące dane źródłowe mogą być pustymi ciągami znaków. Wartość false oznacza brak dopasowania, a nie potwierdzenie bezpieczeństwa. Przeczytaj definicje pól

Rzeczywista odpowiedź

1.1.1.1
Rzeczywista odpowiedź dla pojedynczego IP
{
  "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-02T23:07:35"
  },
  "risk": {
    "is_mobile": false,
    "is_vpn": false,
    "is_tor": false,
    "is_proxy": false,
    "is_datacenter": true,
    "risk_score": 20
  }
}

Dostęp do pełnych list.

W sprawie cen lub dostępu do pełnych list napisz na contact@ipquery.io.

Wybrana lista
Wybrane rekordy
Rekordy na tej liście