> For the complete documentation index, see [llms.txt](https://docs.tumbler.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tumbler.app/ru/funkcii/basic-limits.md).

# Базовые лимиты

## Для кого

Провайдеры, которые хотят контролировать нагрузку и объём соединений без дополнительных платных функций.

## Что можно сделать

* Ограничить количество одновременных сессий и скорость обновления подписки.
* Задать TTL и правила кэширования.
* Сообщить клиентам об ожидаемых ограничениях заранее.

## installation-limit (для подписки)

* `installation-limit` — лимит активных установок, привязанных к подписке.
* TTL слота: **24 часа без активности**. Активностью считается:
  * `sync` подписки;
  * запрос на подключение (`/v1/sessions/request`);
  * `heartbeat` активной сессии.
* Если установка не проявляла активность 24 часа, слот освобождается автоматически.
* Удаление подписки клиентом освобождает слот сразу.
* При превышении лимита выдача новой установки вернёт `INSTALLATION_LIMIT_EXCEEDED` (403).

## connection-limit (basic)

* Базовый `connection-limit` для free-тарифа — бинарный: `0` = лимит выключен, `1` = допускается одна активная сессия (значения >1 фактически приравниваются к 1).
* “Active connection” = живая VPN-сессия (lease + heartbeat).
* При превышении лимита `POST /v1/sessions/request` вернёт `allowed:false, reason: "CONNECTION_LIMIT_EXCEEDED"`, приложение не подключится.
* Если короткий lease истёк из-за длительной потери сети, но metadata сессии ещё жива, следующий heartbeat автоматически продлевает ту же сессию без re-lease.
* При heartbeat сервер всё ещё может вернуть требование на принудительное отключение: `{"ok":false,"disconnect_required":true,"disconnect_reason":"SESSION_NOT_FOUND|SUBSCRIPTION_NOT_FOUND"}`. Клиент обязан разорвать туннель и запросить новый lease при необходимости.

## Примеры

* `installation-limit: 3` — до трёх активных установок.
* `connection-limit: 1` — одно активное подключение.
* `Cache-Control: public, max-age=300` — базовое кэширование subscription URL.

## См. также

* [features/overview.md](/ru/funkcii/overview.md)
* [operations/reliability-and-timeouts.md](/ru/uluchsheniya-posle-pervogo-zapuska/reliability-and-timeouts.md)
* [subscription/metadata.md](/ru/kontrakt-podpiski/metadata.md)

## Рекомендуемые поля

* `installation-limit` — ограничение количества активных установок.
* `connection-limit` — базовый лимит активных VPN-сессий.
* `subscription-userinfo` — расход, общий лимит трафика и срок действия подписки для UI.
* `Cache-Control` / `ETag` — кэширование и предсказуемые обновления subscription URL.

## Поведение по умолчанию

Если лимиты не заданы, backend не применяет installation/connection ограничения сверх стандартных правил платформы. Указывайте явные ограничения, если они являются частью вашего тарифа.

## Что видит пользователь

* При превышении `installation-limit`: модальное сообщение вида «Достигнут лимит установок. Удалите лишние установки/устройства или отключите подписку на старом устройстве» (`INSTALLATION_LIMIT_EXCEEDED`).
* При превышении `connection-limit`: модальное сообщение «Достигнут лимит подключений. Разорвите другие сессии и попробуйте ещё раз» (`CONNECTION_LIMIT_EXCEEDED`).
* Рекомендуйте провайдерам добавить FAQ/поддержку с инструкциями по освобождению слотов (удалить лишние установки/подключения, дождаться автоматического освобождения слота после 24h без активности или удалить подписку).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.tumbler.app/ru/funkcii/basic-limits.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
