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

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

```
skydns_website.api.subscription.views.activate_user(provider, data)
```

##### Активировать пользователя провайдера.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider-"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя

</td></tr><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.add_ip(provider,user,profile,data)
```

##### Метод добавляет один или несколько статических адресов без замены.

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

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--0"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя
- **ip** - один или несколько IP адресов

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-profile--"><tbody><tr><th>Параметры:</th><td>- **profile** - числовой id профиля
- **comment** - комментарий к ip

</td></tr><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.add_vpn(provider,data)
```

##### Метод пытается создать сертификат vpn-соединения.

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

- при попытке создать для пользователя впн-соединение с именем уже использующимся в его впн-соединениях
- при попытке создать впн-соединений больше определённого для пользователя планфичей vpn
- при попытке создать соединение на несуществующий или принадлежащий другому пользователю профиль(по profile\_id)
- при попытке реселлера создать соединение не своему пользователю

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--1"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя
- **name** - название vpn
- **profile\_id** - идентификатор профиля пользователя

</td></tr><tr><th>Результат:</th><td>{‘ovpn’: vpn.ovpn()}

</td></tr></tbody></table>

```
skydns_website.api.subscription.views.clear_ip(provider,data)
```

##### Метод очищает все адреса привязанные к профилю.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--2"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя
- **profile** - числовой id профиля

</td></tr><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.clear_vpn_for_profile(provider,data)
```

##### Метод удаляет все vpn-соединения для профиля пользователя

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--3"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **profile\_id** - идентификатор профиля пользователя

</td></tr><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.clear_vpn_for_user(provider,data>)
```

##### Метод удаляет все vpn соединения пользователя

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--4"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - логин пользователя, для которого нужно удалить vpn соединения

</td></tr><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.create_profile(provider,data)
```

##### Метод создает профиль пользователю.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--5"><tbody><tr><th>Параметры:</th><td>- **provider** - провайдер
- **ident** - логин пользователя
- **name** - имя профиля
- **tls** - использовать ли TLS
- **blockpage\_id** - id страницы блокировки

</td></tr></tbody></table>

```
skydns_website.api.subscription.views.deactivate_user(provider,data)
```

##### Деактивировать пользователя провайдера.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--6"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя

</td></tr><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.get_active_users(provider,data)
```

##### Метод возвращает список активных пользователей реселлера и их тарифы.

<table id="bkmrk-%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%3A-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B0%D0%BA"><tbody><tr><th>Результат:</th><td>список активных пользователей:</td></tr></tbody></table>

```
[
{‘username’: ‘username1’, ‘plan_name’: ‘plan name’}, {‘username’: ‘username2’, ‘plan_name’: ‘plan name’}, ... 
]
```

```
skydns_website.api.subscription.views.get_activity(provider,data)
```

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--7"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя, для которого необходимо получить информацию.

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-date---%D0%B4%D0%B0"><tbody><tr><th>Параметры:</th><td>- **date** - дата, за которую необходимо получить отчет о действиях пользователя в формате YYYY-MM-DD.
- **profile\_id** - идентификатор профиля пользователя, для которого запрашивается отчет

</td></tr><tr><th>Результат:</th><td>`{“requests”: “2600”, “blocks”: “581”}`</td></tr></tbody></table>

```
skydns_website.api.subscription.views.get_activity_report(provider,data)
```

##### Отчет об активности пользователя за определенный период времени.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--8"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя, для которого необходимо получить информацию.
- **start** - дата начала периода для получения статистики в формате YYYY-MM-DD.
- **end** - дата окончания периода для получения статистики в формате YYYY-MM-DD.

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%3A-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C-%D0%B2"><tbody><tr><th>Результат:</th><td>словарь вида:</td></tr></tbody></table>

```
{
   “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)
```

##### Отчет по категориям пользователя за определенный период времени.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--9"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя, для которого необходимо получить информацию.
- **start** - дата начала периода для получения статистики в формате YYYY-MM-DD.
- **end** - дата окончания периода для получения статистики в формате YYYY-MM-DD.

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%3A-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C-%D0%B2-0"><tbody><tr><th>Результат:</th><td>словарь вида:</td></tr></tbody></table>

