API-referentie
Endpoints, antwoordformaten en HTTP-fouten voor opzoekingen van één IP-adres.
Endpoints
https://api.ipquery.ioGeen API-sleutelIP-adres van de aanroeper
/Standaard: text/plainGeeft het adres terug dat het verzoek doet. Een fetch in de browser bepaalt de browserverbinding; een server-side fetch bepaalt de serververbinding.
curl --fail --silent --show-error --max-time 5 \
"https://api.ipquery.io/?format=json"Eén IP-adres
/:ipStandaard: application/jsonZet één IPv4- of IPv6-adres in het pad. Het resultaat beschrijft dat adres, ongeacht de verbinding van de aanroeper.
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"Gebruik HTTPS. Voeg ?format=json toe wanneer je toepassing een gestructureerd resultaat voor het eigen IP-adres nodig heeft.
Antwoordformaten
Stel de queryparameter format in om de antwoordweergave te kiezen.
- JSON
?format=jsonapplication/json- XML
?format=xmlapplication/xml- YAML
?format=yamlapplication/x-yaml- Tekst
?format=texttext/plain
Tekst geeft alleen het adres terug. JSON, XML en YAML geven het gestructureerde opzoekresultaat terug.
Fouten en bulkverzoeken
Controleer de HTTP-status voordat je een geslaagd resultaat leest. Een ondersteunde waarde van de queryparameter format bepaalt het formaat van een foutantwoord; bij een ontbrekend of niet-ondersteund formaat wordt platte tekst teruggegeven.
Ongeldig adres
HTTP 404Controleer de adressyntaxis. Het pad accepteert één IPv4- of IPv6-adres.
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"}Niet-ondersteund formaat
HTTP 400Gebruik json, xml, yaml of text. CSV is geen API-antwoordformaat.
curl -i "https://api.ipquery.io/1.1.1.1?format=csv"HTTP/1.1 400 Bad Request
Content-Type: text/plain
Invalid formatBulkverzoek uitgeschakeld
HTTP 400Gebruik voor een bezoeker het endpoint voor het eigen IP-adres of vraag één specifiek adres op. Hetzelfde bulkverzoek herhalen schakelt het niet in.
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>."}Een mislukt verzoek afhandelen
GET-verzoeken vanuit de browser ondersteunen cross-origintoegang. Bij een netwerkfout wordt de promise van fetch afgewezen; een HTTP-fout levert nog steeds een antwoord op. Controleer response.ok voordat je JSON verwerkt.
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);Een time-out of een antwoord met status 5xx is geen IP-record. Houd een expliciete niet-beschikbaarstatus aan en beperk herhaalpogingen. Een foutantwoord van een achterliggende dienst kan tekst of HTML bevatten; ga er daarom niet van uit dat elk antwoord JSON bevat.
Ontbrekende bronwaarden kunnen lege tekenreeksen opleveren. Een false-indicator betekent geen overeenkomst, niet dat het adres veilig is. Velddefinities lezen
Werkelijk antwoord
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
}
}