Skip to main content

Документация модуля skydns_website.api.subscription (API Подписки)

Набор представлений для методов Subscription API v 1.9.

skydns_website.api.subscription.views.activate_user(provider, data)
Активировать пользователя провайдера.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя
Результат:
skydns_website.api.subscription.views.add_ip(provider,user,profile,data)
Метод добавляет один или несколько статических адресов без замены.

Если при этом адрес находится на другом профиле этого же пользователя, то происходит его перепривязка к указанному профилю. Если адрес привязан к профилю другого пользователя, то выдается ошибка для этого или нескольких адресов. Добавление других адресов в наборе происходит без ошибки.

Параметр comment который будет применен ко всем ip

Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя
  • ip - один или несколько IP адресов

Необязательные параметры:

Параметры:
  • profile - числовой id профиля
  • comment - комментарий к ip
Результат:
skydns_website.api.subscription.views.add_vpn(provider,data)
Метод пытается создать сертификат vpn-соединения.

Возможные ошибки:

  • при попытке создать для пользователя впн-соединение с именем уже использующимся в его впн-соединениях
  • при попытке создать впн-соединений больше определённого для пользователя планфичей vpn
  • при попытке создать соединение на несуществующий или принадлежащий другому пользователю профиль(по profile_id)
  • при попытке реселлера создать соединение не своему пользователю
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя
  • name - название vpn
  • profile_id - идентификатор профиля пользователя
Результат:

{‘ovpn’: vpn.ovpn()}

skydns_website.api.subscription.views.clear_ip(provider,data)
Метод очищает все адреса привязанные к профилю.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя
  • profile - числовой id профиля
Результат:
skydns_website.api.subscription.views.clear_vpn_for_profile(provider,data)
Метод удаляет все vpn-соединения для профиля пользователя
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • profile_id - идентификатор профиля пользователя
Результат:
skydns_website.api.subscription.views.clear_vpn_for_user(provider,data>)
Метод удаляет все vpn соединения пользователя
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - логин пользователя, для которого нужно удалить vpn соединения
Результат:
skydns_website.api.subscription.views.create_profile(provider,data)
Метод создает профиль пользователю.
Параметры:
  • provider - провайдер
  • ident - логин пользователя
  • name - имя профиля
  • tls - использовать ли TLS
  • blockpage_id - id страницы блокировки
skydns_website.api.subscription.views.deactivate_user(provider,data)
Деактивировать пользователя провайдера.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя
Результат:
skydns_website.api.subscription.views.get_active_users(provider,data)
Метод возвращает список активных пользователей реселлера и их тарифы.
Результат: список активных пользователей:
[
{‘username’: ‘username1’, ‘plan_name’: ‘plan name’}, {‘username’: ‘username2’, ‘plan_name’: ‘plan name’}, ... 
]
skydns_website.api.subscription.views.get_activity(provider,data)

Информация об активности пользователя за определенную дату. В зависимости от настроек реселлера возвращается старая статистика или аналитика.

Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя, для которого необходимо получить информацию.

Необязательные параметры:

Параметры:
  • date - дата, за которую необходимо получить отчет о действиях пользователя в формате YYYY-MM-DD.
  • profile_id - идентификатор профиля пользователя, для которого запрашивается отчет
Результат: {“requests”: “2600”, “blocks”: “581”}
skydns_website.api.subscription.views.get_activity_report(provider,data)
Отчет об активности пользователя за определенный период времени.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя, для которого необходимо получить информацию.
  • start - дата начала периода для получения статистики в формате YYYY-MM-DD.
  • end - дата окончания периода для получения статистики в формате YYYY-MM-DD.

Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается отчет

Результат: словарь вида:
{
   “labels”: [
      “2016-06-29 14:00:00”, “2016-06-29 15:00:00”,

   ], “datasets”: [
      {“label”: “Requests”, “data”: [375, 275]}, {“label”: “Blocks”, “data”: [13, 0]}
   ]
}
skydns_website.api.subscription.views.get_category_report(provider,data)
Отчет по категориям пользователя за определенный период времени.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя, для которого необходимо получить информацию.
  • start - дата начала периода для получения статистики в формате YYYY-MM-DD.
  • end - дата окончания периода для получения статистики в формате YYYY-MM-DD.

Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается отчет

Результат: словарь вида:
{
“Movies & Video”: “5”, “File Storage”: “2”, “Home & Family”: “3”
}
skydns_website.api.subscription.views.get_daily_stat(provider,data)
Возвращает реселлеру статистику за день для указанного пользователя
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • date - день, за который требуется статистика
  • ident - пользователь, чья статистика требуется

Необязательные параметры:

