API

Используйте эти HTTP-эндпоинты в скриптах, мониторинге или собственных интеграциях — они возвращают те же данные, что и интерфейс, и защищены вменяемыми лимитами.

/ip — текстовый IP

Возвращает только определённый IP клиента в текстовом виде. Подходит для скриптов и health-check.

/ip

Лимит запросов: 120 per minute · 3000 per day

curl -s https://nekoip.ru/ip

/api/info — JSON-ответ

Возвращает сведения о текущем или указанном IP. Параметр domain=example.com (или закодированный HTTP(S) URL) возвращает все A- и AAAA-адреса с метаданными.

/api/info

  • ip1.1.1.1 | 2001:db8::1
  • domainexample.com | https://example.com/path

Лимит запросов: 20 per minute

Запросы с ip или domain дополнительно ограничены: 5 проверок за 60 с на IP клиента; сверх лимита API отвечает 429 с полем retry_after.

curl -s "https://nekoip.ru/api/info?ip=1.1.1.1" | jq '.'
curl -s "https://nekoip.ru/api/info?domain=example.com" | jq '.'

/api/ipv4-probe и /api/ipv6-probe

Отдают только IPv4 или IPv6 (если доступен) либо 204, когда адреса нет. Обращайтесь к отдельным одностековым именам ниже — на основном домене проба просто повторит адрес текущего соединения.

https://ipv4.nekoip.ru/api/ipv4-probe / https://ipv6.nekoip.ru/api/ipv6-probe

Лимит запросов: 60 per minute

curl -s https://ipv4.nekoip.ru/api/ipv4-probe
curl -s https://ipv6.nekoip.ru/api/ipv6-probe

/api/dns-leak-test — лог резолверов

Передайте параметр id, который выдаёт виджет на главной, чтобы получить список IP резолверов, обращавшихся к тестовому домену.

/api/dns-leak-test

  • ida1b2c3d4e5f6 (обязательный)

Лимит запросов: 30 per minute

curl -s "https://nekoip.ru/api/dns-leak-test?id=TEST_ID"

API v1 · Сетевые инструменты

Мгновенные расчёты IP, пассивная диагностика DNS, почты и реестров, а также необязательная активная проверка соединения только с NekoIP.

Access-Control-Allow-Origin: * · application/json · text/plain

Структура ответа

Все инструменты v1 отвечают одинаковой JSON-оболочкой: ok, data с результатом, findings с замечаниями и уровнем severity и meta с полями request_id, cached, stale, duration_ms, retrieved_at и sources. Добавьте format=text (или Accept: text/plain), чтобы получить те же данные строками «ключ: значение».

{
  "ok": true,
  "data": { "network": "10.0.0.0/24", "usable_addresses": 254 },
  "findings": [
    { "code": "network_valid", "severity": "ok", "message": "...", "details": {} }
  ],
  "meta": {
    "request_id": "57f47f834af86d2f",
    "cached": false,
    "stale": false,
    "duration_ms": 0,
    "retrieved_at": "2026-01-01T00:00:00+00:00",
    "sources": []
  }
}

Ошибки

Ошибки используют ту же структуру с ok=false и объектом error: code стабилен, message читаемый и всегда на английском, fields указывает на неверные параметры. Типичные статусы: 400 — неверный ввод, 404 — неизвестная или истёкшая сессия, 429 — превышен лимит, 503 — инструмент выключен или внешний источник недоступен.

{
  "ok": false,
  "error": {
    "code": "invalid_dns_name",
    "message": "Enter a fully-qualified DNS owner name.",
    "fields": { "domain": "invalid" }
  },
  "meta": { "request_id": "858db277f46d825b" }
}

Каждый ответ /api/v1/tools/ содержит заголовок RateLimit-Policy; у ограниченных эндпоинтов также есть RateLimit-Limit, RateLimit-Remaining и RateLimit-Reset. При превышении лимита возвращается 429 с error.code=rate_limit_exceeded и заголовком Retry-After.

Калькулятор подсетей и CIDR

Расчёт IPv4/IPv6-сетей, преобразование диапазона в CIDR, агрегация, разбиение и проверка принадлежности адреса.

GET /api/v1/tools/subnet?network=10.0.0.0%2F24

Параметры:

  • operationanalyze (default) | range | aggregate | contains | split
  • network10.0.0.0/24 (analyze, contains, split)
  • start10.0.0.1 (range)
  • end10.0.0.254 (range)
  • networks10.0.0.0/25,10.0.0.128/25 (aggregate)
  • ip10.0.0.15 (contains)
  • new_prefix26 (split)
  • formatjson (default) | text | csv

Лимит запросов: offline — без лимита, ответ считается локально без внешних запросов