```
{
“Movies & Video”: “5”, “File Storage”: “2”, “Home & Family”: “3”
}
```

```
skydns_website.api.subscription.views.get_daily_stat(provider,data)
```

##### Возвращает реселлеру статистику за день для указанного пользователя

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--10"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **date** - день, за который требуется статистика
- **ident** - пользователь, чья статистика требуется

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-email_to-"><tbody><tr><th>Параметры:</th><td>- **email\_to** - адрес, на который необходимо отправить ссылку со статистикой
- **profile\_id** - id профиля пользователя для которого запрашивается статистика

</td></tr><tr><th colspan="2">Return file\_url:</th></tr><tr><td>  
</td><td>ссылка на файл, содержащий статистику

</td></tr></tbody></table>

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

```
skydns_website.api.subscription.views.get_list_activity_report(provider,data)
```

##### Отчет об активности пользователя за определенный период времени.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--11"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя, для которого необходимо получить информацию (в запросе может быть несколько).
- **start** - дата начала периода для получения статистики в формате YYYY-MM-DD.
- **end** - дата окончания периода для получения статистики в формате YYYY-MM-DD.

</td></tr><tr><th>Результат:</th><td>словарь вида:</td></tr></tbody></table>

```
{
   “2019-08-01”: {
      “username”: {
         “visits”: 262972530, “blocks”: 567080
      },....
   },....
}
```

```
skydns_website.api.subscription.views.get_popular_report(provider,data)
```

##### Отчет о популярных запросах пользователя за определенный период времени.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--12"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя, для которого необходимо получить информацию.
- **start** - дата начала периода для получения статистики в формате YYYY-MM-DD.
- **end** - дата окончания периода для получения статистики в формате YYYY-MM-DD.

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%3A-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C-%D0%B2-1"><tbody><tr><th>Результат:</th><td>словарь вида:</td></tr></tbody></table>

```
{
   “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 соединений пользователя

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--13"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - логин пользователя, для которого нужно вернуть список vpn соединений

</td></tr><tr><th>Результат:</th><td>список vpn соединений пользователя

</td></tr></tbody></table>

```
skydns_website.api.subscription.views.list_ip(provider,data)
```

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--14"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%3A-%D0%B2%D1%81%D0%B5-ip-%D0%B0%D0%B4"><tbody><tr><th>Результат:</th><td>все IP адреса привязанные к профилю</td></tr></tbody></table>

```
skydns_website.api.subscription.views.method_not_found(*args,**kwargs)
```

##### Метод-пустышка-заглушка.

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

```
skydns_website.api.subscription.views.profiles(provider,data)
```

##### Метод возвращает список активных профилей пользователя.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--15"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - логин пользователя, для которого нужно получить писок профилей

</td></tr><tr><th>Return dict:</th><td>список профилей в формате как пример ниже ```
{
   70749: u’Основной’, 93773: u’ДхтСкий’,
}
```

</td></tr></tbody></table>

```
skydns_website.api.subscription.views.prolongate(provider,data)
```

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--16"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%3A"><tbody><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.remove_ip(provider,data)
```

##### Удаление IP адреса пользователя.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider--17"><tbody><tr><th>Параметры:</th><td>- **provider** - параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** - login пользователя
- **ip** - IP адрес пользователя

</td></tr><tr><th>Результат:</th><td>  
</td></tr></tbody></table>

```
skydns_website.api.subscription.views.remove_vpn(provider, data)
```

##### Метод для удаления vpn соединения пользователя

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **id** – id vpn соединения

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body">  
</td></tr></tbody></table>

```
send_monthly_stat(provider, data)
```

##### Отправка статистики за месяц пользователю по электронной почте.

<table class="docutils field-list" frame="void" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-0" rules="none"><colgroup><col class="field-name"></col><col class="field-body"></col></colgroup><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** – login пользователя,
- **year** – год в формате YYYY,
- **month** – месяц в формате MM, за который необходимо сформировать отчет,

</td></tr></tbody></table>

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

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

```
skydns_website.api.subscription.views.subscribe(<em>provider</em>, data)
```

