GEOPINGER проверка доступности
Инструменты
Detector404.ru GeoIP
CDNmon.net Список сенсоров
Документация
API Политики
  • Аутентификация
  • /api/v1/sensors
  • /api/v1/ux-meta
  • /api/v1/start/{method}
  • /api/v1/start/ux
  • /api/v1/results/{task_id}
  • Политика использования cookie

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

Для того, чтобы воспользоваться API необходимо иметь действующий аккаунт в системе и токен авторизации. Токен авторизации можно сгенерировать в личном профиле в пункте «API».

  1. Перейдите в профиль пользователя нажав на иконку пользователя в правом верхнем углу экрана.
  2. В открывшемся меню выберите «профиль» в открывшемся меню слева выберите пункт «API».
  3. Нажмите кнопку «сгенерировать».
  4. Скопируйте полученный токен.

Использование сгенерированного токена

Сгенерированный токен должен передаваться в HTTP-заголовке Authorization во всех API-запросах.

Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU

Пример запроса на получение информации о сенсорах при помощи утилиты curl (подставьте свой токен):

curl --location 'https://geopinger.net/api/v1/sensors' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Список сенсоров

Метод для получения списка сенсоров, с которых DownDetector осуществляет проверки доступности, со всеми дополнительными характеристиками

URL

/api/v1/sensors

Метод

GET

Описание возвращаемых данных

Метод возвращает JSON-массив, состоящий из объектов со следующими полями:

  • id - идентификатор сенсора;
  • ip - IP-адрес сенсора;
  • city - город расположения сенсора;
  • provider - провайдер, через которого работает сенсор, если однозначно известен, иначе пусто;
  • ccode - ISO-код страны в которой расположен сенсор;
  • active - булево значение, активен ли в настоящий момент сенсор.

Пример

Запрос:

curl --location 'https://geopinger.net/api/v1/' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

[ { "ip": "146.185.199.33", "id": "nsk.rtcloud1.downdetector.info", "city": "Новосибирск", "provider": "", "ccode": "ru", "active": true }, { "ip": "95.46.196.233", "id": "sochi.sochipark.downdetector.info", "city": "Сочи (Сириус)", "provider": "Мегафон", "ccode": "ru", "active": true }, { "ip": "5.101.218.215", "id": "msk.rt3.downdetector.info", "city": "Москва", "provider": "Ростелеком", "ccode": "ru", "active": true } ]

События

Метод для получения идинтификаторов параметров запроса UX-проверки

URL

/api/v1/ux-meta

Метод

GET

Описание возвращаемых данных

Метод возвращает JSON-объект со следующими полями:

  • success - булево значение, означающее успешность исполнения запроса;
  • error - опциональное, строка с описанием ошибки, если success: false;
  • data - в случае успешного исполнения запроса (success: true) объект с данными.

Объект data имеети следующие поля:

  • locations - список локаций, из которых возможна UX-проверка; для каждой приводится название города и идентификатор;
  • browsers - список браузеров, которые можно использовать для UX-проверки; для каждого приводится название и идентификатор;
  • profiles - список профилей ИИ, которые можно использовать для UX-проверки; для каждого приводится название и идентификатор;
  • defaults - объект с перечислением значений по умолчанию для UX-проверки;

Пример

Запрос:

curl --location 'https://detector404.ru/api/v1/ux-meta' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": { "api_version": "ux-v1", "locations": [ { "id": "vlad", "name": "Владивосток" }, { "id": "nsk", "name": "Новосибирск" }, { "id": "msk", "name": "Москва" }, ], "browsers": [{ "id": "chrome", "name": "Chrome", "enabled": true, "default": true }], "profiles": [ { "id": "gpt", "name": "OpenAI", "enabled": true, "default": true }, { "id": "yandex", "name": "YandexGPT", "enabled": true, "default": false } ], "defaults": { "location": "msk", "browser": "chrome", "profile": "gpt", "mode": "waf-penetration", "poll_interval_ms": 2500 } } }

Ответ в случае ошибки:

{ "success": false, "error": "Service unavailable" }

Запуск проверки

Метод для инициации простой проверки

URL

/api/v1/start/{method}

Подставляемое значение {method}: метод проверки. Возможные варианты: http, ping, tcp, dns

Метод

POST

Тело запроса

