API ipcheckerpro
Бесплатный JSON API без ключа для геолокации IP, данных ASN, флагов, блоклистов, WHOIS и DNS-записей. 60 запросов в минуту, поддержка CORS, с примерами кода.
Эндпоинты
/api/v1/ipЛимит запросов: 60/minYour own address: location, network, type and flags (never cached).
curl -s https://ipcheckerpro.com/api/v1/ip/api/v1/ip/{ip}Лимит запросов: 60/minAny public IPv4/IPv6 address. Add whois=1 (RDAP record) and blacklists=1 (DNSBL checks, IPv4).
curl -s "https://ipcheckerpro.com/api/v1/ip/1.1.1.1?whois=1&blacklists=1"/api/v1/asn/{asn}Лимит запросов: 60/minAutonomous system details: name, country, type, prefix counts; whois=1 adds the registry record.
curl -s "https://ipcheckerpro.com/api/v1/asn/13335?whois=1"/api/v1/dns?name=&type=Лимит запросов: 30/minDNS records of a hostname (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR).
curl -s "https://ipcheckerpro.com/api/v1/dns?name=example.com&type=MX"/api/v1/bulkНовоеЛимит запросов: 5/minUp to 100 addresses in one JSON array: country, city, ASN, type, Tor/hosting/DROP flags and risk score.
curl -s -X POST https://ipcheckerpro.com/api/v1/bulk -H "Content-Type: application/json" -d '["1.1.1.1","8.8.8.8"]'/api/v1/stats/liveНовоеЛимит запросов: 60/minAnonymous aggregates: checks in the last 24 h, countries seen, top networks, dataset versions.
curl -s https://ipcheckerpro.com/api/v1/stats/live/api/v1/stats/weeklyНовоеЛимит запросов: 60/minWeekly operating aggregates (last 7 days vs the 7 before): checks, languages, tools, countries, dataset freshness, cron and health history.
curl -s https://ipcheckerpro.com/api/v1/stats/weeklyПолучите бесплатный API-ключ
Эндпоинты без ключа допускают 60 запросов в минуту с одного IP. Бесплатный ключ поднимает лимит до 1 000 запросов в день и 300 в минуту, считая по ключу, а не по IP, — достаточно для небольшого приложения, cron-задачи или дашборда. Ключ отправляется вам на почту и показывается ниже один раз.
Мы храним хеш ключа и ваш email, чтобы вы могли попросить его отозвать. Никаких рассылок.
Использование ключа
Передавайте ключ в заголовке X-API-Key (предпочтительно) или в параметре запроса key на любом эндпоинте /api/v1/. Каждый ответ несет заголовки X-RateLimit-Limit и X-RateLimit-Remaining для дневной квоты; GET /api/v1/key возвращает использование за сегодня для предъявленного ключа.
Квоты
| Без ключа | С бесплатным ключом | |
|---|---|---|
| запросов в минуту с одного IP | 60 (DNS: 30) | — |
| запросов в минуту на ключ | — | 300 |
| запросов в день на ключ | — | 1,000 |
| POST /api/v1/bulk | 5 batches/min · 100 IPs | 5 batches/min · 100 IPs |
Примеры
curl -s -H "X-API-Key: YOUR_KEY" \
"https://ipcheckerpro.com/api/v1/ip/1.1.1.1?checks=native,risk"
# usage of the key
curl -s -H "X-API-Key: YOUR_KEY" https://ipcheckerpro.com/api/v1/keyconst res = await fetch('https://ipcheckerpro.com/api/v1/ip/1.1.1.1', {
headers: { 'X-API-Key': 'YOUR_KEY' }
});
const data = await res.json();
console.log(data.location.country, data.network.name, res.headers.get('X-RateLimit-Remaining'));import requests
r = requests.get('https://ipcheckerpro.com/api/v1/ip/1.1.1.1',
headers={'X-API-Key': 'YOUR_KEY'}, timeout=10)
r.raise_for_status()
data = r.json()
print(data['location']['country'], data['classification'], r.headers['X-RateLimit-Remaining'])$ctx = stream_context_create(['http' => ['header' => "X-API-Key: YOUR_KEY\r\n"]]);
$json = file_get_contents('https://ipcheckerpro.com/api/v1/ip/1.1.1.1', false, $ctx);
$data = json_decode($json, true);
echo $data['location']['country'], ' ', $data['network']['name'];Обзор
Машиночитаемое описание: /api/v1/openapi.json (OpenAPI 3.1).
API возвращает те же данные, что и сайт, в формате JSON: местоположение, сеть и классификацию любого IP-адреса, запись реестра за ним, статус в блоклистах, детали ASN и DNS-записи. Ключ и регистрация не нужны.
- Базовый URL:
https://ipcheckerpro.com/api/v1 - Формат: JSON, UTF-8, только
GET - Лимиты: 60 запросов в минуту с одного IP-адреса для эндпоинтов IP и ASN, 30 в минуту для эндпоинта DNS
- CORS: каждый ответ несет
Access-Control-Allow-Origin: *, поэтому браузеры могут обращаться напрямую - Атрибуция: если вы показываете данные, выводите «IP geolocation by DB-IP» со ссылкой на db-ip.com (см. раздел «Атрибуция» ниже)
Эндпоинты
GET /api/v1/ip
Возвращает профиль адреса самого вызывающего. Ответ помечен Cache-Control: private, no-store, поэтому всегда свежий.
curl -s https://ipcheckerpro.com/api/v1/ip
GET /api/v1/ip/{ip}
Возвращает профиль любого публичного IPv4- или IPv6-адреса. Необязательные параметры запроса:
whois=1добавляет объектwhoisс записью реестра, полученной по RDAP.blacklists=1выполняет восемь проверок DNS-блоклистов (только IPv4) и заполняет объектblacklists.
Ответы кэшируемы 300 секунд. Результаты блоклистов кэшируются на нашей стороне на час, записи реестров — на 24 часа.
curl -s "https://ipcheckerpro.com/api/v1/ip/1.1.1.1?whois=1&blacklists=1"
GET /api/v1/asn/{asn}
Возвращает сведения об автономной системе. Номер можно указать с префиксом AS или без. Добавьте whois=1, чтобы включить запись реестра в объект registry. Ответы кэшируемы один час.
curl -s "https://ipcheckerpro.com/api/v1/asn/13335?whois=1"
GET /api/v1/dns?name=&type=
Возвращает DNS-записи имени хоста. type — одно из A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA или PTR; по умолчанию A. Ответы кэшируемы 60 секунд.
curl -s "https://ipcheckerpro.com/api/v1/dns?name=example.com&type=MX"
Структура ответа
Успешный запрос IP возвращает объект со следующими полями. Неизвестные значения — null. Значения ниже иллюстративны; выполните запрос, чтобы увидеть текущие данные для адреса.
{
"ip": "1.1.1.1",
"version": 4,
"private": false,
"hostname": "one.one.one.one",
"location": {
"country_code": "AU",
"country": "Australia",
"region": "Queensland",
"city": "Brisbane",
"latitude": -27.4679,
"longitude": 153.028,
"timezone": "Australia/Brisbane",
"continent": "OC",
"eu": false
},
"network": {
"asn": 13335,
"name": "CLOUDFLARENET",
"prefix": "1.1.1.0/24",
"country_code": "US",
"type": "hosting"
},
"classification": "hosting",
"flags": {
"hosting": true,
"tor": false,
"vpn_provider": false,
"spamhaus_drop": null,
"datacenter": "Cloudflare",
"mobile": false
},
"blacklists": { "checked": 8, "listed": 0 },
"sources": {
"geolocation": "DB-IP Lite (CC BY 4.0)",
"asn": "iptoasn.com / DB-IP Lite"
}
}
Примечания к полям:
version—4или6.privateравноtrueдля loopback, link-local и частных диапазонов; у таких адресов нетlocationиnetwork.hostname— PTR-запись (обратный DNS) илиnull.network.type— классификация сети по названию ASN и публичным спискам:isp,mobile,hosting,education,government,businessилиunknown.classification— общий вердикт:residential,mobile,hosting,vpn,tor,education,government,business,privateилиunknown.flags.spamhaus_drop— совпавший диапазон DROP строкой илиnull.flags.datacenter— название совпавшего провайдера из списка дата-центров илиnull.blacklistsравноnull, если не переданblacklists=1.whois(приwhois=1) содержитhandle,name,type,start,end,cidr,country,parent,status,entities,events,remarks,linksиregistry.
Запрос ASN возвращает asn, name, country_code, type, ipv4_prefixes, ipv4_addresses, ipv6_prefixes, prefixes_sample (до 20 строк CIDR), registry (при whois=1, иначе null) и source.
Запрос DNS возвращает name, type и records — массив объектов { "name", "ttl", "value" }.
Ошибки
Ошибки — JSON-объекты с кодом error и, как правило, message:
| Статус | error |
Значение |
|---|---|---|
| 400 | invalid_ip |
Сегмент пути — не корректный IPv4- или IPv6-адрес |
| 400 | invalid_asn |
ASN не является числом |
| 400 | invalid_query |
name — не имя хоста, или type не поддерживается |
| 404 | not_found |
Для этой ASN не известно анонсируемых префиксов |
| 429 | rate_limited |
Лимит превышен; подождите и повторите |
Примеры
JavaScript (браузер или Node)
const res = await fetch("https://ipcheckerpro.com/api/v1/ip/8.8.8.8?whois=1");
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data.location.country, data.network.name, data.classification);
Python
import requests
r = requests.get("https://ipcheckerpro.com/api/v1/ip/8.8.8.8", params={"blacklists": 1}, timeout=10)
r.raise_for_status()
data = r.json()
print(data["location"]["country"], data["network"]["name"], data["blacklists"])
curl с адресом вызывающего
curl -s https://ipcheckerpro.com/api/v1/ip | jq '{ip, country: .location.country, type: .network.type}'
Атрибуция
Данные геолокации берутся из DB-IP Lite по лицензии Creative Commons Attribution 4.0. Если вы показываете данные этого API пользователям, выводите рядом с ними текст «IP geolocation by DB-IP» со ссылкой на https://db-ip.com. Данные ASN берутся из iptoasn.com (общественное достояние) и DB-IP Lite. Результаты блоклистов и реестров принадлежат их операторам и возвращаются для вашего собственного использования, а не для распространения в виде набора данных.
Добросовестное использование
Указанные лимиты действуют на каждый вызывающий IP-адрес. Если нужно больше, кэшируйте ответы на своей стороне: данные о местоположении и сети адреса редко меняются в течение дня. Не используйте API для создания копии исходных баз данных. Полные правила допустимого использования — в условиях использования.
Изменения
API версионируется в пути. Поля могут добавляться в ответы без уведомления; существующие поля в рамках v1 не переименовываются и не удаляются. Изменения лимитов, эндпоинтов или поведения объявляются на этой странице до вступления в силу.