Параметры:
  • email_to - адрес, на который необходимо отправить ссылку со статистикой
  • profile_id - id профиля пользователя для которого запрашивается статистика
Return file_url:

ссылка на файл, содержащий статистику

Отчет содержит следующие столбцы: “Timestamp”, “Domain name”, “Visits”, “Blocks”, “Categories”, “Profile”, “Username”, “User’s timestamp”.

skydns_website.api.subscription.views.get_list_activity_report(provider,data)
Отчет об активности пользователя за определенный период времени.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя, для которого необходимо получить информацию (в запросе может быть несколько).
  • start - дата начала периода для получения статистики в формате YYYY-MM-DD.
  • end - дата окончания периода для получения статистики в формате YYYY-MM-DD.
Результат: словарь вида:
{
   “2019-08-01”: {
      “username”: {
         “visits”: 262972530, “blocks”: 567080
      },....
   },....
}
skydns_website.api.subscription.views.get_popular_report(provider,data)
Отчет о популярных запросах пользователя за определенный период времени.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя, для которого необходимо получить информацию.
  • start - дата начала периода для получения статистики в формате YYYY-MM-DD.
  • end - дата окончания периода для получения статистики в формате YYYY-MM-DD.

Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается отчет

Результат: словарь вида:
{
   “labels”: [“example.com”, “google.com”, “asdfg.com”], “datasets”: [

      {“label”: “Requests”, “data”: [630, 474, 290]}, {“label”: “NXdomain”, “data”: [0, 0, 290]}, 
      {“label”: “Blocks”, “data”: [630, 0, 0]}

   ]

}
skydns_website.api.subscription.views.get_vpn_list(provider,data)
Метод для получения списка vpn соединений пользователя
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - логин пользователя, для которого нужно вернуть список vpn соединений
Результат:

список vpn соединений пользователя

skydns_website.api.subscription.views.list_ip(provider,data)
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя

Необязательный параметр: :param profile: числовой id профиля

Результат: все IP адреса привязанные к профилю
skydns_website.api.subscription.views.method_not_found(*args,**kwargs)
Метод-пустышка-заглушка.

Нужен, чтобы, согласно спецификации jsonrpc, отдавать удобочитаемую ошибку. Ответ полностью соответствует спецификации: https://www.jsonrpc.org/specification.

skydns_website.api.subscription.views.profiles(provider,data)
Метод возвращает список активных профилей пользователя.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - логин пользователя, для которого нужно получить писок профилей
Return dict: список профилей в формате как пример ниже
{
   70749: u’Основной’, 93773: u’ДхтСкий’,
}
skydns_website.api.subscription.views.prolongate(provider,data)

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

Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя

Необязательный параметр: :param plan: код тарифного плана

Результат:
skydns_website.api.subscription.views.remove_ip(provider,data)
Удаление IP адреса пользователя.
Параметры:
  • provider - параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident - login пользователя
  • ip - IP адрес пользователя
Результат:
skydns_website.api.subscription.views.remove_vpn(provider, data)
Метод для удаления vpn соединения пользователя
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • id – id vpn соединения
Результат:
send_monthly_stat(provider, data)
Отправка статистики за месяц пользователю по электронной почте.
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident – login пользователя,
  • year – год в формате YYYY,
  • month – месяц в формате MM, за который необходимо сформировать отчет,

Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается статистика.

Отчет содержит следующие столбцы: “Timestamp”, “Domain name”, “Visits”, “Blocks”, “Profile”, “Categories”.

skydns_website.api.subscription.views.subscribe(provider, data)
Регистрация пользователя в системе с переданными реквизитами и установка тарифа по умолчанию.
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • password – пароль пользователя

Необязательные параметры:

Параметры:
  • login – login пользователя
  • email – адрес электронной почты пользователя
  • customer –
Результат:


skydns_website.api.subscription.views.subscribe_plans(provider, data)
Метод возвращает список доступных тарифов, назначаемых при создании/изменении карточки пользователя.
Параметры: provider – параметр нормализуется из ApiKey декоратором authenticate_provider
skydns_website.api.subscription.views.subscription_info(provider, data)
Информация о подписке. На текущий момент возвращает наступила ли дата окончания подписки.
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident – login пользователя
Результат:

{‘date_end’: true|false}

skydns_website.api.subscription.views.unsubscribe(provider, data)
Отключение пользователя. Пользователь переключается на бесплатный тариф.
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident – login пользователя
Результат:


skydns_website.api.subscription.views.update_email(provider, data)
Изменение email пользователя для восстановления пароля и информационных сообщений.
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident – login пользователя
  • email – новый email пользователя
Результат:


skydns_website.api.subscription.views.update_ip(provider, data)
Создать или обновить динамический IP адрес пользователя и привязать его к необходимому профилю фильтрации.
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident – login пользователя
  • ip – новый динамический IP адрес пользователя

Необязательные параметры:

Параметры:
  • hostname – для привязки ip к hostname
  • profile – числовой id профиля к которому необходимо привязать IP адрес
Результат:


skydns_website.api.subscription.views.update_nat(provider, data)
Метод для добавления или обновления привязки профиля пользователя реселлера к одному из NAT DNS
Параметры:
  • profile_id – id профиля пользователя.
  • address – IP адрес нашего DNS(anycast-address).
Результат:

None

skydns_website.api.subscription.views.update_password(provider, data)
Обновление пароля пользователя.
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • ident – login пользователя
  • password – новый пароль пользователя
Результат:


skydns_website.api.subscription.views.update_profile(provider, data)
Метод для изменения параметров профиля пользователя реселлера
Параметры:
  • provider – параметр нормализуется из ApiKey декоратором authenticate_provider
  • profile_id – id профиля пользователя

Необязательные параметры:

Параметры:
  • name – новое имя профиля пользователя
  • tls – булево значение для установки профилю, будет ли использоваться TLS.
Результат:

{‘id’: profile_id, ‘name’: profile_name, ‘tls’: true|false}


Метод для получения списка всех пользователей реселлера
Параметры:
  • key

Пример запроса: curl "https://www.skydns.ru/provider_api/users?key=<api_key>"

Результат:

{
    "jsonrpc": "1.9", 
    "status": "ok", 
    "data": [{"is_active": true, "username": "kok_000001", "date_end": "", "plan": "Бизнес"}, {"is_active": false, "username": "test2", "date_end": "", "plan": "Школа"}, {"is_active": true, "username": "test3", "date_end": "2025-05-01T00:00:00", "plan": "Домашний"}], 
    "result": [{"is_active": true, "username": "kok_000001", "date_end": "", "plan": "Бизнес"}, {"is_active": false, "username": "test2", "date_end": "", "plan": "Школа"}, {"is_active": true, "username": "test3", "date_end": "2025-05-01T00:00:00", "plan": "Домашний"}]
}

Метод для получения установленных категорий фильтрации на профиле
Параметры:
  • key
  • profile_id

Возможные ошибки:

  • не передан profile_id - profile_id param required
  • пользователь с profile_id не принадлежит реселлеру - Wrong provider

Пример запроса: curl "https://www.skydns.ru/provider_api/categories?key=<api_key>&profile_id=<profile_id>"
Результат:

{
    "status": "ok", 
    "data": {"block_unknown_sites": true, "categories": [64, 68], "safe_search_enabled": false, "safe_youtube_enabled": true, "white_list_only": false}, 
    "result": {"block_unknown_sites": true, "categories": [64, 68], "safe_search_enabled": false, "safe_youtube_enabled": true, "white_list_only": false}, 
    "jsonrpc": "1.9"
}


Метод для установки категорий фильтрации на профиль
Параметры:
  • key
  • profile_id

Необязательные параметры:

Параметры:
  • cat (multiple param)
  • safe_youtube_enabled
  • block_unknown_sites
  • safe_search_enabled
  • white_list_only – для привязки ip к hostname

Возможные ошибки:

  • не передан profile_id - profile_id param required
  • пользователь с profile_id не принадлежит реселлеру - Wrong provider
  • передача white_list_only с выключенной фичей white_list_mode - white_list_only param is not available for this user
  • невалидные значения cat (не преобразуются к инту) - Invalid cats
  • значения cat не могут быть установлены этому пользователя по его тарифному плану либо таких категорий не существует - Invalid cats
  • переданы невалидные значения safe_youtube_enabled/block_unknown_sites/safe_search_enabled/white_list_only - safe_youtube_enabled/block_unknown_sites/safe_search_enabled/white_list_only param must be True or False

Пример запроса: curl "https://www.skydns.ru/provider_api/set_categories?key=<api_key>&profile_id=<profile_id>&cat=<cat_id1>&cat=<cat_id2>&block_unknown_sites=<true|false>&safe_search_enabled=<true|false>&safe_youtube_enabled=<true|false>&white_list_only=<true|false>"

Результат:

{
    "status": "ok", 
    "jsonrpc": "1.9", 
    "data": {"safe_search_enabled": false, "white_list_only": false, "block_unknown_sites": true, "safe_youtube_enabled": true, "categories": [64, 68]}, 
    "result": {"safe_search_enabled": false, "white_list_only": false, "block_unknown_sites": true, "safe_youtube_enabled": true, "categories": [64, 68]}
}