В JSON-формате, объект со следующими полями:

  • url - URL страницы, которую требуется проверить;
  • sensors - массив идентификаторов сенсоров, через которые требуется запустить проверку;
  • places - массив названий городов, в которых требуется запустить проверку;

sensors и places оба указывать необязательно, но хотя бы один из них присутствовать должен. places запускает проверку на одном случайно выбранном сенсоре в каждом городе (если их там более одного), sensors позволяет указать требуемый список сенсоров по своим критериям.

В случае метода tcp обязательным является наличие еще одного поля:

  • port - список портов, которые требуется проверить на каждом сенсоре;

В случае метода dns обязательным является наличие еще одного поля:

  • dns - список IP-адресов серверов DNS, через которые сенсоры будут направлять запросы;

Пример:

{ "url": "https://ya.ru", "places": ["Москва","Владивосток"], "port": [110,8080] }

Описание возвращаемых данных

Метод возвращает JSON-объект со следующими полями:

  • success - булево значение, означающее успешность исполнения запроса;
  • error - опциональное, строка с описанием ошибки, если success: false;
  • task_id - в случае успешного исполнения запроса (success: true) идентификатор запущенной задачи.

Пример

Запрос:

Ответ:

{ "success": true, "task_id": "jcwir6r5nhjwfcnbihnsbhyw" }

Запуск UX-проверки

Метод для инициации UX-проверки, описывается отдельно от прочих типов проверок (/start/{method}) в силу большого различия в требуемых параметрах.

URL

/api/v1/start/ux

Метод

POST

Тело запроса

В JSON-формате, объект со следующими полями:

  • url - URL страницы, которую требуется проверить;
  • location - идентификатор локации в которой требуется запустить проверку;
  • browser - идентификатор браузера, в котором требуется проводить проверку;
  • profile - идентификатор профиля ИИ, который будет проводить проверку;
  • force - булево значение, признак принудительной проверки, если не установлено true, то могут быть возвращены результаты недавно проведенной проверки с такими же параметрами из кеша; необязательный параметр, по умолчанию false.

Все идентификаторы следует брать из возвращаемых методом /ux-meta.

Пример:

{ "url": "https://ya.ru", "location": "msk", "browser": "chrome", "profile": "gpt", "force": false }

Описание возвращаемых данных

Метод возвращает JSON-объект со следующими полями:

  • success - булево значение, означающее успешность исполнения запроса;
  • error - опциональное, строка с описанием ошибки, если success: false;
  • task_id - в случае успешного исполнения запроса (success: true) идентификатор запущенной задачи.

Пример

Запрос:

Ответ:

{ "success": true, "task_id": "uem-91964a7d2c4c49f69550a124" }

Результаты проверки

Метод для получения результатов проверки

URL

/api/v1/results/{task_id}

Подставляемое значение {task_id}: идентификатор проверки, ранее полученный при запуске методами /api/v1/start/{method} или /api/v1/start/ux.

Метод

GET

Описание возвращаемых данных

Метод возвращает JSON-объект со следующими полями:

  • success - булево значение, означающее успешность исполнения запроса;
  • error - опциональное, строка с описанием ошибки, если success: false;
  • task - в случае успешного исполнения запроса (success: true) объект с информацией о задаче.

Объект task содержит в себе поля с информацией о задаче, в частности:

  • status - статус задачи, queued - "в очереди", running - "на исполнении", done - "завершена"

В случае методов http, ping, tcp, dns :

  • results - результаты исполнения задачи, возможно не окончательные, если статус отличен от done, массив объектов, в каждом из которых есть поле sensor с информацией о сенсоре с которого получена информация и остальными полями с результатами проверки в зависисмости от ее типа.

В случае UX-проверки:

  • result - объект с результатом проверки в указанном месте указанным способом.

Пример

Запрос:

curl --location 'https://geopinger.net/api/v1/results/gb2du2gnt3jweibnrjjgxgxk' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "task": { "task_id": "gb2du2gnt3jweibnrjjgxgxk", "url": "https://ya.ru", "status": "done", "sensors": [ { "id": "msk.curator.downdetector.info", "city": "Москва", "provider": "", "ccode": "ru" }, { "id": "krdr.kubtel.downdetector.info", "city": "Краснодар", "provider": "Кубтел", "ccode": "ru" } ], "method": "ping", "started_at": "2026-05-22T12:08:43.185863+00:00", "started_at_ms": 1779451723185, "elapsed_ms": 2641, "results": [ { "ip": "5.255.255.242", "rtt_min": 13.169, "rtt_max": 13.345, "rtt_avg": 13.248, "packets_sent": 3, "packets_lost": 0, "success": true, "rtt_ms": 13, "sensor": { "id": "msk.curator.downdetector.info", "city": "Москва", "provider": "", "ccode": "ru" } }, { "rtt_avg": 25.772, "packets_sent": 3, "packets_lost": 0, "success": true, "rtt_ms": 26, "ip": "77.88.44.242", "rtt_min": 25.675, "rtt_max": 25.893, "sensor": { "id": "krdr.kubtel.downdetector.info", "city": "Краснодар", "provider": "Кубтел", "ccode": "ru" } } ] } }

