Detector404 DETECTOR404 детектор сбоев
Инструменты
HistoryBI GeoIP TLS/SSL Watch Список сенсоров
GeoPinger.net CDNmon.net
Документация Новости Контакты
Детектор Сбоев Россия Детектор Сбоев Беларусь Детектор Сбоев Узбекистан Downtime Detector India Downtime Detector World
FAQ API Политики
  • Какие у detector404.ru рамки ответственности?
  • Какие возможности дает инструмент «Аналитика»?
  • Могу ли я сравнить свой сайт с сайтом конкурентов?
  • Могу ли я узнать, почему не работает сайт?
  • Как я узнаю о всплеске жалоб на сайте в режиме реального времени?
  • Что такое время отклика?
  • Что такое недоступность ресурса?
  • Чем отличается термины: неисправность, сбой, дефект, повреждение, отказ?
  • Какие проверки сайтов у вас есть?
  • Какие есть способы оповещения?
  • Какие механизмы антифрода встроены в вашу платформу?
  • Собираете ли вы персональные данные в жалобах?
  • Аутентификация
  • Ограничения API
  • Кириллица в данных
  • /api/v1/whitelist
  • /api/v1/alerts
  • /api/v1/alerts/filtered
  • /api/v1/branches
  • /api/v1/services
  • /api/v1/services/branch/{branch}
  • /api/v1/service/{service}/alerts
  • /api/v1/service/{service}/alerts/filtered
  • /api/v1/service/{service}/comments/date/{date}
  • /api/v1/service/{service}/graph/date/{date}
  • /api/v1/service/{service}/stats/date/{date}
  • /api/v1/service/{service}/problems/date/{date}
  • /api/v1/service/{service}/status
  • /api/v1/service/{service}/urls
  • Методы получения информации мониторинга CDN
  • /api/v1/cdn/{provider}/graph/{period}/{quantile}
  • Информация об IP-адресе (geoip)
  • /api/v1/ip/{ip}
  • Условия использования
  • Политика конфиденциальности
  • Политика использования cookie

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

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

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

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

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

Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU

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

curl --location 'https://detector404.uz/api/v1/alerts' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ограничения API

Вы можете запрашивать данные за месяц, квартал или год (зависит от прав вашей учетной записи).

Установлены следующие ограничения на частоту запросов к API:

  1. Для получения информации об IP-адресах (geoip) — не более 15 запросов в секунду;
  2. Для всех остальных типов запросов — не более 20 запросов в секунду.

Кириллица в данных

Названия полулярных сервисов иногда написаны кириллицей (Яндекс, ВК Видео и т.д.).

Согласно RFC3986, URI может состоять только из символов латинского алфавита и некоторых специальных символов. Использование в URI пробелов или названий сервисов в кириллице может вызывать ошибку 422 Unprocessable (invalid) entity. Для избежания этого, существует механизм кодирования недопустимых символов с помощью метода Percent-Encoding (см. RFC3986).

К сожалению, не все реализации прикладных программ правильно используют данный механизм.

В связи с этим рекомендуется заранее преобразовывать названия сервисов, в которых присутствуют пробелы или кириллица, методом Percent-Encoding. Исходное название должно быть в кодировке UTF-8.

Альтернативой является использовать специальные названия сервисов, составленные только из допустимых символов. Для каждого сервиса существует такое название, возвращаемое в поле urlname методами /services и /services/branch/{branch}.

Примеры для сервиса Tenge Bank

Запрос c предварительно закодированным названием:

curl --location 'https://detector404.ru/api/v1/service/%D0%91%D0%B0%D0%BD%D0%BA%20%D0%92%D0%A2%D0%91/status' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Запрос cо специальным названием:

curl --location 'https://detector404.ru/api/v1/service/tengebankuz/status' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Белый список

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

URL

/api/v1/whitelist

Метод

GET

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

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

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

Примечание

Данный метод использует отдельный токен авторизации, доступный для партнеров по запросу.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/whitelist' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

[ { "ip": "94.158.57.110", "city": "Ташкент", "active": true }, { "ip": "37.110.214.233", "city": "Самарканд", "active": true }, { "ip": "178.208.68.48", "city": "Бухара", "active": true } ]

События

Метод для получения текущих активных событий

URL

/api/v1/alerts

Метод

GET

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

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

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