Форматы ответа: application/json · text/plain · text/csv

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/subnet?network=10.0.0.0%2F24'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/subnet?network=10.0.0.0%2F24'

Конвертер IP-адресов

Преобразование IPv4 и IPv6 между сжатым, полным, десятичным, шестнадцатеричным и двоичным форматами.

GET /api/v1/tools/ip-converter?ip=2001%3Adb8%3A%3A1

Параметры:

  • ip2001:db8::1 | 192.0.2.10 | 3221225994 (обязательный)
  • formatjson (default) | text

Лимит запросов: offline — без лимита, ответ считается локально без внешних запросов

Форматы ответа: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/ip-converter?ip=2001%3Adb8%3A%3A1'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/ip-converter?ip=2001%3Adb8%3A%3A1'

Проверка DNS-записей

Запрос основных типов DNS через валидирующий резолвер NekoIP с TTL, rcode и признаком DNSSEC.

GET /api/v1/tools/dns?domain=example.com&type=A

Параметры:

  • domainexample.com (обязательный)
  • typeA (default) | AAAA | ALL | CAA | CNAME | DNSKEY | DS | HTTPS | MX | NS | PTR | SOA | SRV | SVCB | TLSA | TXT
  • formatjson (default) | text

Лимит запросов: 30;w=60, 300;w=3600

Форматы ответа: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/dns?domain=example.com&type=A'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/dns?domain=example.com&type=A'

Проверка почтового DNS и SPF

Анализ MX, SPF, DMARC, DKIM, MTA-STS, TLS-RPT и BIMI без подключения к почтовому серверу.

GET /api/v1/tools/email-dns?domain=example.com

Параметры:

  • domainexample.com (обязательный)
  • selectordefault | google | selector1
  • formatjson (default) | text

Лимит запросов: 30;w=60, 300;w=3600

Форматы ответа: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/email-dns?domain=example.com'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/email-dns?domain=example.com'

Генератор почтовых политик

Разбирает DKIM-запись и собирает записи SPF и DMARC из JSON-тела запроса. Полностью оффлайн: NekoIP не делает ни одного DNS-запроса для этого эндпоинта.

POST /api/v1/tools/email-policy

Параметры:

  • operationparse_dkim | generate_spf | generate_dmarc (обязательный)
  • recordv=DKIM1; k=rsa; p=... (parse_dkim)
  • ipv4["192.0.2.10"] (generate_spf)
  • ipv6["2001:db8::1"] (generate_spf)
  • includes["_spf.example.net"] (generate_spf)
  • policy~all | -all | ?all (generate_spf) · none | quarantine | reject (generate_dmarc)
  • pct100 (generate_dmarc)
  • ruamailto:dmarc@example.com (generate_dmarc)
  • subdomain_policynone | quarantine | reject (generate_dmarc)

Лимит запросов: offline — без лимита, ответ считается локально без внешних запросов

Форматы ответа: application/json

curl -X POST -H 'Content-Type: application/json' \
     -d '{"operation": "generate_spf", "ipv4": ["192.0.2.10"], "includes": ["_spf.example.net"], "policy": "~all"}' \
     'https://nekoip.ru/api/v1/tools/email-policy'

Проверить PTR и FCrDNS

Поиск PTR-имён для IP и проверка, возвращаются ли они к исходному адресу.

GET /api/v1/tools/reverse-dns?ip=8.8.8.8

Параметры:

  • ip8.8.8.8 | 2001:4860:4860::8888 (обязательный)
  • formatjson (default) | text

Лимит запросов: 30;w=60, 300;w=3600

Форматы ответа: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/reverse-dns?ip=8.8.8.8'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/reverse-dns?ip=8.8.8.8'

Проверка WHOIS и RDAP

Регистрационные данные доменов, IP и автономных систем с понятными объяснениями EPP-статусов.

GET /api/v1/tools/whois-rdap?query=example.com

Параметры:

  • queryexample.com | 8.8.8.8 | AS15169 (обязательный)
  • formatjson (default) | text

Лимит запросов: 10;w=60, 60;w=3600

Форматы ответа: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/whois-rdap?query=example.com'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/whois-rdap?query=example.com'

Пассивный анализ домена

Объединяет DNS, защиту почты, регистрацию, IDN и PTR без обращения к сайту домена.

GET /api/v1/tools/domain-analysis?domain=example.com

Параметры:

  • domainexample.com (обязательный)
  • formatjson (default) | text

Лимит запросов: 5;w=60, 30;w=3600

Форматы ответа: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/domain-analysis?domain=example.com'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/domain-analysis?domain=example.com'

Эндпоинты /api/v1/tools/dns-resolver/sessions и /api/v1/tools/connection-quality/sessions обслуживают виджеты в браузере: они требуют same-origin запроса, не отдают CORS-заголовки и не являются частью публичного API.