##### Регистрация пользователя в системе с переданными реквизитами и установка тарифа по умолчанию.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-1"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **password** – пароль пользователя

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-login%C2%A0%E2%80%93-l"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **login** – login пользователя
- **email** – адрес электронной почты пользователя
- **customer** –

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body"></td></tr></tbody></table>

```
skydns_website.api.subscription.views.subscribe_plans(provider, data)
```

##### Метод возвращает список доступных тарифов, назначаемых при создании/изменении карточки пользователя.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-2"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">**provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider</td></tr></tbody></table>

```
skydns_website.api.subscription.views.subscription_info(provider, data)
```

##### Информация о подписке. На текущий момент возвращает наступила ли дата окончания подписки.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-3"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** – login пользователя

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body">{‘date\_end’: true|false}

</td></tr></tbody></table>

```
skydns_website.api.subscription.views.unsubscribe(provider, data)
```

##### Отключение пользователя. Пользователь переключается на бесплатный тариф.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-4"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** – login пользователя

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body"></td></tr></tbody></table>

```
skydns_website.api.subscription.views.update_email(provider, data)
```

##### Изменение email пользователя для восстановления пароля и информационных сообщений.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-5"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** – login пользователя
- **email** – новый email пользователя

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body"></td></tr></tbody></table>

```
skydns_website.api.subscription.views.update_ip(provider, data)
```

##### Создать или обновить динамический IP адрес пользователя и привязать его к необходимому профилю фильтрации.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-6"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** – login пользователя
- **ip** – новый динамический IP адрес пользователя

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-hostname%C2%A0"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **hostname** – для привязки ip к hostname
- **profile** – числовой id профиля к которому необходимо привязать IP адрес

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body"></td></tr></tbody></table>

```
skydns_website.api.subscription.views.update_nat(provider, data)
```

##### Метод для добавления или обновления привязки профиля пользователя реселлера к одному из NAT DNS

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-profile_i"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **profile\_id** – id профиля пользователя.
- **address** – IP адрес нашего DNS(anycast-address).

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body">None

</td></tr></tbody></table>

```
skydns_website.api.subscription.views.update_password(provider, data)
```

##### Обновление пароля пользователя.

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-7"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **ident** – login пользователя
- **password** – новый пароль пользователя

</td></tr><tr class="field-even field"><th class="field-name">Результат:</th><td class="field-body"></td></tr></tbody></table>

```
skydns_website.api.subscription.views.update_profile(provider, data)
```

##### Метод для изменения параметров профиля пользователя реселлера

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-provider%C2%A0-8"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **provider** – параметр нормализуется из ApiKey декоратором authenticate\_provider
- **profile\_id** – id профиля пользователя

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-name%C2%A0%E2%80%93-%D0%BD%D0%BE" style="width: 82.4691%; height: 121.85px;"><tbody valign="top"><tr class="field-odd field" style="height: 86.65px;"><th class="field-name" style="width: 13.9746%; height: 86.65px;">Параметры:</th><td class="field-body" style="width: 85.9711%; height: 86.65px;">- **name** – новое имя профиля пользователя
- **tls** – булево значение для установки профилю, будет ли использоваться TLS.

</td></tr><tr class="field-even field" style="height: 35.2px;"><th class="field-name" style="width: 13.9746%; height: 35.2px;">Результат:</th><td class="field-body" style="width: 85.9711%; height: 35.2px;">{‘id’: profile\_id, ‘name’: profile\_name, ‘tls’: true|false}

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-key"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **key**

</td></tr></tbody></table>

Пример запроса: `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": "Домашний"}]
}
```

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


<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-key-profi"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **key**
- **profile\_id**

</td></tr></tbody></table>

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

- не передан 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"
}
```

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


<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-key-profi-0"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **key**
- **profile\_id**

</td></tr></tbody></table>

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

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A-cat-%28mult"><tbody valign="top"><tr class="field-odd field"><th class="field-name">Параметры:</th><td class="field-body">- **cat (multiple param)**
- **safe\_youtube\_enabled**
- **block\_unknown\_sites**
- **safe\_search\_enabled**
- **white\_list\_only** – для привязки ip к hostname

</td></tr></tbody></table>

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

- не передан 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]}
}
```