# Лимитированные ссылки

<figure><img src="https://2249226147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpCCfn32zsHHBJZqih6C0%2Fuploads%2FJWfkSDtKT5VPOtKIqyit%2F3245.png?alt=media&#x26;token=1f64b54e-6441-4107-bff9-e39c84b71469" alt="" width="188"><figcaption></figcaption></figure>

Лимитированные ссылки — это функция, которая позволяет ограничить количество устройств, способных добавить подписку (ссылку) в приложение.\
В личном кабинете на сайте `happ-proxy.com` вы указываете URL вашей подписки, задаёте максимальное количество устройств и нажимаете "Сгенерировать ссылку".\
Полученную ссылку можно передать пользователю, при этом вы можете быть уверены: подписку смогут установить только указанное количество устройств — превышение лимита невозможно.

Создавать лимитированные ссылки можно как через веб‑интерфейс, так и с помощью API.

#### **Создание через сайт**

1. На странице создания укажите **незашифрованный URL** вашей подписки.
2. Задайте **лимит установок** (максимальное число устройств).
3. После генерации:
   * К URL автоматически добавляется параметр **InstallID**.
   * Домен ссылки сохраняется в базе в виде **SHA‑256‑хеша** (сырые домены не хранятся для повышения безопасности).

Вы получите **зашифрованную ссылку** с параметром InstallID.

***

#### **Создание через API**

Отправьте GET‑запрос на адрес:

```
https://api.happ-proxy.com/api/add-install?
  provider_code={provider_code}&
  auth_key={auth_key}&
  install_limit={install_limit}
```

* **{provider\_code}** — ваш код провайдера (в профиле)
* **{auth\_key}** — ключ авторизации (в профиле)
* **{install\_limit}** — максимальное число устройств

**Ответ API**

* **Успех**

  ```json
  {
    "rc": 1,
    "msg": "Ok",
    "install_code": "6P0hVao1fG5e"
  }
  ```
* **Ошибка**

  ```json
  {
    "rc": 0,
    "msg": "Описание ошибки"
  }
  ```

Добавьте полученный **install\_code** в ссылку как параметр **InstallID**.

***

#### **Пример**

* Исходный URL:

  ```
  https://url.com/sub
  ```
* Итоговая ссылка:

  ```
  https://url.com/sub#Your_TITLE?installid=Abcd1234
  ```

> **Совет:** Зашифруйте ссылку, чтобы пользователи не могли удалить параметр InstallID.

***

#### **Принцип работы**

При добавлении ссылки приложение вычисляет SHA‑256-хеш домена и отправляет запрос на:

```
https://check.happ-proxy.com/install?id={domain_hash}&installid={InstallID}
```

В ответ возвращаются `ProviderID` и статус ссылки.

Если запрос не удаётся передать (например, из-за блокировки сайта), приложение автоматически повторит попытку после установки VPN-соединения.

Сервер `happ-proxy.com` получает `HWID` устройства и отвечает положительно, если лимит установок по ссылке не превышен. В случае превышения лимита сервер возвращает отказ, и приложение выводит сообщение:\
\&#xNAN;**«Администратор подписки ограничил доступ. Пожалуйста, свяжитесь с технической поддержкой.»**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.happ.su/main/ru/dev-docs/limitirovannye-ssylki.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