Ответ в случае UX-проверки:

{ "success": true, "task": { "task_id": "uem-91964a7d2c4c49f69550a124", "status": "done", "url": "https://ya.ru/", "domain": "ya.ru", "route": "ai", "force": false, "browser": "chrome", "check_browser": "chrome", "profile": "gpt", "check_profile": "gpt", "ai_mode": "waf-penetration", "location": { "id": "msk", "name": "Москва" }, "check_location": "Москва", "started_at": "2026-05-22T11:57:04Z", "started_at_ms": 1779451024583, "elapsed_ms": 83324, "result": { "status": "ok", "raw_status": "ok", "confidence": 0.98, "summary": "Сайт открылся и пригоден для использования: видна главная страница Яндекса с поиском, сервисами и основным контентом, без активного WAF/капчи и без признаков ограничения по VPN/proxy на этом пути проверки.", "user_impact": "Обычный пользователь может открыть страницу, выполнить поиск и использовать основные блоки главной страницы без видимых препятствий.", "details": "Обычный пользователь может открыть страницу, выполнить поиск и использовать основные блоки главной страницы без видимых препятствий.", "checked_at": "2026-05-22T11:58:27Z", "checked_at_ms": 1779451107884, "primary_failure": "none", "route": "ai", "ai_mode": "waf-penetration", "browser": "chrome", "check_browser": "chrome", "check_location": "Москва", "check_profile": "gpt", "location": { "id": "msk", "name": "Москва" }, "cached": false, "final_url": "https://ya.ru/", "reasons": [ "Видна рабочая главная страница Яндекса с поиском и основным контентом.", "Активного JS-челленджа, капчи или access-denied экрана не было.", "Нет видимых сообщений о блокировке через VPN/proxy или необходимости сменить сеть.", "Критичных сетевых ошибок и пользовательски значимых ошибок консоли не обнаружено." ], "screenshots": [ { "src": "/uem-runs/1779451107-01-initial.png", "url": "/uem-runs/1779451107-01-initial.png", "label": "01-initial.png" }, { "src": "/uem-runs/1779451107-02-after-challenge.png", "url": "/uem-runs/1779451107-02-after-challenge.png", "label": "02-after-challenge.png" } ], "metrics": { "loaded_bytes": 1742199.0, "site_load_ms": 463, "page_ready_ms": 648.0, "request_count": 108, "check_duration_ms": 82594, "console_error_count": 2, "failed_request_count": 0, "console_warning_count": 0, "dom_content_loaded_ms": 462, "largest_contentful_paint_ms": 648.0, "largest_contentful_paint_estimated": false }, "timings": { "check_duration_ms": 82594, "page_ready_ms": 648.0, "site_load_ms": 463, "dom_content_loaded_ms": 462, "largest_contentful_paint_ms": 648.0, "loaded_bytes": 1742199.0 }, "check_context": { "browser": { "mode": "waf-penetration", "name": "Chrome", "model": "gpt-5.4-mini", "engine": "AI + Playwright MCP", "profile": "playwright-extra-stealth-chrome", "version": "148.0.0.0", "scenario": "js-challenge" }, "locations": [ { "city": "Москва", "label": "выбранная точка", "egress": "proxy:msk.rtcloud.downdetector.info", "status": "ok" } ], }, "egress": { "id": "proxy:msk.rtcloud.downdetector.info", "city": "Москва", "kind": "http_connect", "crawler_id": "msk.rtcloud.downdetector.info" }, "egress_id": "proxy:msk.rtcloud.downdetector.info" } } }

Ответ в случае ошибки:

{ "success": false, "error": "Произошла ошибка при выполнении запроса, проверьте параметры" }

© 2026, by admin@detector404.com
под защитой Curator logo