API для работы с Айри

Адрес API: https://xn--80aqc2a.xn--p1ai/my/site/api/

Описание S3 API для работы с хранилищем и простой PHP класс для работы с хранилищем.

Обязательные параметры

key — ваш ключ API, находится на странице Профиль в Личном кабинете.

domain — домен (без www и http), для которого нужно провести действия. Не обязателен при регистрации и пополнении баланса.

action — действие API, возможные варианты: add, delete, disable, dns.add, dns.delete, dns.get, enable, fill, flush, flush.html, flush.ha, flush.custom, flush.batch, get.availability, get.balance, get.bots, get.cache, get.domains, get.download, get.errors, get.guard, get.option, get.timings, get.visitors, get.rum, pay, register, set.option, set.options, test.start, test.check.

Пример: https://xn--80aqc2a.xn--p1ai/my/site/api/?key=0011123481faedba00011123481faedb&domain=xn--80aqc2a.xn--p1ai&action=flush

При отсутствии какого-либо обязательного параметра будет выдана ошибка.

Действия с видео-трансляциями

Обязательный параметр: stream — адрес (хэш) потока после добавления или название потока при добавлении.

Возможные варианты action: add, delete, disable, enable, get.streams, set.options.

Формат ответа

Все ответы выдаются в формате JSON. При какой-либо ошибке ответ будет {"error":"error_code"}, где error_code - мнемонический код ошибки (содержит информацию, что неправильно в запросе). Если запрос прошел успешно, то будет выдано {"success":"OK"} или JSON-массив с данными.

Регистрация в Айри (получение ключа API): action=register

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=register&email=my@mail.ru

Необходимо передать единственный обязательный GET-параметр email. Также возможно передать необязательные параметры password (пароль), phone (телефон), firstname (имя пользователя), lastname (фамилия пользователя). В случае отсутствия каких-либо обязательных параметров они будут заменены на значения по умолчанию.

При успешной регистрации пользователя будет получен ответ вида {"success":"d618cfdcabcddaa000cc12cb6958c878"}, где значение success — это ключ API для последующих запросов к Айри под созданным аккаунтом.

Добавление и удаление сайта: action=(add delete)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?key=0011123481faedba00011123481faedb&domain=xn--80aqc2a.xn--p1ai&action=add

При успешном действии домен будет добавлен в Айри (или удален из Айри) в течение 2 минут.

Установление настроек ускорения и защиты сайта: action=set.options

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=set.options&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb&clickfrog=1

Все правила ускорения и защиты сайта передаются в виде POST-данных в следующем формате (в квадратных скобках правила, далее со следующей строки пути на сайте для их применения, каждый с новой строки):

[rule1,rule2,rule3]
/section1/page1
/section2/
[rule3,rule4]
/sections3/

В качестве путей на сайте (URL) доступны специальные значения: * — весь сайт и / — только главная страница.

В качестве правил (rule) доступны все значения, задаваемые в правилах ускорения и защиты. В частности:

  • cache_flush — обновление кэша для заданного адреса раз в минуту (работает только для конкретного URL, не для папки или сайта целиком).
  • cache_flush_10 — обновление кэша для заданного адреса раз в 10 минут (работает аналогично предыдущему).
  • cache_flush_60 — обновление кэша для заданного адреса раз в час (работает аналогично предыдущему).
  • cache_flush_120 — обновление кэша для заданного адреса раз в 2 часа (работает аналогично предыдущему).
  • cache_no — отмена кэширования заданного адреса.
  • cache1 — кэширование заданного адреса на минуту.
  • cache2 — кэширование заданного адреса на 2 минуты.
  • cache3 — кэширование заданного адреса на 5 минут.
  • cache4 — кэширование заданного адреса на 10 минут.
  • cache5 — кэширование заданного адреса на 30 минут.
  • cache6 — кэширование заданного адреса на 1 час.
  • cache7 — кэширование заданного адреса на 2 часа.
  • cache8 — кэширование заданного адреса на 5 часов.
  • cache9 — кэширование заданного адреса на 10 часов.
  • cache0 — кэширование заданного адреса на сутки.