Массив data состоит из объектов со следующими обязательными полями:

  • id - идентификатор события, целое число;
  • time - время начала события, строка в ISO-формате;
  • type - тип события, строка.

Возможные типы событий и дополнительные поля, индивидуальные для каждого типа:

  • url - недоступность страницы, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • num - количество городов, из которых данная страница недоступна.
  • latency - большая задержка ответа страницы у конкретного провайдера в конкретном городе, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • provider - провайдер, через которого наблюдается большая задержка;
    • place - город, в котором наблюдается большая задержка;
    • num - регистрируемое значение задержки, в секундах.
  • isp - проблемы у провайдера в городе, дополнительные поля:

    • provider - провайдер, через которого наблюдается большое число недоступных страниц;
    • place - город, в котором это происходит;
    • num - количество недоступных через провайдера страниц.
  • city - проблемы в городе, дополнительные поля:

    • place - город, в котором возможны проблемы;
    • num - количество других точек контроля, из которых город недоступен.
  • complaints - всплеск жалоб пользователей, дополнительные поля:

    • service - название сервиса, на который жалуются;
    • num - количество жалоб за последние 15 минут.
  • function - перестала работать какая-то функция сервиса, дополнительные поля:

    • service - название сервиса;
    • function - название функции;
    • num - числовой идентификатор функции.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/alerts' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "id": 17112941194, "time": "2024-03-24T15:28:07.717409+00:00", "type": "complaints", "service": "Uzum Market", "num": 14 }, { "id": 17112941193, "time": "2024-03-24T15:28:07.717409+00:00", "type": "latency", "provider": "Uztelecom", "place": "Ташкент", "url": "https://humans.uz/", "service": "HUMANS", "num": 11.794 }, { "id": 17112926215, "time": "2024-03-24T15:03:41.542004+00:00", "type": "url", "url": "https://tengebank.uz", "service": "Tenge Bank", "num": 5 } ] }

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

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

Отфильтрованные события

Метод для получения текущих активных событий, превосходящих указанные в профиле пользователя пороги

URL

/api/v1/alerts/filtered

Метод

GET

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

Единственное отличие от метода /alerts состоит в том, что возвращаются не все текущие события, а только те, для которых значение дополнительного параметра num не меньше указанного в профиле пользователя порога для данного типа события

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

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

Массив data состоит из объектов со следующими обязательными полями:

  • id - идентификатор события, целое число;
  • time - время начала события, строка в ISO-формате;
  • type - тип события, строка.

Возможные типы событий и дополнительные поля, индивидуальные для каждого типа:

  • url - недоступность страницы, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • num - количество городов, из которых данная страница недоступна.
  • latency - большая задержка ответа страницы у конкретного провайдера в конкретном городе, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • provider - провайдер, через которого наблюдается большая задержка;
    • place - город, в котором наблюдается большая задержка;
    • num - регистрируемое значение задержки, в секундах.
  • isp - проблемы у провайдера в городе, дополнительные поля:

    • provider - провайдер, через которого наблюдается большое число недоступных страниц;
    • place - город, в котором это происходит;
    • num - количество недоступных через провайдера страниц.
  • city - проблемы в городе, дополнительные поля:

    • place - город, в котором возможны проблемы;
    • num - количество других точек контроля, из которых город недоступен.
  • complaints - всплеск жалоб пользователей, дополнительные поля:

    • service - название сервиса, на который жалуются;
    • num - количество жалоб за последние 15 минут.
  • function - перестала работать какая-то функция сервиса, дополнительные поля:

    • service - название сервиса;
    • function - название функции;
    • num - числовой идентификатор функции.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/alerts/filtered' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "id": 17112941194, "time": "2024-03-24T15:28:07.717409+00:00", "type": "complaints", "service": "Uzum Market", "num": 14 }, { "id": 17112941193, "time": "2024-03-24T15:28:07.717409+00:00", "type": "latency", "provider": "Uztelekom", "place": "Ташкент", "url": "https://humans.uz/", "service": "Humans", "num": 11.794 }, { "id": 17112926215, "time": "2024-03-24T15:03:41.542004+00:00", "type": "url", "url": "https://www.uzse.uz/", "service": "Фондовая Биржа «Тошкент»", "num": 5 } ] }

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

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

Отрасли

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

URL

/api/v1/branches

Метод

