Справочник API

Эндпоинты, форматы ответов и ошибки HTTP для запросов одного IP.

Эндпоинты

Базовый URLhttps://api.ipquery.ioБез API-ключа

IP вызывающего клиента

GET/По умолчанию: text/plain

Возвращает адрес, с которого сделан запрос. Вызов fetch в браузере определяет соединение браузера, а серверный fetch определяет соединение сервера.

Запрос
curl --fail --silent --show-error --max-time 5 \
  "https://api.ipquery.io/?format=json"

Один IP

GET/:ipПо умолчанию: application/json

Укажите один адрес IPv4 или IPv6 в пути. Результат описывает этот адрес независимо от соединения вызывающего клиента.

Запрос
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"

Используйте HTTPS. Добавьте ?format=json если приложению нужен структурированный результат для собственного IP.

Форматы ответа

Задайте параметр format запроса, чтобы выбрать представление ответа.

JSON
?format=jsonapplication/json
XML
?format=xmlapplication/xml
YAML
?format=yamlapplication/x-yaml
Текст
?format=texttext/plain

Текстовый формат возвращает только адрес. JSON, XML и YAML возвращают структурированный результат запроса.

Ошибки и массовые запросы

Проверяйте HTTP-статус перед чтением успешного результата. Формат тела ошибки определяется поддерживаемым значением параметра format запроса; при отсутствующем или неподдерживаемом формате возвращается обычный текст.

Недопустимый адрес

HTTP 404

Проверьте синтаксис адреса. Путь принимает один адрес IPv4 или IPv6.

Запрос
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"}

Неподдерживаемый формат

HTTP 400

Используйте json, xml, yaml или text. API не поддерживает формат ответа CSV.

Запрос
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

Массовые запросы отключены

HTTP 400

Для посетителя используйте эндпоинт собственного IP либо запрашивайте один адрес. Повтор того же массового запроса не включит эту возможность.

Запрос
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>."}

Обработка неудачного запроса

GET-запросы браузера поддерживают доступ между разными источниками. При сетевом сбое отклоняется промис fetch; ошибка HTTP при этом всё равно возвращает ответ. Проверяйте response.ok перед разбором JSON.

Проверка 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);
Ошибки соединения и сбои сервера

Тайм-аут или ответ 5xx не является IP-записью. Явно сохраняйте состояние недоступности и ограничивайте повторные попытки. Тело ошибки вышестоящего сервиса может содержать текст или HTML, поэтому не считайте любой ответ JSON.

При отсутствии исходных данных строки могут быть пустыми. Флаг false означает отсутствие совпадения, а не заключение о безопасности. Открыть определения полей

Фактический ответ

1.1.1.1
Фактический ответ для одного 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-03T10:24:52"
  },
  "risk": {
    "is_mobile": false,
    "is_vpn": false,
    "is_tor": false,
    "is_proxy": false,
    "is_datacenter": true,
    "risk_score": 20
  }
}

Доступ к полным спискам.

По вопросам стоимости и доступа к полным спискам напишите на contact@ipquery.io.

Выбранный список
Выбранные записи
Записей в этом списке