Введение

Добро пожаловать в документацию по API IPFix. Наш API предоставляет программный доступ ко всем нашим инструментам в удобном формате JSON. Мы постарались сделать его максимально простым и предсказуемым

Все эндпоинты находятся по базовому URL:

https://ipfix.ru/api/v1

Аутентификация

Все запросы к API требуют аутентификации. Для этого вам необходимо получить API-ключ в личном кабинете. Полученный ключ должен передаваться в каждом запросе в заголовке Authorization как Bearer токен

Authorization: Bearer ВАШ_API_КЛЮЧ

Если токен не предоставлен или неверен, сервер вернет ошибку 401 Unauthorized


Обработка ошибок

Наш API использует стандартные HTTP-коды для обозначения успеха или неудачи запроса. Ответы с ошибками всегда будут содержать JSON-объект с ключом error

  • 401 Unauthorized - Неверный или отсутствующий API-ключ
  • 404 Not Found - Запрашиваемый ресурс (например, IP или домен) не найден
  • 422 Unprocessable Entity - Ошибка валидации. Например, вы передали невалидный IP-адрес. В теле ответа будет дополнительная информация об ошибках
  • 429 Too Many Requests - Превышен лимит запросов
  • 500 Internal Server Error - Ошибка на нашей стороне. Мы уже получили уведомление и работаем над этим

Пример ответа с ошибкой:

{
        "error": "Неверный токен доступа."
    }

Лимиты

Для всех публичных эндпоинтов действует ограничение в 5 запросов в минуту с одного IP-адреса. При превышении лимита сервер вернет ошибку 429 Too Many Requests. Заголовки X-RateLimit-Limit, X-RateLimit-Remaining и Retry-After в ответе помогут вам отслеживать ваш текущий лимит


Эндпоинты

GET /lookup/{ip}

Получение подробной GeoIP и ASN информации для указанного IP-адреса

Пример ответа:

{
        "data": {
            "ip": "8.8.8.8",
            "hostname": "dns.google",
            "country_code": "US",
            "country_name": "United States",
            "city": "Mountain View",
            "asn": { "number": 15169, "organization": "GOOGLE" }
        }
    }
GET /whois/{domain}

Получение публичной Whois-информации для домена. Возвращает как "сырой" текст, так и разобранные ключевые поля

Пример ответа:

{
        "data": {
            "domain": "google.com",
            "creation_date": "1997-09-15T04:00:00+00:00",
            "expiration_date": "2028-09-14T04:00:00+00:00",
            "nameservers": ["ns1.google.com", ...],
            "states": [{"name": "UpdateProhibited", ...}],
            "raw": "Domain Name: google.com\nRegistrar: MarkMonitor Inc.\n..."
        }
    }
GET /dns/{domain}/{type?}

Получение DNS-записей для домена. Необязательный параметр type позволяет фильтровать записи (A, MX, TXT и т.д.)

Пример ответа:

{
        "data": {
            "A": [{"host": "google.com", "ip": "142.250.185.78", ...}],
            "MX": [{"host": "google.com", "target": "smtp.google.com", ...}]
        }
    }
GET /calculator

Выполняет полный расчет IPv4-подсети

Параметры (Query String):

  • ip (string, обязательный) - IPv4-адрес
  • cidr (integer, обязательный) - Маска сети (0-32)

Пример запроса: /calculator?ip=192.168.1.10&cidr=24

Пример ответа:

{
        "data": {
            "address": {"decimal": "192.168.1.10", ...},
            "netmask": {"cidr": 24, "decimal": "255.255.255.0", ...},
            ...
        }
    }
GET /blacklist-check/{ip}

Проверяет IP-адрес по популярным черным спискам (DNSBL)

Пример ответа:

{
        "data": {
            "ip": "127.0.0.2",
            "is_listed": true,
            "status": "LISTED",
            "detections": [
                {"blacklist": "zen.spamhaus.org", ...}
            ]
        }
    }
GET /rdns/{ip}

Выполняет обратный DNS-запрос (Reverse DNS) для получения PTR-записи, связанной с IP-адресом

Пример ответа:

{
        "data": {
            "ip": "8.8.8.8",
            "hostname": "dns.google"
        }
    }
GET /ssl-check/{ip}

Получает и парсит информацию из SSL-сертификата для указанного домена

Пример ответа:

{
        "data": {
            "subject": "google.com",
            "issuer": "GTS CA 1P5",
            "validFrom": "2025-08-26 07:14:38",
            "validTo": "2025-11-14 07:14:37",
            "isExpired": false,
            "daysRemaining": 80,
            "signatureAlgorithm": "sha256WithRSAEncryption"
        }
    }