Дополнительно в GET-параметрах можно передать значения глобальных настроек сайта. Например:

  • origin — IP-адрес(а) хостинга сайта (с указанием протокола, при необходимости) через запятую. Например, https://127.0.0.1,https://127.0.0.2
  • blacklist — список IP адресов или подсетей для блокировки доступа к сайту, через запятую. Например, 127.0.0.1,192.168.0.*
  • clickfrog — блокировка фрода (при помощи ClickFrog): 0 (отключена) или 1 (включена).

Установление отдельных настроек сайта: action=set.{option}

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=set.blacklist&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb, POST: 127.0.0.1

Содержимое конкретной настройки передается в виде POST-данных без каких-либо разделителей.

В качестве {option} можно использовать blacklist, otigin. Список всех настроек Айри с примерами приведен выше.

Заполнение кэша: action=fill

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=fill&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb. POST-данные: /

Заполнение кэша выполняется в течение двух минут на всех узлах Айри после отправки запроса. Список страниц сайта для заполнения кэша нужно передавать в абсолютном виде: начинаются со /, без домена и протокола. Например, /about или /catalog.html. Каждая страница — с новой строки в POST-данных запроса.

Сброс кэша: action=flush.(html ha custom batch)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=flush&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb

Сброс кэша начинается в течение нескольких секунд на всех узлах Айри после отправки запроса. При большом числе адресов (или файлов в кэше) сброс кэша может занимать длительное время. Возможны варианты сброса кэша:

  • Полный сброс кэша сайта. Включает все страницы, все статические файлы, промежуточные файлы ускорения, кэш высокой доступности и файлы в обновляемом кэше. Активируется запросом action=flush.
  • Сброс только HTML-страниц. Полезно, когда сайт существенно обновляется. Активируется запросом action=flush.html.
  • Сброс кэша высокой доступности. Необходимо при существенном обновлении сайта наряду со сбросом кэша всех страниц. Активируется запросом action=flush.ha.
  • Сброс кэша отдельных страниц. Работает как для страниц, так и для отдельных файлов. Удаляет запрошенные страницы/файлы из всех кэшей Айри. Активируется запросом action=flush.custom. Дополнительно в POST-параметре pages необходимо указать набор страниц (адресов, можно как через http, так и абсолютные от корня сайта), кэш которых нужно сбросить. Несколько страниц нужно указывать через символ перевода строки: \n.
    Сброс кэша всегда идет по маске, применяется * в конце указанных URL. Например, при указании /catalog/ в URL будут сброшены все страницы по маске /catalog/*. Исключением является главная страница (/), при указании / в списке страниц будет сброшена только главная страница (не все страницы сайта).
  • Скоростной сброс кэша. Доступен с тарифного плана Юпитер. Удаляет только записи в кэше файлов (не страниц, не SEO, не высокой доступности). Активируется запросом action=flush.batch. Дополнительно в POST-параметре pages необходимо передать полный список файлов (абсолютных адресов от корня сайта), кэш которых нужно сбросить. Файлы разделяются переводом строки: \n. Сбрасывается кэш только строго указанных файлов (адресов), не по маске. Для сброса кэша по маске нужно использовать метод flush.custom.

Включение и отключение: action=(enable disable)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=enable&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb

Включение или отключение сайта от Айри производится на уровне DNS. При отключении все запросы начинают отправляться напрямую на хостинг, без ускорения и защиты Айри. При включении сайта все запросы начинают проходить через облако Айри.

Получение настроек сайта: action=get.option.(airee availability cache cache_flush cache_query charset dev image monitor origin pagespeed pass_useragent redirect secure security shard static whitelist www)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=get.option.origin&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb

Возможно получение следующих настроек сайта:

  • Подключен ли сайт к Айри: action=get.option.airee.
  • Уровень доступности: action=get.option.availability.
  • Срок кэширования HTML-страниц (в минутах): action=get.option.cache.
  • Последний сброс кэша: action=get.option.cache_flush.
  • Кэширование со строкой запроса: action=get.option.cache_query.
  • Кодировка сайта: action=get.option.charset.
  • Поддомен для разработки: action=get.option.dev.
  • Уровень оптимизации изображений: action=get.option.image.
  • Частота мониторинга доступности: action=get.option.monitor.
  • IP-адрес(а) хостинга: action=get.option.origin.
  • Уровень ускорения: action=get.option.pagespeed.
  • Передавать User Agent ботов: action=get.option.pass_useragent.
  • Домен для редиректа: action=get.option.redirect.
  • SSL для домена: action=get.option.secure.
  • Уровень безопасности: action=get.option.security.
  • Локация Айри: action=get.option.shard.
  • Срок кэширования файлов: action=get.option.static.
  • Белый список IP-адресов: action=get.option.whitelist.
  • www — основное зеркало: action=get.option.www.

Добавление, удаление и получение DNS записей: action=dns.(add delete get)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=dns.add&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb&name=@&type=TXT&value=TEST

Для добавления и удаления записей запросы требуют дополнительно 3 обязательных параметра: name — (под)домен, для которого требуется установить запись (@ для корневого домена), type — тип записи (поддерживаются A, AAAA, CNAME, TXT, SRV, MX, NS), value — значение записи (без кавычек). При отсутствии какого-либо обязательного параметра будет выведена ошибка. При некорректных значениях параметров будет выведена ошибка (запись не сохранится в зоне). При добавлении CNAME для уже существующего домена запись будет замещена (для избежания дублирования CNAME).

Дополнительно можно задать priority для MX записи. При удалении (action=dns.delete) будет найдена запись с заданными значениями name, type и value и удалена из зоны домена.

Запрос action=dns.get возвращает массив DNS записей для заданного домена в формате: [{"subdomain":"", "type":"", "priority":"", "value":""}]

Получение данных: action=get.(availability balance bots cache domains download errors guard timings visitors)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=get.timings&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb

  • Баланс аккаунта (action=get.balance). Текущая сумма на балансе (в рублях). Параметр domain не обязателен.
  • Домены на аккаунте (action=get.domains). Список доменов, добавленных пользователем, включает статус (отрицательный — домен удален, 0 — домен отключен и 1 — домен включен в Айри), домен (без www) и дату добавления в Айри.

Статистика по сайту выдается за предыдущий день (начиная с 6 часов утра по UTC). Виды статистики:

  • Доступность сайта (action=get.availability). Выдает (в процентах) доступность сайта и доступность хостинга.
  • Поисковые роботы (action=get.bots). Включает количество заходов всех популярныъ поисковых роботов: Google, Yandex, Mail.Ru, Sputnik, Yahoo, Bing, Rambler.
  • Кэш сайта (action=get.cache). Выдает размер кэша сайта по всем узлам Айри в Мб.
  • Трафик сайта (action=get.download). Выдает размер трафика сайта по всем узлам Айри в Мб.
  • Ошибки сайта (action=get.errors). Выдает количество 5xx, 4xx ошибок, а также отказов пользователей от загрузки сайта.
  • Отраженные атаки (action=get.guard). Выдает количество заблокированных запросов к сайту.
  • Время загрузки сайта (action=get.timings). Включает время редиректов, время DNS-запроса, время установления соединения, время SSL-подключения, время ожидания ответа от сервера, время загрузки данных, время отрисовки (DOMready) и время полной загрузки (onload).
  • Пользователи из поиска (action=get.visitors). Включает количество открытий страниц сайта пользователями из поисковой выдачи Google, Yandex, Mail.Ru, Sputnik, Yahoo, Bing, Rambler.

Получение статистики по скорости сайта: action=get.rum

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=get.rum&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb&start=2021-01-01&end=2021-12-31

Параметры start и end являются необязательными. По умолчанию, выдается статистика за последние 30 дней, включая текущий.

Формат ответа:

{
	"rum_overall":
	{
		"timestamp1":
		{
			"dns": "0",
			"connect": "0",
			"request": "1",
			"server": "1",
			"data": "1",
			"dom": "2",
			"domready": "0",
			"domload": "1",
			"onload": "3",
			"finish": "0"
		},
		...
	},
	...
}
  • dns — время отправки DNS-запроса
  • connect — время установки соединения (включая SSL/TLS)
  • request — время отправки HTTP-запроса
  • server — время ожидания ответа от сервера
  • data — время получения данных (HTML-кода страницы)
  • dom — время подготовки документа к отрисовке
  • domready — время отрисовки документа
  • domload — время обработки события DOMready
  • onload — время окончания загрузки страницы
  • finish — время обработки события onload

Тестирование времени загрузки сайта: action=test.(start check)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=test.start&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb

Для начала тестирования скорости необходимо передать GET-параметр domain и action=test.start. Запрос вернет ID теста скорости, который нужно использовать в action=test.check.

Для получения результатов тестирования используется action=test.check и GET-параметр id, полученный при начале тестирования. Результат либо будет ошибкой (если время загрузки еще не вычислилось), либо содержать данные о времени ответа сервера и времени загрузки сайта из 5 точек — Москвы, Санкт-Петербурга, Екатеринбурга, Владивостока и Амстердама.

Все результаты проверки для каждого домена кэшируются на сутки.

Тестирование доступности сайта по спискам Роскомнадзора: action=testav.(start check)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=testav.start&domain=xn--80aqc2a.xn--p1ai&key=0011123481faedba00011123481faedb

Для начала тестирования доступности необходимо передать GET-параметр domain и action=test.start. Запрос вернет ID теста, который нужно использовать в action=testav.check.

Для получения результатов тестирования используется action=testav.check и GET-параметр id, полученный при начале тестирования. Результат либо будет ошибкой (если время загрузки еще не вычислилось), либо содержать данные о заблокированных ресурсах (включая сам домен, если он тоже блокируется по IP) в JSON-формате: {success:{resources_blocked:[]}}.

Все результаты проверки для каждого домена кэшируются на час.

Пополнение баланса: action=pay

lang — язык (валюта) пополнения. Возможные значения: ru (RUB), en (USD).

sum — сумма пополнения в валюте пополнения. Например: 100.

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?key=0011123481faedba00011123481faedb&action=pay&sum=100&lang=ru

При успешном действии будет выполнена переадресация на сайт платежного шлюза с заданной суммой к оплате.

Работа с видео-трансляциями

При создании трансляции возвращается ее уникальный хэш (HASH), 32 символа, который нужно использовать как часть адреса при получении потоков трансляции.

Видео-плеер со всеми HLS-потоками трансляции находится по адресу http(s)://live.airee.cloud/live/HASH, плеер с DASH-потоками (при активации) находятся по адресу http(s)://live.airee.cloud/dash/HASH.

Стандартный HLS видео-поток всегда находится по адресу http(s)://live.airee.cloud/live/HASH_hi/index.m3u8. По адресу http(s)://live.airee.cloud/live/HASH.m3u8 находится дайджест возможных разрешений (ABR) потока, включая вариации _low и _mid (доступны при включении адаптивного битрейта в настройках).

Добавление и удаление трансляции: action=(add delete)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?key=0011123481faedba00011123481faedb&stream=Трансляция&action=add

При успешном действии трансляция будет добавлена в Айри (или удалена из Айри) в течение 2 минут. Внимание! После добавления трансляции ее нужно включить (при добавлении трансляции не включатся автоматически).

При добавлении (add) трансляции в параметре stream передается заголовок (title) трансляции, при удалении — ключ (хэш).

Включение и отключение трансляции: action=(enable disable)

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=enable&stream=1011123481faedba00011123481faedb&key=0011123481faedba00011123481faedb

Включение или отключение видео-трансляции в Айри. При отключении внешний адрес трансляции отключается (будет возвращать 404 ошибку). При включении трансляции она становится доступна по публичному адресу через 2 минуты.

Установление настроек видео-трансляции: action=set.options

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=set.options&stream=1011123481faedba00011123481faedb&key=0011123481faedba00011123481faedb&дщсфешщт=1

В GET-параметрах можно передать значения настроек трансляции. Например:

  • source — RTSP-адрес IP-камеры для входящего потока (должен начинаться с rtsp://).
  • title — название трансляции (используется в Личном кабинете Айри и для ретрансляции).
  • location — RTMP-узел для приема входящего потока live-трансляции (для дальнейшей рентрансляции через CDN или в социальные сети).

Получение данных: action=get.streams

Пример запроса: https://xn--80aqc2a.xn--p1ai/my/site/api/?action=get.streams&key=0011123481faedba00011123481faedb

  • Трансляции на аккаунте (action=get.streams). Список трансляций, добавленных пользователем, включает статус (отрицательный — трансляция удалена, 0 — трансляция отключена и 1 — трансляция включена в Айри).

Получите больше скорости! Подключите сайт к Айри

Если доступность сайта снизится — мы вернем вам деньги!