Аутентификация
Для того, чтобы воспользоваться API необходимо иметь действующий аккаунт в системе и токен авторизации. Токен авторизации можно сгенерировать в личном профиле в пункте «API».
Использование сгенерированного токена
Сгенерированный токен должен передаваться в HTTP-заголовке Authorization во всех API-запросах.
Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU
Пример запроса на получение активных событий при помощи утилиты curl (подставьте свой токен):
curl --location 'https://cdnmon.net/api/v1/cdn' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Список сенсоров
Метод для получения списка сенсоров, с которых DownDetector осуществляет мониторинг CDN, со всеми дополнительными характеристиками
URL
/api/v1/sensors
Метод
GET
Описание возвращаемых данных
Метод возвращает JSON-массив, состоящий из объектов со следующими полями:
Пример
Запрос:
curl --location 'https://cdnmon.net/api/v1/sensors' \
--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 } ]
Список CDN под мониторингом
Медод для получения списка CDN, находящихся под мониторингом. Позволяет получить внутренние идентификаторы каждой CDN для осуществления прочих запросов API.
URL
/api/v1/cdn
Метод
GET
Описание возвращаемых данных
Метод возвращает JSON-массив, состоящий из объектов со следующими полями:
Пример
Запрос:
curl --location 'https://cdnmon.net/api/v1/cdn' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Ответ:
[ { "id": "cdnvideo", "name": "CDNvideo", }, { "id": "curator", "name": "Curator", }, { "id": "edgecenter", "name": "EdgeЦентр", } ]
Графики CDN
Метод для получения данных, позволяющих строить графики, отражающие параметры CDN конкретного провайдера за последнее время.
URL
/api/v1/graph/{provider}/{period}/{quantile}
Подставляемые значения:
Метод
GET
Описание возвращаемых данных
Метод возвращает JSON-объект со следующими полями:
Объект data имеет следующие поля:
В каждом из вышеуказанных полей возвращается массив, состоящий из двухэлементных массивов, которые следует интерпретировать как [время, значение], где время - это стандартный UNIX timestamp. Значения для параметров rtt и ttfb - в миллисекундах, для down - в мегабитах в секунду, для avail - в процентах.
Пример
Запрос:
curl --location 'https://cdnmon.net/api/v1/graph/cdnvideo/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": "Произошла ошибка при выполнении запроса, проверьте параметры" }