Detector404 DETECTOR404 детектор сбоев
Инструменты
HistoryBI GeoIP Список сенсоров
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