GET

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

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

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

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/branches' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ "Популярное", "Финансы", "Общение", "Телеком", "AI", "ВПН", "IT", "Бизнес", "Гостех" ] }

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

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

Сервисы

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

URL

/api/v1/services

Метод

GET

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

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

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

Массив data состоит из объектов со следующими обязательными полями:

  • name - название сервиса;
  • urlname - специальное название сервиса, допустимое в URI;
  • ecosystem - название экосистемы, к которой он приписан, или null;
  • urls - количество url в мониторинге, приписанных сервису;
  • brunches - массив названий отраслей, к которым отнесен сервис;

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/services' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "name": "NBU", "urlname": "nbuuz", "ecosystem": null, "urls": 1, "branches": [ "Финансы" ] }, { "name": "Mobiuz", "urlname": "mobiuz", "ecosystem": null, "urls": 2, "branches": [ "Телеком" ] } ] }

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

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

Сервисы отрасли

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

URL

/api/v1/services/branch/{branch}

Подставляемые значения:

  • {branch} - название отрасли, сервисы отнесенные к которой запрашиваются.

Метод

GET

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

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

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

Массив data состоит из объектов со следующими обязательными полями:

  • name - название сервиса;
  • urlname - специальное название сервиса, допустимое в URI;
  • ecosystem - название экосистемы, к которой он приписан, или null;
  • urls - количество url в мониторинге, приписанных сервису и указанной отрасли;

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/services/branch/Финансы' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "name": "Tenge Bank", "urlname": "tengebankuz", "ecosystem": null, "urls": 2 }, { "name": "Uzum Bank", "urlname": "uzumbank", "ecosystem": null, "urls": 2 } ] }

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

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

События сервиса

Метод для получения текущих событий сервиса по данным мониторинга

URL

/api/v1/service/{service}/alerts

Подставляемое значение:

  • {service} - название сервиса, данные в отношении которого запрашиваются;

Метод

GET

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

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

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

Массив data состоит из объектов со следующими обязательными полями:

  • id - идентификатор события, целое число;
  • time - время начала события, строка в ISO-формате;
  • type - тип события, строка.

Возможные типы событий и дополнительные поля, индивидуальные для каждого типа:

  • url - недоступность страницы, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • num - количество городов, из которых данная страница недоступна.
  • latency - большая задержка ответа страницы у конкретного провайдера в конкретном городе, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • provider - провайдер, через которого наблюдается большая задержка;
    • place - город, в котором наблюдается большая задержка;
    • num - регистрируемое значение задержки, в секундах.
  • isp - проблемы у провайдера в городе (включается в случае если сервис является провайдером связи), дополнительные поля:

    • provider - провайдер, через которого наблюдается большое число недоступных страниц;
    • place - город, в котором это происходит;
    • num - количество недоступных через провайдера страниц.
  • complaints - всплеск жалоб пользователей, дополнительные поля:

    • service - название сервиса, на который жалуются;
    • num - количество жалоб за последние 15 минут.
  • function - перестала работать какая-то функция сервиса, дополнительные поля:

    • service - название сервиса;
    • function - название функции;
    • num - числовой идентификатор функции.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Unired/alerts' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "url", "url": "https://unired.uz", "service": "Unired", "place": "uz", "num": 31, "private": false }, { "id": 17350524134, "time": "2024-12-24T14:02:15.269713+00:00", "type": "latency", "provider": "Uztelecom", "place": "Ташкент", "url": "https://unired.uz", "service": "Unired", "num": 0.658, "private": false }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "latency", "provider": Ucell", "place": "Самарканд", "url": "https://unired.uz", "service": "Unired", "num": 1.256, "private": false }, { "id": 17350486902, "time": "2024-12-24T13:10:06.590936+00:00", "type": "latency", "provider": "Beeline Uzbekistan", "place": "Бухара", "url": "https://unired.uz", "service": "Unired", "num": 0.651, "private": false } ] }

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

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

Отфильтрованные события сервиса

Метод для получения текущих событий сервиса, превосходящих указанные в профиле пользователя пороги

URL

/api/v1/service/{service}/alerts/filtered

Подставляемое значение:

  • {service} - название сервиса, данные в отношении которого запрашиваются;

Метод

GET

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

Единственное отличие от метода /service/{service}/alerts состоит в том, что возвращаются не все текущие события сервиса, а только те, для которых значение дополнительного параметра num не меньше указанного в профиле пользователя порога для данного типа событий.

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

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

