### Example: Connect to VPN Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/deep-links.md This is a direct example of how to invoke the VPN connection deep link. ```deeplink incy://connect ``` -------------------------------- ### SOCKS5 Share Link Example Source: https://incy.gitbook.io/docs/docs-en/share-links.en An example of a SOCKS5 share link with credentials, host, port, name, and a base64-encoded server description. ```url socks://pkg-private2-country-us-city-new_york_city:w0e20i55uuq6pxqg@quality.proxywing.com:1080#title?serverDescription=SGFwcCB0aGUgYmVzdA== ``` -------------------------------- ### Example: Add Routing from GitHub URL Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/deep-links.md This example illustrates adding an autorouting profile by providing a direct URL to a JSON file on GitHub. ```deeplink incy://autorouting/onadd/https://github.com/user/repo/blob/main/profile.json ``` -------------------------------- ### Example: Import Subscription Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/deep-links.md Demonstrates importing a subscription from a given URL using the 'import' deep link scheme. ```deeplink incy://import/https://example.com/api/subscription/abc123 ``` -------------------------------- ### Example: Add Server Configuration Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/deep-links.md Shows how to add a server configuration directly using a deep link with a VLESS protocol format. ```deeplink incy://add/vless://uuid@server:443?security=tls#MyServer ``` -------------------------------- ### SHA-256 Hash Example Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Example of a SHA-256 hash string for geo-files. ```text 38c25fea171323e0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4 ``` -------------------------------- ### WireGuard Share Link Example Source: https://incy.gitbook.io/docs/docs-en/share-links.en An example WireGuard share link demonstrating the use of secret key, host, port, public key, address, MTU, reserved bytes, and an insecure option. ```url wireguard://password2key@123.123.123.2:10803?publickey=asd33d223d33&address=dom.ru&allowinsecure=1&mtu=1500&reserved=1,22,33#title?serverDescription=SGFwcCB0aGUgYmVzdA== ``` -------------------------------- ### Query Documentation Dynamically Source: https://incy.gitbook.io/docs/docs-en/subscription-format.en Perform an HTTP GET request to query the documentation. Use the `ask` parameter for your question and optionally the `goal` parameter to specify your end goal. ```http GET https://incy.gitbook.io/docs/docs-en/subscription-format.en.md?ask=&goal= ``` -------------------------------- ### Domain Hashing Example Source: https://incy.gitbook.io/docs/docs-en/premium-api.en Demonstrates how to compute the SHA-256 hash of a domain for use in the API request. The hash is computed from the lowercase domain. ```bash SHA256("example.com") → "a379a6f6eeafb9a55e378c118034e2751e682fab9f2d30ab13d2125586ce1947" ``` -------------------------------- ### XHTTP Share Link Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Example of a VLESS share link using the XHTTP transport with custom path. ```url vless://uuid@server:443?security=tls&type=xhttp&mode=auto&path=/xhttp#XHTTP Server ``` -------------------------------- ### Query Documentation with GitBook API Source: https://incy.gitbook.io/docs/premium-api/presety-ikonok.md Use this GET request to query the documentation dynamically. Include a specific question in the 'ask' parameter and an optional broader goal in the 'goal' parameter. ```http GET https://incy.gitbook.io/docs/premium-api/presety-ikonok.md?ask=&goal= ``` -------------------------------- ### mKCP Share Link with Custom MTU and TTI Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Example of a VLESS share link using the mKCP transport with custom MTU and TTI settings for obfuscation. ```url vless://uuid@server:443?security=none&type=kcp&headerType=srtp&seed=myseed&mtu=1400&tti=20#mKCP Server ``` -------------------------------- ### Premium API - Device Limit Check Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/hwid-hardware-id.md This example shows how a client sends a HWID hash to the Premium API to check provider configuration and verify device registration for premium status within device limits. ```http GET /api/subscription/config?h=&hwid= ``` -------------------------------- ### Plain Text Subscription Links Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/format-podpisok.md Subscription links are provided in plain text, with each link on a new line. This format includes examples for VLESS, VMess, Trojan, SOCKS5, and WireGuard protocols. ```text vless://uuid@server1:443?security=tls#Server1 vmess://eyJhZGQiOiJzZXJ2ZXIyIn0= trojan://password@server3:443#Server3 socks://user:pass@server4:1080#Server4 wireguard://secretKey@server5:51820?publickey=KEY&address=10.0.0.2#Server5 ``` -------------------------------- ### Gradient Stop Example Source: https://incy.gitbook.io/docs/docs-en/premium-api.en Defines a single stop for a gradient, specifying the color and its position within the gradient. The position should be between 0.0 and 1.0. ```json { "color": "#B8D94A", "position": 0.0 } ``` -------------------------------- ### Array of Full Xray Configurations Source: https://incy.gitbook.io/docs/docs-en/full-xray-config.en An array where each element is a separate, complete xray-core configuration object. This format allows for importing multiple independent configurations, each treated as a distinct 'server' by xray-core. Useful for managing multiple distinct proxy setups. ```json [ { "outbounds": [...], "routing": { "balancers": [...] }, "burstObservatory": {...} }, { "outbounds": [...], "routing": { "balancers": [...] }, "burstObservatory": {...} } ] ``` -------------------------------- ### Hysteria2 Multi-Port Configuration Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/parametry-konfigov.md Example of Hysteria2 configuration using multiple ports, where the first port is for connection and subsequent ports define a range. ```text hysteria2://password@server:443,8443-8445#Server ``` -------------------------------- ### Hysteria2 IPv6 Configuration Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/parametry-konfigov.md Example of Hysteria2 configuration using an IPv6 address for the server. ```text hysteria2://password@[::1]:443#Server ``` -------------------------------- ### Get Subscription Configuration Source: https://incy.gitbook.io/docs/docs-en/premium-api.en Fetches the provider's subscription configuration using a SHA-256 hash of the domain and optionally a device HWID hash. The response is always encrypted. ```APIDOC ## GET /api/subscription/config?h=&hwid= ### Description Fetches the subscription configuration for a given domain hash. Optionally includes a device HWID hash to check device limits. ### Method GET ### Endpoint /api/subscription/config ### Parameters #### Query Parameters - **h** (string) - Required - SHA-256 hash of the domain (64 hex characters). - **hwid** (string) - Optional - SHA-256 hash of the device HWID (64 hex characters). Used to check the device limit. ### Request Example (No request body for GET request) ### Response #### Success Response (200) - **encrypted** (boolean) - Indicates if the response is encrypted. - **iv** (string) - Base64 encoded Initialization Vector for decryption. - **data** (string) - Base64 encoded encrypted data payload. - **tag** (string) - Base64 encoded authentication tag for decryption. #### Response fields (after decryption) - **success** (boolean) - Request success status. - **domain** (string) - The subscription domain. - **isPremium** (boolean) - Indicates if Premium is active for the provider. - **deviceLimitExceeded** (boolean) - Indicates if the provider's device limit has been exceeded. - **logoUrl** (string?) - Optional URL for the provider's logo. - **settings** (object) - Provider-specific settings. - **theme** (object) - Custom theme configuration. ### Rate Limit 30 requests per minute per IP address. Exceeding this limit will result in a 429 response. ``` -------------------------------- ### GET /api/subscription/config Source: https://incy.gitbook.io/docs/premium-api.md Retrieves the subscription configuration for a given domain. The domain is hashed using SHA-256 before being sent to the server. An optional hardware ID hash can be provided to check device limits. ```APIDOC ## GET /api/subscription/config ### Description Retrieves the subscription configuration for a given domain. The domain is hashed using SHA-256 before being sent to the server. An optional hardware ID hash can be provided to check device limits. ### Method GET ### Endpoint /api/subscription/config ### Parameters #### Query Parameters - **h** (string) - Required - SHA-256 hash of the domain (64 hex characters). - **hwid** (string) - Optional - SHA-256 hash of the device HWID (64 hex characters). Used to check device limits. ### Request Example (No explicit request body example provided, query parameters are used) ### Response #### Success Response (200) The server always returns an encrypted response. ```json { "encrypted": true, "iv": "", "data": "", "tag": "" } ``` #### Decrypted Response Fields - **success** (boolean) - Indicates the success of the request. - **domain** (string) - The subscription domain. - **isPremium** (boolean) - Whether the provider has an active Premium subscription. - **deviceLimitExceeded** (boolean) - Whether the provider's device limit has been exceeded. - **logoUrl** (string?) - URL of the provider's logo. - **settings** (object) - Provider settings (see structure below). - **theme** (object) - Custom theme settings (see structure below). ### Rate Limit 30 requests per minute per IP address. Exceeding this limit results in a `429` response. ``` -------------------------------- ### VLESS + REALITY Share Link Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Example of a VLESS share link utilizing the REALITY security protocol with specified SNI, fingerprint, public key, and short ID. ```url vless://uuid@server:443?security=reality&type=tcp&flow=xtls-rprx-vision&sni=example.com&fp=chrome&pbk=PUBLIC_KEY&sid=SHORT_ID&spx=%2F#REALITY Server ``` -------------------------------- ### API Endpoint Source: https://incy.gitbook.io/docs/docs-en/premium-api.en The GET endpoint for fetching subscription configuration. It requires a SHA-256 hash of the domain and optionally a SHA-256 hash of the device HWID. ```http GET /api/subscription/config?h=&hwid= ``` -------------------------------- ### Generate crypt1 links with NPM package Source: https://incy.gitbook.io/docs/docs-en/deep-links.en Use the @incy/link-encoder NPM package to programmatically generate crypt1 links. Install the package and import the encryptLink function. ```bash npm install @incy/link-encoder ``` ```javascript import { encryptLink } from '@incy/link-encoder'; const link = encryptLink('https://sub.your-provider.example/abc123token', { name: 'My Provider VPN', }); console.log(link); // → incy://crypt1/AAECAwQFBgcICQoLNyIQL3rDwRZqnyoD8pGK… ``` -------------------------------- ### Per-App Proxy List Configuration (Inline) Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md Provide a comma-separated list of package names for per-app proxying. This format is suitable for shorter lists. ```yaml per-app-proxy-list: com.android.chrome,org.telegram.messenger,com.google.android.youtube ``` -------------------------------- ### Per-App Proxy List Configuration (Base64) Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md For extensive lists of package names, use base64 encoding to reduce the configuration size. The list is decoded by the client. ```yaml per-app-proxy-list: base64:Y29tLmFuZHJvaWQuY2hyb21lCm9yZy50ZWxlZ3JhbS5tZXNzZW5nZXI= ``` -------------------------------- ### Subscription Body Parameter Transmission Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md Parameters can be passed as commented lines (starting with '#') in the subscription body. This serves as a fallback when HTTP headers are not available. ```text #profile-title: Мой VPN #support-url: https://t.me/support #profile-update-interval: 6 #announce: Текст объявления vless://... ``` -------------------------------- ### Geo-file Placement with Hash Verification Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Instructions for placing geo-files and their SHA-256 checksums for optimized traffic and automatic verification. ```text https://example.com/geo/geoip.dat https://example.com/geo/geoip.dat.sha256 https://example.com/geo/geosite.dat https://example.com/geo/geosite.dat.sha256 ``` -------------------------------- ### Per-App Proxy List Configuration (Remote URL) Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md Specify a URL pointing to a plain text file containing package names for per-app proxying. The client fetches this list upon subscription updates. ```yaml per-app-proxy-list: https://example.com/myapps.txt ``` -------------------------------- ### Set Subscription Name via Base64 Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide the subscription name and description using base64 encoding in the 'profile-title' header. The first line is the name, the rest is the description. ```text profile-title: base64:0JzQvtC5IFZQTgrQlNC+0LHRgNC+INC/0L7QttCw0LvQvtCy0LDRgtGM ``` -------------------------------- ### Server Description Configuration Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md Append a server description to the server address using a '?' separator. The description supports base64 encoding for UTF-8 characters. ```vless vless://uuid@server:443#Сервер1?serverDescription=base64-text ``` -------------------------------- ### Add Routing Profile via HTTP Header (Full Link) Source: https://incy.gitbook.io/docs/docs-en/routing.en Pass a full link, including the scheme, with the routing profile encoded in base64 within the 'routing' HTTP header. This method immediately activates the profile after download. ```http HTTP/2 200 routing: ://routing/onadd/ewogICJOYW1lIjogIlJvc2NvbVZQTiIs... ``` -------------------------------- ### Subscription Card Icon Settings Source: https://incy.gitbook.io/docs/premium-api/presety-ikonok.md Configure the icons for the bot, channel, and support buttons displayed in the subscription card. Ensure the icon keys match available assets. ```json { "settings": { "liteMode": true, "botUrl": "https://t.me/my_bot", "botIconKey": "bot", "channelUrl": "https://t.me/my_channel", "channelIconKey": "megaphone", "supportUrl": "https://t.me/my_support", "supportIconKey": "lifebuoy" } } ``` -------------------------------- ### Set Website Link via Header Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide a website URL using the 'profile-web-page-url' header. The 'homepage' header is an alternative. ```text profile-web-page-url: https://your-site.com ``` -------------------------------- ### Minimal JSON Profile Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md A basic JSON profile configuration. ```json { "Name": "Minimal", "GlobalProxy": "true", "DomainStrategy": "AsIs" } ``` -------------------------------- ### Shadowsocks Share Link Format (SIP002) Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/parametry-konfigov.md The SIP002 format for a Shadowsocks share link, encoding method, password, host, and port, followed by an optional name and description. ```text ss://base64(method:password@host:port)#name?serverDescription=base64 ``` -------------------------------- ### Desktop (Linux/Windows) HWID Generation Algorithm Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/hwid-hardware-id.md This algorithm describes the process for generating a device ID on desktop platforms (Linux and Windows) by combining system properties and machine identifiers. The final HWID is created by hashing this device ID with a predefined salt. ```plaintext deviceId = SHA256("machineId|hostname|os|arch|user") hwid = SHA256("incy_hwid_" + deviceId) ``` -------------------------------- ### Типы ссылок для Автороутинга Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/avtorouting.md Определяет форматы ссылок для добавления профилей с автообновлением или без него. Схема `://autorouting/` активирует автообновление и устанавливает `sourceURL`. ```markdown | Формат ссылки | Описание | | ---------------------------- | ------------------------------------------------------------------- | | `://autorouting/onadd/{url}` | Скачивает профиль по URL, устанавливает автообновление и активирует | | `://autorouting/add/{url}` | Скачивает профиль по URL, устанавливает автообновление | ``` -------------------------------- ### Configuration Import Deep Links Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/deep-links.md These links allow importing subscription URLs or server configurations directly into the application. The 'import' scheme automatically detects data types. ```deeplink incy://import/{data} ``` ```deeplink incy://add/{url} ``` -------------------------------- ### Protocol Links for Server Configuration Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/deep-links.md Directly add servers using various protocol link formats. These are standard formats for defining server connections. ```deeplink vless://uuid@server:443?security=tls&type=ws&sni=example.com#Server Name ``` ```deeplink vmess://eyJhZGQiOiJzZXJ2ZXIiLCJwb3J0Ijo0NDN9 ``` ```deeplink trojan://password@server:443?security=tls&sni=example.com#Server Name ``` ```deeplink ss://method:password@server:8388#Server Name ``` ```deeplink hysteria2://password@server:443?sni=example.com#Server Name ``` ```deeplink socks://user:pass@server:1080#Server Name ``` ```deeplink wireguard://secretKey@server:51820?publickey=KEY&address=10.0.0.2#Server Name ``` -------------------------------- ### Сравнение Routing и Autorouting Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/avtorouting.md Сравнительная таблица, показывающая ключевые отличия между Routing и Autorouting по параметрам данных, обновления, sourceURL и индикатора. ```markdown | | Routing | Autorouting | | ----------- | ---------------------------------- | --------------------------------------------- | | Данные | Base64-профиль передаётся один раз | URL-источник, профиль скачивается по нему | | Обновление | Только при обновлении подписки | Автоматически по интервалу (по умолчанию 24ч) | | `sourceURL` | Не устанавливается | Устанавливается — профиль привязан к URL | | Индикатор | Нет | Иконка облака в списке профилей | ``` -------------------------------- ### Set Support Link via Header Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide a support URL using the 'support-url' header. If the link points to Telegram, a Telegram icon is displayed. ```text support-url: https://t.me/your_support_bot ``` -------------------------------- ### Import Configuration Deep Links Source: https://incy.gitbook.io/docs/docs-en/deep-links.en These deep links allow for importing VPN configurations. The `://import/{data}` link auto-detects the data type, while `://add/{url}` adds a subscription or configuration directly. The `://crypt1/{payload}` is an obfuscated variant for adding configurations. ```plaintext ://import/{data} ://add/{url} ://crypt1/{payload} ``` -------------------------------- ### Shadowsocks Share Link Format (Modern) Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/parametry-konfigov.md The modern format for a Shadowsocks share link, encoding the method and password, followed by host, port, and an optional name and description. ```text ss://base64(method:password)@host:port#name?serverDescription=base64 ``` -------------------------------- ### Set Announcement URL via Header Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide an announcement URL using the 'announce-url' header. ```text announce-url: https://example.com/news ``` -------------------------------- ### Set Subscription Description via Header Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide a separate description for the subscription using the 'profile-description' header. Supports base64 encoding. ```text Fast servers in Europe ``` -------------------------------- ### Add and Auto-Update Profile from URL Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Downloads a profile from a URL and sets it for automatic updates. This is useful for dynamic profile management. ```deeplink ://autorouting/onadd/https://raw.githubusercontent.com/user/repo/main/profile.json ``` -------------------------------- ### Add and Activate Static Profile (Base64) Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Adds and activates a profile from base64 encoded data. Use this when you need to immediately apply a profile. ```deeplink ://routing/onadd/eyJOYW1lIjoiUm9zY29tVlBOIiwiR2xvYmFsUHJveHkiOiJ0cnVlIiwiUmVtb3RlRE5TVHlwZSI6IkRvSCIsIlJlbW90ZUROU0RvbWFpbiI6Imh0dHBzOi8vY2xvdWRmbGFyZS1kbnMuY29tL2Rucy1xdWVyeSIsIlJlbW90ZUROU0lQIjoiMS4xLjEuMSIsIkRvbWVzdGljRE5TVHlwZSI6IkRvSCIsIkRvbWVzdGljRE5TRG9tYWluIjoiaHR0cHM6Ly9kbnMuZ29vZ2xlL2Rucy1xdWVyeSIsIkRvbWVzdGljRE5TSVAiOiI4LjguOC44IiwiRG9tYWluU3RyYXRlZ3kiOiJJUElmTm9uTWF0Y2gifQ== ``` -------------------------------- ### Mixed Subscription Format with Special Strings Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/format-podpisok.md This format combines server links with routing directives and metadata. Special strings like `://autorouting/` and `#announce:` are parsed and processed separately from server links. ```text vless://uuid@server1:443?security=tls#Server1 vless://uuid@server2:443?security=tls#Server2 ://autorouting/onadd/https://example.com/routing.json #announce: Плановое обслуживание завтра ``` -------------------------------- ### JSON Array of Full Xray Configurations Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/format-podpisok.md A subscription body can be a JSON array, where each element is a complete Xray configuration object. This allows for multiple distinct configurations within a single subscription. ```json [ { "outbounds": [...], "routing": {...} }, { "outbounds": [...], "routing": {...} } ] ``` -------------------------------- ### Base64-закодированный JSON-профиль Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/avtorouting.md Пример Base64-закодированного JSON-профиля. Приложение может декодировать такие строки для получения данных профиля маршрутизации, если они не являются JSON или deep link. ```plaintext ewogICAgIk5hbWUiOiAiUm9zY29tVlBOIiwKICAgICJHbG9iYWxQcm94eSI6ICJ0cnVlIgp9 ``` -------------------------------- ### Subscription Body with Routing Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Includes static routing configuration directly in the subscription body using a base64 encoded string. This is useful when HTTP headers are not available. ```text vless://uuid@server1:443?security=tls#Server1 vless://uuid@server2:443?security=tls#Server2 ://routing/onadd/ewogICJOYW1lIjogIlJvc2NvbVZQTiIsCiAgIkdsb2JhbFByb3h5IjogInRydWUiCn0= ``` -------------------------------- ### Generate SHA-256 Hashes for Geo-files Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Bash commands to generate SHA-256 checksum files for geoip.dat and geosite.dat. ```bash sha256sum geoip.dat | awk '{print $1}' > geoip.dat.sha256 sha256sum geosite.dat | awk '{print $1}' > geosite.dat.sha256 ``` -------------------------------- ### Set Announcement Text via Header Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide an announcement text via the 'announce' header, up to 200 characters. Can also be passed as base64. ```text announce: Scheduled maintenance on March 15 from 03:00 to 05:00 MSK ``` -------------------------------- ### JSON-профиль маршрутизации Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/avtorouting.md Пример структуры JSON-профиля маршрутизации, который может быть загружен по URL. Содержит настройки, такие как `Name`, `GlobalProxy`, `RemoteDNSType` и другие. ```json { "Name": "RoscomVPN", "GlobalProxy": "true", "RemoteDNSType": "DoH", "RemoteDNSDomain": "https://cloudflare-dns.com/dns-query", "RemoteDNSIP": "1.1.1.1", "Geoipurl": "https://example.com/geoip.dat", "Geositeurl": "https://example.com/geosite.dat", "DirectSites": ["geosite:ru"], "DirectIp": ["geoip:ru"], "DomainStrategy": "IPIfNonMatch" } ``` -------------------------------- ### Subscription Body Delivery Method Source: https://incy.gitbook.io/docs/docs-en/app-management.en Parameters can be delivered as lines in the subscription body, prefixed with '#'. This serves as a fallback when the corresponding header is absent. ```text #profile-title: My VPN #support-url: https://t.me/support #profile-update-interval: 6 #announce: Announcement text vless://... ``` -------------------------------- ### Правило маршрутизации для DNS Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primer-xray-konfiga.md Пример правила маршрутизации, добавляемого для IP-адресов DNS-серверов, чтобы предотвратить циклическую зависимость с Observatory. ```json { "type": "field", "ip": ["8.8.8.8", "1.1.1.1"], "outboundTag": "direct" } ``` -------------------------------- ### Set Subscription Update Interval via Header Source: https://incy.gitbook.io/docs/docs-en/app-management.en Configure the automatic subscription update interval in hours using the 'profile-update-interval' header. The value must be a multiple of one hour. ```text profile-update-interval: 6 ``` -------------------------------- ### Set Announcement via Body Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide announcement text and URL using '#announce' and '#announce-url' comments in the subscription body. ```text #announce: Scheduled maintenance on March 15 #announce-url: https://example.com/news vless://uuid@server:443#Server ``` -------------------------------- ### Combined Headers and Body Metadata Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Demonstrates the priority of HTTP headers over body metadata. Headers are used when present; body metadata serves as a fallback for missing header information. ```http HTTP/2 200 content-type: text/plain profile-title: VPN Pro #support-url: https://t.me/support #profile-update-interval: 6 vless://uuid@server1:443?security=tls#NL vless://uuid@server2:443?security=tls#DE ``` -------------------------------- ### Plain Text Profile Title Source: https://incy.gitbook.io/docs/docs-en/subscription-format.en Use this format for a simple subscription name. ```text profile-title: My VPN ``` -------------------------------- ### Static Profile Subscription Header (Full URL) Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/primery-marshrutizacii.md Uses the 'routing' HTTP header with a full deeplink URL for a static profile. This allows specifying the profile directly. ```http HTTP/2 200 content-type: text/plain routing: ://routing/onadd/ewogICJOYW1lIjogIlJvc2NvbVZQTiIsCiAgIkdsb2JhbFByb3h5IjogInRydWUiCn0= vless://uuid@server1:443?security=tls#Server1 ``` -------------------------------- ### Static Routing Profile Configuration Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md Use this format to specify a static routing profile using a base64 encoded string. Refer to routing.md for more details. ```yaml routing: ://routing/onadd/ewog...base64... ``` -------------------------------- ### Set Website Link via Body Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide a website URL using a '#profile-web-page-url' comment in the subscription body. The 'homepage' header is an alternative. ```text #profile-web-page-url: https://your-site.com ``` -------------------------------- ### Конвертация GitHub URL Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/avtorouting.md Демонстрирует автоматическую конвертацию ссылок GitHub из формата 'blob' в 'raw' для корректного импорта и автообновления профилей. Приложение обрабатывает это прозрачно. ```plaintext https://github.com/user/repo/blob/main/path/profile.json → https://raw.githubusercontent.com/user/repo/main/path/profile.json ``` -------------------------------- ### Set Support Link via Body Source: https://incy.gitbook.io/docs/docs-en/app-management.en Provide a support URL using a '#support-url' comment in the subscription body. If the link points to Telegram, a Telegram icon is displayed. ```text #support-url: https://t.me/your_support_bot ``` -------------------------------- ### Приоритет источников маршрутизации Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/avtorouting.md Таблица, определяющая порядок применения различных источников маршрутизации, от наивысшего приоритета (заголовок `autorouting`) до низшего (base64 в теле подписки). ```markdown | Приоритет | Источник | Тип | | ---------- | ----------------------- | --------------- | | 1 (высший) | Заголовок `autorouting` | Автообновляемый | | 2 | Body — строка с URL | Автообновляемый | | 3 | Заголовок `routing` | Статический | | 4 (низший) | Body — строка с base64 | Статический | ``` -------------------------------- ### Alternative Subscription Name Headers Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md Provides fallback headers for the subscription name if 'profile-title' is not present. ```text subscription-name: Alternative Name ``` ```text content-disposition: attachment; filename="MySubscription.txt" ``` -------------------------------- ### Примеры определения типа ссылки Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/avtorouting.md Иллюстрирует, как определяется тип маршрутизации (autorouting или routing) на основе схемы ссылки. Схемы `://autorouting/` и `://routing/` имеют разное поведение. ```markdown ``` ://autorouting/onadd/https://example.com/profile.json → autorouting (автообновление) ://routing/onadd/https://example.com/profile.json → routing (одноразовый импорт) ://routing/onadd/ewogICJOYW1lIjogIlRlc3QiCn0= → routing (base64) ``` ``` -------------------------------- ### SOCKS5 Share Link Format Source: https://incy.gitbook.io/docs/docs-en/share-links.en Use this format for SOCKS5 proxy links. Credentials and server description are optional. ```url socks://username:password@host:port#name?serverDescription=base64 ``` -------------------------------- ### Subscription Description Source: https://incy.gitbook.io/docs/dokumentaciya-dlya-razrabotchikov/upravlenie-prilozheniem.md Adds a separate description for the subscription. Supports plain text and base64 encoding. ```text profile-description: Быстрые серверы в Европе ``` ```text profile-description: base64:... ``` -------------------------------- ### HTTP Header Delivery Method Source: https://incy.gitbook.io/docs/docs-en/app-management.en Parameters can be delivered via HTTP headers. This is the primary method and takes precedence over body lines. ```http HTTP/2 200 My VPN support-url: https://t.me/support ```