К основному содержимому

WHOIS API и массовая проверка доменов для бизнеса

Домены · 19.04.2026 · 3 мин чтения
Иллюстрация к статье «WHOIS API и массовая проверка доменов: автоматизация для бизнеса»

Ручная проверка WHOIS подходит для единичных запросов. Для мониторинга конкурентов, верификации лидов или защиты бренда нужна автоматизация через WHOIS API.

Популярные WHOIS API сервисы

СервисБесплатноЦенаОсобенности
WhoisXML API500 запросов/месот $19/месНормализованный JSON, история
Whoxy.com100/месот $10/месReverse WHOIS, bulk
ip-api.com45/мин (IP)БесплатноТолько IP-геолокация
domain-coupler.io10/месот $5/месПростой, быстрый

Пример на PHP

// WHOIS-запрос через WhoisXML API
$apiKey = 'YOUR_API_KEY';
$domain = 'example.com';

$url = "https://www.whoisxmlapi.com/whoisserver/WhoisService"
     . "?apiKey={$apiKey}&domainName={$domain}&outputFormat=JSON";

$response = file_get_contents($url);
$data = json_decode($response, true);

echo "Регистратор: " . $data['WhoisRecord']['registrarName'] . "
";
echo "Истекает: " . $data['WhoisRecord']['expiresDate'] . "
";
echo "NS: " . implode(', ', $data['WhoisRecord']['nameServers']['hostNames']) . "
";

Пример на Python

import requests

API_KEY = 'YOUR_API_KEY'
domains = ['example.com', 'competitor.com', 'anotherdomain.net']

for domain in domains:
    url = f"https://www.whoisxmlapi.com/whoisserver/WhoisService"
    params = {
        'apiKey': API_KEY,
        'domainName': domain,
        'outputFormat': 'JSON'
    }
    resp = requests.get(url, params=params).json()
    record = resp.get('WhoisRecord', {})
    print(f"{domain}: expires {record.get('expiresDate', 'N/A')}")

Использование whois Python-библиотеки

pip install python-whois

import whois

w = whois.whois('example.com')
print(w.expiration_date)  # Дата истечения
print(w.registrar)        # Регистратор
print(w.name_servers)     # NS-серверы
💡 Мониторинг конкурентов: Запускайте WHOIS-проверку конкурентных доменов еженедельно. Если домен перешёл к новому владельцу или изменились NS-серверы — это сигнал о смене хостинга или продаже бизнеса.
⚠️ Rate limiting: Публичные WHOIS-серверы ограничивают запросы (обычно 1–5/сек). Массовую проверку выполняйте только через платные API с официальными лимитами.

Типичные ошибки при работе с WHOIS API

ОшибкаПричина
HTTP 401 UnauthorizedНеверный или просроченный API-ключ, либо ключ передан в неверном параметре — у разных сервисов это apiKey, api_key или отдельный заголовок
HTTP 429 Too Many RequestsПревышен лимит запросов тарифа: массовая проверка списка доменов без паузы между запросами быстро упирается в rate limit
WhoisRecord.registrarName: null в ответеДомен использует «тонкий» WHOIS (характерно для части ccTLD) — регистратор не публикует эти данные в общем протоколе, только через RDAP реестра зоны
SSL certificate problem: unable to get local issuer certificateУстаревший CA-бандл на сервере или в PHP не включено расширение openssl — курл не может проверить цепочку сертификатов API
WhoisCommandFailed: No match for domainДомен свободен, либо whois-сервер реестра временно недоступен; python-whois не делает повторную попытку автоматически
Quota exceeded / HTTP 402 Payment RequiredМесячная квота бесплатного тарифа исчерпана раньше даты продления — счётчик сервиса сбрасывается только первого числа месяца, а не через 30 дней от регистрации

Когда WHOIS API не подходит

  • Нужна проверка в реальном времени прямо в форме регистрации на сайте — публичные WHOIS-серверы слишком медленные и лимитированные для синхронного запроса на каждый ввод, для этого больше подходит RDAP с собственным кэшем
  • Бюджета на платный тариф нет, а объём проверок большой — бесплатные лимиты быстро заканчиваются, а массовые запросы к публичным WHOIS-серверам заканчиваются блокировкой IP
  • Нужны исторические данные WHOIS за прошлые годы — обычный запрос отдаёт только текущее состояние, для истории нужен отдельный платный сервис вроде WhoisXML Historical WHOIS
  • Домен в зоне с закрытым по умолчанию WHOIS (большинство .eu, многие .de) — персональные данные владельца не вернутся ни через один API, это ограничение на уровне реестра, а не сервиса

Проверка результата

Перед тем как встраивать API в продакшен-скрипт, убедитесь, что ключ реально работает и лимит не исчерпан заранее — это экономит время на отладке всего пайплайна. Базовые понятия WHOIS и ручную проверку разбирают статьи что такое WHOIS и как проверить домен онлайн.

# Проверить, что ключ рабочий, одним curl-запросом
curl -s "https://www.whoisxmlapi.com/whoisserver/WhoisService?apiKey=YOUR_KEY&domainName=example.com&outputFormat=JSON" | head -c 200

# Посчитать, сколько доменов из списка реально получили ответ
grep -c '"expiresDate"' results.json
Статья помогла?
← Назад в базу знаний Задать вопрос поддержке