Массив data состоит из объектов со следующими обязательными полями:

  • id - идентификатор события, целое число;
  • time - время начала события, строка в ISO-формате;
  • type - тип события, строка.

Возможные типы событий и дополнительные поля, индивидуальные для каждого типа:

  • url - недоступность страницы, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • num - количество городов, из которых данная страница недоступна.
  • latency - большая задержка ответа страницы у конкретного провайдера в конкретном городе, дополнительные поля:

    • url - URL контролируемой страницы;
    • service - название сервиса, к которому отнесена страница;
    • provider - провайдер, через которого наблюдается большая задержка;
    • place - город, в котором наблюдается большая задержка;
    • num - регистрируемое значение задержки, в секундах.
  • isp - проблемы у провайдера в городе (включается в случае если сервис является провайдером связи), дополнительные поля:

    • provider - провайдер, через которого наблюдается большое число недоступных страниц;
    • place - город, в котором это происходит;
    • num - количество недоступных через провайдера страниц.
  • complaints - всплеск жалоб пользователей, дополнительные поля:

    • service - название сервиса, на который жалуются;
    • num - количество жалоб за последние 15 минут.
  • function - перестала работать какая-то функция сервиса, дополнительные поля:

    • service - название сервиса;
    • function - название функции;
    • num - числовой идентификатор функции.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Unired/alerts/filtered' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "url", "url": "https://unired.uz", "service": "Unired", "place": "uz", "num": 31, "private": false }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "latency", "provider": "Uztelekom", "place": "Ташкент", "url": "https://unired.uz", "service": "Unired", "num": 1.256, "private": false } ] }

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

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

Комментарии

Метод для получения списка комментариев пользователей в отношении сервиса за конкретный день

URL

/api/v1/service/{service}/comments/date/{date}

Подставляемые значения:

  • {service} - название сервиса, комментарии в отношении которого запрашиваются;
  • {date} - дата, должна иметь вид:
    • YYYY-MM-DD - для получения комментариев за указанный день;
    • today - для получения комментариев за последние 24 часа.

Метод

GET

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

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

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

Массив data состоит из объектов со следующими обязательными полями:

  • time - время комментария, строка в ISO-формате;
  • text - содержание комментария;
  • author - указанное имя автора, или null;
  • likes - количество "лайков" комментарию;
  • category - объект с информацией о категориях, к которым комментарий был отнесен системой.

Объект category состоит из пар ключ-значение, где в качестве ключа выступает одна из категорий, к которым был отнесен комментарий, а в качестве значения - массив названий подкатегорий данной категории, к которым он может быть отнесен.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Mygovuz/comments/date/2024-03-19' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "time": "2024-03-19T08:08:31.643480+03:00", "text": "портал интерактивных государственных услуг сбой", "author": "Алишер", "likes": 8, "category": { "Сбой сайта": [ "Не отрывается/не загружается/не работает сайт" ] } } ] }

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

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

Графики

Метод для получения данных, позволяющих строить графики, отражающие поведение сервиса в конкретный день

URL

/api/v1/service/{service}/graph/date/{date}

Подставляемые значения:

  • {service} - название сервиса, данные в отношении которого запрашиваются;
  • {date} - дата, должна иметь вид:
    • YYYY-MM-DD - для получения данных за указанный день;
    • today - для получения данных за последние 24 часа.

Метод

GET

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

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

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

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

  • latency - массив точек с измеренным временем ответа ресурсов сервиса (медиана за 5-минутный интервал);
  • errors - массив точек с измеренным количеством неудачных попыток подключения к ресурсам сервиса (сумма за 5-минутный интервал);
  • totals - массив точек с общим количеством (удачных и неудачных) попыток подключения к ресурсам сервиса (сумма за 5-минутный интервал);
  • social - массив точек с количеством жалоб пользователей на сервис (сумма за 5-минутный интервал);
  • social15 - то же что social, но сумма за 15-минутный интервал (соответствует выводимому на сайте на график по умолчанию);

Все вышеуказанные массивы состоят из двухэлементных массивов, которые следует интерпретировать как [время, значение], где время - это стандартный UNIX timestamp.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Mygovuz/graph/date/today' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": { "latency": [[1711289700, 186], [1711290000, 170]], "errors": [[1711290000, 3], [1711290300, 2]], "totals": [[1711290000, 8], [1711290300, 7]], "social": [[1711289700, 1], [1711290000, 1]] } }

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

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

