Referensi API

Endpoint, format respons, dan kesalahan HTTP untuk pencarian satu IP.

Endpoint

URL dasarhttps://api.ipquery.ioTanpa kunci API

IP pemanggil

GET/Bawaan: text/plain

Mengembalikan alamat yang membuat permintaan. Fetch peramban mengidentifikasi koneksi peramban; fetch di sisi server mengidentifikasi server.

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

Satu IP

GET/:ipBawaan: application/json

Letakkan satu alamat IPv4 atau IPv6 dalam jalur. Hasil menjelaskan alamat tersebut, terlepas dari koneksi pemanggil.

Permintaan
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"

Gunakan HTTPS. Tambahkan ?format=json ketika aplikasi Anda memerlukan hasil IP sendiri yang terstruktur.

Format respons

Tetapkan nilai parameter kueri format untuk memilih representasi respons.

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

Teks hanya mengembalikan alamat. JSON, XML, dan YAML mengembalikan hasil pencarian terstruktur.

Kesalahan dan pencarian massal

Periksa status HTTP sebelum membaca hasil pencarian yang berhasil. Isi respons kesalahan mengikuti parameter kueri format yang dikenali; format yang dihilangkan atau tidak didukung mengembalikan teks biasa.

Alamat tidak valid

HTTP 404

Periksa sintaks alamat. Jalur menerima satu alamat IPv4 atau IPv6.

Permintaan
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"}

Format tidak didukung

HTTP 400

Gunakan json, xml, yaml, atau text. CSV bukan format respons API.

Permintaan
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

Pencarian massal dinonaktifkan

HTTP 400

Gunakan endpoint IP sendiri untuk pengunjung, atau minta satu alamat. Mencoba ulang permintaan massal yang sama tidak akan mengaktifkannya.

Permintaan
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>."}

Tangani permintaan yang gagal

Permintaan GET peramban mendukung akses lintas asal. Kegagalan jaringan menolak fetch; kesalahan HTTP tetap menghasilkan respons. Periksa response.ok sebelum mengurai JSON.

Periksa 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);
Kesalahan koneksi dan kegagalan server

Kehabisan waktu tunggu atau respons 5xx bukan rekaman IP. Pertahankan status tidak tersedia secara eksplisit dan gunakan percobaan ulang terbatas. Isi kesalahan dari hulu dapat berupa teks atau HTML, jadi jangan menganggap setiap respons berisi JSON.

String sumber yang hilang dapat kosong. Penanda false adalah ketidakcocokan, bukan penilaian keamanan. Baca definisi kolom

Respons aktual

1.1.1.1
Respons langsung satu 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-03T14:32:36"
  },
  "risk": {
    "is_mobile": false,
    "is_vpn": false,
    "is_tor": false,
    "is_proxy": false,
    "is_datacenter": true,
    "risk_score": 20
  }
}

Akses daftar lengkap.

Untuk harga atau akses daftar lengkap, kirim email ke contact@ipquery.io.

Daftar terpilih
Rekaman terpilih
Rekaman dalam daftar ini