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-адресою — достатньо для невеликого застосунку, планового завдання чи дашборда. Ключ надсилається вам на пошту й показується один раз нижче.
Ми зберігаємо хеш ключа та вашу електронну адресу, щоб ви могли попросити нас відкликати його. Жодних розсилок.
Як використовувати ключ
Передавайте ключ у заголовку 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: *, тож браузери можуть звертатися до API напряму - Атрибуція: якщо ви показуєте дані, виводьте напис «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. Зміни лімітів, ендпоінтів або поведінки анонсуються на цій сторінці до того, як набирають чинності.