Статистика

Метод для получения статистики по комментариям и жалобам на сервис

URL

/api/v1/service/{service}/stats/date/{date}

Подставляемые значения:

  • {service} - название сервиса, данные в отношении которого запрашиваются;
  • {date} - дата, должна иметь вид:
    • YYYY-MM - для получения данных за указанный месяц;
    • YYYY-MM-DD - для получения данных за указанный день;
    • today - для получения данных за последние 24 часа.

Метод

GET

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

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

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

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

  • regions - массив со статистикой жалоб по регионам, состоит из объектов со следующими полями:

    • region - название региона;
    • percent - процент жалоб, исходящий из данного региона (для регионов России нормировано на численность населения);
  • complaints - массив со статистикой комментариев по категориям, состоит из объектов со следующими полями:

    • complaint - категория, к которой отнесен комментарий;
    • percent - процент комментариев, приходящийся на данную категорию;
    • detailed - массив с деталировкой по подкатегориям, в свою очередь состоящий из объектов со следующими полями:
      • type - подкатегория;
      • percent - процент комментариев, от общего числа, приходящийся на данную подкатегорию;

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Mygovuz/stats/date/2024-03' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": { "regions": [ { "region": "Согдийская область", "percent": 80.76923076923077 }, { "region": "Хатлонская область", "percent": 3.8461538461538463 } ], "complaints": [ { "complaint": "Сбой сайта", "percent": 42.97520661157025, "detailed": [ { "type": "Не отрывается/не загружается/не работает сайт", "percent": 42.97520661157025 } ] }, { "complaint": "Сбой личного кабинета", "percent": 37.1900826446281, "detailed": [ { "type": "Не могу зайти в ЛК/аккаунт/приложение", "percent": 30.578512396694215 }, { "type": "Проблема с паролем/восстановлением аккаунта", "percent": 6.6115702479338845 } ] } ] } }

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

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

Таймлайн проблем

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

URL

/api/v1/service/{service}/problems/date/{date}

Подставляемые значения:

  • {service} - название сервиса, данные в отношении которого запрашиваются;
  • {date} - дата, должна иметь вид:
    • YYYY-MM - для получения данных за указанный месяц;
    • YYYY-MM-DD - для получения данных за указанный день;

Метод

GET

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

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

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

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

  • time - строковое представление времени (ISO-формат), используется часовой пояс Москвы;
  • errors - булево значение, флаг наличия факта недоступности ресурса сервиса из нескольких городов;
  • complaints - булево значение, флаг наличия всплеска жалоб на указанный момент.

Примечание

Метод неявным образом использует пороги, выставленные пользователем в профиле: для числа городов, недоступность из которых ресурса считается проблемной, и для количества жалоб за последние 15 минут, при которой всплеск жалоб считается проблемой.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Mygovuz/problems/date/2024-03-15' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ { "time": "2024-03-15 00:00+03:00", "errors": false, "complaints": false }, { "time": "2024-03-15 00:01+03:00", "errors": false, "complaints": false }, ... ] }

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

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

Статус

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

URL

/api/v1/service/{service}/status

Подставляемое значение:

  • {service} - название сервиса, данные в отношении которого запрашиваются;

Метод

GET

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

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

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

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

  • down - объект, ключами которого являются url, имеющие в настоящий момент статус недоступных, а соответствующими значениями - массивы названий городов, в которых фиксируется недоступность данного url;
  • social - если фиксируется всплеск жалоб на данный сервис, то число жалоб за последние 15 минут, иначе - false;
  • complaints - объект с информацией о распределении поступающих за последний час жалоб.

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

  • by_place - массив двухэлементных массивов, в каждом из которых первый элемент - название региона, а второй - процент поступивших жалоб;
  • by_isp - массив двухэлементных массивов, в каждом из которых первый элемент - название ISP, из сети которого поступили жалобы, а второй - процент поступивших жалоб.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Mygovuz/status' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": { "down": { "https://my.gov.uz": ["Алишер"] }, "social": false, "complaints": { "by_place": [ ["Согдийская область",80.3], ["Хатлонская область",5.3], ... ], "by_isp": [ ["Comnet ",20.0], ["Turon Telecom",20.0], ["Uztelecom",20.0], ... ] } } }

