> 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/nachat/quickstart.md).

# Быстрый старт: URL уже есть

## Для кого

Провайдеры, у которых уже есть subscription URL: ссылка отдаёт raw `vless://...`, base64-подписку, JSON `links`/`nodes`, Xray JSON или sing-box JSON.

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

* Проверить, что существующая ссылка совместима с Tumbler.
* Сформировать add link или QR для пользователя.
* Понять, когда нужны `crypt3`, метаданные и расширенные функции.

## Примеры

* Raw subscription URL: `https://provider.example.com/sub/u_123`.
* Add link для Tumbler: `tumbler://add?link=https%3A%2F%2Fprovider.example.com%2Fsub%2Fu_123`.
* Если URL нельзя раскрывать: `tumbler://add?link=<url-encoded schema://crypt3/...>`.

## См. также

* [getting-started/add-link.md](/ru/nachat/add-link.md)
* [subscription/response-formats.md](/ru/kontrakt-podpiski/response-formats.md)
* [subscription/metadata.md](/ru/kontrakt-podpiski/metadata.md)
* [security/url-protection-and-crypt3.md](/ru/nachat/url-protection-and-crypt3.md)
* [troubleshooting/common-issues.md](/ru/nachat/common-issues.md)

## Flow за 15 минут

### 1. Проверьте существующий subscription URL

Если у вас уже есть ссылка, начните с неё:

```bash
curl -i 'https://provider.example.com/sub/u_123'
```

Минимально подходит ответ `200 OK` с `text/plain; charset=utf-8` и VLESS-строками:

```
vless://11111111-1111-1111-1111-111111111111@edge.example.com:443?security=reality&pbk=pk1&sid=s1&sni=edge.example.com#Edge-1
vless://22222222-2222-2222-2222-222222222222@backup.example.com:443?type=grpc#Backup
```

Также подходят base64-подписки, JSON `links`/`nodes`, Xray JSON и sing-box JSON. Подробности - в [response-formats.md](/ru/kontrakt-podpiski/response-formats.md).

### 2. Сформируйте ссылку для открытия в Tumbler

Закодируйте исходный subscription URL и положите его в query-параметр `link`:

```bash
python3 - <<'PY'
from urllib.parse import quote

source = "https://provider.example.com/sub/u_123"
print("tumbler://add?link=" + quote(source, safe=""))
PY
```

Результат:

```
tumbler://add?link=https%3A%2F%2Fprovider.example.com%2Fsub%2Fu_123
```

Этот URL можно поставить в кнопку, письмо, личный кабинет или QR.

### 3. Что произойдёт при открытии

1. iOS открывает Tumbler по схеме `tumbler://`.
2. Tumbler достаёт `link` и отправляет его в `POST /v1/subscriptions/add`.
3. Backend сам скачивает ваш subscription URL через fetcher.
4. Backend нормализует конфиги, применяет метаданные и возвращает приложению encrypted runtime payload.
5. Клиент показывает подписку и дальше синхронизирует её через backend.

Пользовательское приложение не должно напрямую ходить к provider URL в `crypt3` сценарии.

### 4. Добавьте метаданные, когда базовый импорт уже работает

Метаданные не нужны для первого запуска. После проверки добавьте:

* `profile-title` - название профиля в приложении.
* `support-url` и `manage-url` - кнопки поддержки и управления аккаунтом.
* `subscription-userinfo` - трафик и срок действия.
* `mirrors`, `new-url`, `new-domain` - миграция и fallback.
* `balancer-method` - динамический порядок узлов.

## Когда нужен crypt3

Используйте `crypt3`, если raw HTTPS subscription URL нельзя показывать пользователю, нельзя хранить на устройстве или нельзя давать возможность шарить его напрямую.

В этом случае provider/partner генерирует source link:

```
schema://crypt3/<token>
```

А пользователю отдаётся add link:

```
tumbler://add?link=<url-encoded schema://crypt3/<token>>
```

Подробнее - [Защита URL и crypt3](/ru/nachat/url-protection-and-crypt3.md).

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

* Не переписывайте endpoint в новый формат, если он уже отдаёт поддерживаемые VLESS/Xray/sing-box данные.
* Не добавляйте все метаданные сразу. Сначала проверьте импорт и sync.
* Не используйте `tumbler://add/<url>`: текущий контракт - `tumbler://add?link=...`.
* Не пишите `cryp3`: корректное имя механизма - `crypt3`.

## Минимальный чек-лист готовности

* Subscription URL открывается снаружи backend fetcher-ом по HTTP/HTTPS на стандартных портах 80/443.
* Ответ в UTF-8, без HTML-страниц вместо конфигов и без мусора в начале.
* В ответе есть хотя бы один валидный VLESS узел или JSON/Xray/sing-box объект, из которого можно извлечь VLESS outbound.
* Add link использует `tumbler://add?link=<url-encoded source>`.
* Если ссылка чувствительная, raw URL заменён на `crypt3`.


---

# 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/nachat/quickstart.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.