Ответ:

{ "success": true, "data": { "down": { "https://my.gov.uz": ["Алишер"] }, "social": 95, "complaints": { "by_place": [ ["Согдийская область",80.3], ["Хатлонская область",5.3], ... ], "by_isp": [ ["Comnet ",20.0], ["Turon Telecom",20.0], ["Uztelecom",20.0], ... ] } } }

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

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

URLs

Метод для получения списка страниц в мониторинге

URL

/api/v1/service/{service}/urls

Подставляемое значение:

  • {service} - название сервиса, данные в отношении которого запрашиваются;

Метод

GET

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

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

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

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/service/Mygovuz/urls' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": [ "https://my.gov.uz", ] }

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

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

Графики CDN

Метод для получения данных, позволяющих строить графики, отражающие параметры CDN конкретного провайдера за последнее время.

URL

/api/v1/cdn/{provider}/graph/{period}/{quantile}

Подставляемые значения:

  • {provider} - провайдер CDN, в отношении которой запрашиваются данные, может быть одним из следующих значений: cdnvideo, edgecenter, curator, megafon.
  • {period} - период времени, за который запрашиваются данные, может принимать следующие значения: hour (последний час), 6h (последние 6 часов), day (последние сутки), week (последняя неделя), month (последний месяц). Для просмотра данных за неделю и месяц требуется дополнительно право на просмотр данных CDN на большую глубину.
  • {quantile} - квантиль данных в каждой точке, может принимать следующие значения: P10 (10-й перцентиль), P25 (25-й перцентиль), P50 (медиана/50-й перцентиль), P75 (75-й перцентиль), P90 (90-й перцентиль), P95 (95-й перцентиль).

Метод

GET

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

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

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

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

  • rtt - время отклика (round-trip time);
  • ttfb-http и ttfb-https - время подключения (time to first byte) соответственно по протоколам HTTP и HTTPS;
  • down-cached и down-notcached - скорость загрузки конетента в сети, соответственно находящегося в кэше, и вне кэша;
  • avail-http и avail-https - доступность, т.е. процент успешно завершенных запросов, соответственно по протоколам HTTP и HTTPS.

В каждом из вышеуказанных полей возвращается массив, состоящий из двухэлементных массивов, которые следует интерпретировать как [время, значение], где время - это стандартный UNIX timestamp. Значения для параметров rtt и ttfb - в миллисекундах, для down - в мегабитах в секунду, для avail - в процентах.

Пример

Запрос:

curl --location 'https://detector404.uz/api/v1/cdn/cdnvideo/graph/6h/P50' \ --header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'

Ответ:

{ "success": true, "data": { "rtt": [[1762322100.0,7],[1762322400.0,7], ... ], "ttfb-https": [[1762322100.0,157], [1762322400.0,156], ... ], "ttfb-http": [[1762322100.0,120], [1762322400.0,121], ... ], "down-notcached": [[1762322100.0,4.2266845703125], [1762322400.0,4.20379638671875], ... ], "down-cached": [[1762322100.0,106.78863525390625], [1762322400.0,106.3690185546875], ... ], "avail-https": [[1762322700.0,99.71248876909254], [1762323000.0,99.70230121163407], ... ], "avail-http": [[1762322700.0,99.70950256057021], [1762323000.0,99.71426020180374], ... ] } }

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

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

Поиск информации об IP-адресе

Сервис предоставляет возможность бесплатно получать данные о географической принадлежности IP-адреса.

Аутентификация не требуется

Endpoint

https://geoip.detector404.uz

URL

/api/v1/ip/{ip}

Подставляемое значение:

  • {ip} - адрес IPv4, данные которого запрашиваются;

Метод

GET

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

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

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

Пример

Запрос:

curl --location 'https://geoip.detector404.uz/api/v1/ip/195.12.41.8'

Ответ:

{ "success": true, "data": { "ip_address": "195.12.41.8", "country": { "ccode": "ch", "country": "Швейцария", "isproxy": true, "issatellite": false, "location": "Обвальден, Энгельберг", "latitude": 46.8186, "longitude": 8.4387 }, "isp": { "ismobile": true, "isp": "GIB-Solutions", "org": "Tele alpin AG, CH-6390 Engelberg" } } }

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

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

© 2026, by admin@detector404.com
Политика конфиденциальности под защитой Curator logo