App management
Manage application settings through the subscription
The app management feature includes two areas:
Standard parameters for management, which work for most panels.
Advanced parameters that require a Provider ID to be specified in the subscription.
To enable a parameter, pass the value true or 1; to disable it, pass any other non-empty value (for example, 0 or false).
Standard parameters
Subscription auto-update

The system creates a task to perform the operation at a given interval. Depending on internal priorities, the system tries to start the subscription update at the specified time. If for some reason the update was not performed within the specified interval, it will happen automatically on the next application launch. The interval is set in hours and must be a multiple of one hour.
Example of configuring this parameter:
profile-update-interval: [int]Delivery methods:
HTTP/2 200
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
profile-update-interval: 1#profile-update-interval: 1
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…Subscription name

The name of the subscription profile. It can be passed as plain text or in base64 (UTF-8). Restriction: maximum length — 25 characters.
Via the subscription body, by specifying the # sign before the parameter (for example, #profile-title).
Example of configuring this parameter:
profile-title: [string]Delivery methods:
HTTP/2 200
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
profile-title: Name VPN#profile-title: Name VPN
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…Subscription status line (traffic, expiration date)

Displays information about the balance, used traffic volume, and subscription expiration date. In the app, the left side of the bar shows the amount of used traffic (upload + download), and the right side — the total volume (total) after the "/" symbol. The subscription expiration date is specified in the expire parameter. Note: all data is transmitted in a single header and separated by the ; symbol.
Example of configuring this parameter:
subscription-userinfo: [string]Delivery methods:
HTTP/2 200
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
subscription-userinfo: upload=0; download=2153701362; total=0; expire=1790951622#subscription-userinfo: upload=0; download=2153701362; total=0; expire=1790951622
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…Link to the support page

Button to go to the support page. Displayed as a blue icon located on the right side of the bar. If the link leads to Telegram, the Telegram icon is displayed; in other cases, the standard link icon is used.
Example of configuring this parameter:
support-url: [string]Delivery methods:
HTTP/2 200
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
support-url: https://t.me/happ_chat#support-url: https://t.me/happ_chat
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…Link to the website page

Button to go to the subscription website page. Displayed as a blue icon located on the left side of the bar. If the parameter is not set, the icon will be gray.
Example of configuring this parameter:
Delivery methods:
Announcement

The subscription can contain announcement text, passed in plain text or Base64 format. Restriction: maximum length of displayed text — 200 characters.
Example of configuring this parameter:
Delivery methods:
Disable routing
A global parameter for disabling routing in the application.
Example of configuring this parameter:
Delivery methods:
Tunnel configuration (Desktop only)
Pass your own tunnel configuration for the sing-box core.
Example of configuring this parameter:
Delivery methods:
Advanced parameters
The Provider ID parameter is required!
Changing the subscription URL
If the domain is blocked by your provider, and users can connect to servers and update their subscription only via VPN, this parameter is exactly for you. By specifying a new domain name in the value of this parameter, you will ensure its automatic replacement for all subscription users.
Example of configuring this parameter:
Delivery methods:
Changing the subscription domain
Change the site domain without changing the full URL, preserving the rest of the address.
Example of configuring this parameter:
Delivery methods:
Fallback URL (backup subscription URL)

If the main URL is unavailable, returned an error 300–599, or did not respond within 9 seconds, the application will switch to the Fallback URL (if available).
Example of configuring this parameter:
Delivery methods:
Server description in the subscription

Allows you to set an additional caption that is displayed under the server name instead of the default text (for example, "VMess", "VLESS", "Trojan").
Maximum length — 30 characters.
If it does not fit on the screen, it will be truncated with an ellipsis.
It is set after
titleusing the?separator.
Examples:
Advanced announcements



More prominent announcements. Split into two types: arbitrary informational text (sub-info) and a system notification about subscription expiration (sub-expire).
Subscription expiration notifications have priority and are displayed automatically 3 days before expiration or after it has expired. The info block is shown only when there is no active expire message.
Both mechanisms can be explicitly disabled via HTTP headers. If the parameters were passed and not cancelled, they remain active until the subscription is deleted.
sub-info-color
String
No
red, blue, green (default blue)
Color of the info block
sub-info-text
String
Yes*
max 200 chars
Main text of the info block. Without this parameter, the block is not displayed. Or if 0 is sent to the parameter. An empty string disables the display
sub-info-button-text
String
No
max 25 chars
Button text. If missing — the button is not shown
sub-info-button-link
String
No
any string (URL / deeplink)
Button link. Opens in a browser, without validation
sub-expire
Boolean
No
true | 1 = enabled
Enables the mechanism for displaying subscription expiration info
sub-expire-button-link
String
No
any string (URL / deeplink)
Link for the "Renew" button. Without a link, the button is not shown
Display logic (summary)
sub-expire = true and subscription expires in ≤ 3 days
Show the message "Your subscription expires in N days."
sub-expire = true and the subscription has expired
Show the message "Subscription has expired!"
sub-expire = true and days > 3
The expiration message is hidden
No expiration date
Expiration info is not displayed
There is an active expire message
The sub-info block is not displayed
No expire message and sub-info-text exists
Show the sub-info block
sub-info-text = 0
The sub-info block is disabled
sub-expire ≠ true | 1
The expire mechanism is disabled
Notes
The parameters apply only to the subscription for which they were passed
If the parameters came via push and were not explicitly disabled, they remain active indefinitely
The expire button always has the text "Renew"
The number of days (N) is counted as full days, maximum 3
Delivery methods:
Subscription fragmentation and fronting
Some CDNs support domain fronting. This allows connecting to your site through a third-party domain.
For example, by specifying the connection address visa.com, and in the Host header — my-domain.com, the provider will only see the request to visa.com.
You can also access your domain to retrieve the server list using packet fragmentation in the SNI TLSHello.
By default, fragmentation is enabled for all subscriptions.
URL scheme with parameters
Fragmentation contains three parameters: [length], [interval], and [packets].
When using fronting, you must first specify the URL with the domain through which the connection will be made. You must also set resolve-address — this can be a domain or an IP address — and host, matching your host in the selected provider's network.
No Limit Mode
No Limit Mode can be used for all types of protocols or only for xhttp. Increases the RAM limit for xray-core, improving stability and performance.
Important: The feature is in beta testing. Use only one of the activation options (for all or only for xhttp) — enabling both simultaneously is not allowed.
Example of configuring this parameter:
Delivery methods:
Non-disableable HWID
By default, HWID is enabled on all Happ applications. But if you want the user to be unable to disable forwarding of this parameter by turning it off in the app settings, you can send a special parameter along with the subscription.
Example of configuring this parameter:
Delivery methods:
Subscription expiration notification
You can enable the automatic subscription expiration notifications feature. The user will receive reminders 3 days before the subscription expires: the app will send one notification per day for three days. This will help the user remember to renew the subscription on time.
Notification text:
Example of configuring this parameter:
Delivery methods:
Hide server settings in the subscription

Disable the ability to view and edit server configurations for users of your subscription. The setting applies both to already added subscriptions and to those that will be added in the future.
Example of configuring this parameter:
Delivery methods:
Domain resolving
The app can pre-resolve server domains before establishing a connection. You can specify any DoH server, and when connecting to the Xray server, the domain name will be replaced with the received IP address.
If multiple IP addresses are returned for a domain, the app will automatically select the one with the minimum response time (ping). However, keep in mind: with a large number of IP addresses, the connection may take longer, as all options will be tested in advance.
Example of configuring this parameter:
Delivery methods:
Managing app settings
The Provider ID parameter is required!
Auto-connect
Allows the user to be automatically connected to servers when the app is launched. Additionally, using the subscription-autoconnect-type parameter, you can specify a criterion for connecting to a particular server.
Example of configuring this parameter:
Delivery methods:
Auto-ping
Run automatic testing of the server list when the app is opened, if necessary.
Example of configuring this parameter:
Delivery methods:
Subscriptions auto-update
In the app, you can enable or disable auto-update for all subscriptions at once — this setting applies to all subscriptions simultaneously. If you need to set auto-update only for a specific subscription, use the Subscription auto-update feature. When the global setting is disabled, each subscription determines its own update time.
Example of configuring this parameter:
Delivery methods:
Fragmentation and noises
This is a global fragmentation management parameter for all subscriptions. If you need to assign fragmentation only for a specific subscription or server, use the free functionality and the general documentation instructions for the app. When the global setting is disabled, each subscription determines its own fragmentation settings.
Example of configuring this parameter:
Delivery methods:
Ping
This feature allows you to choose how ping is performed in the app. Four options are available:
via Proxy - GET
via Proxy - HEAD
TCP
ICMP For the "via Proxy" mode, you can additionally specify a URL for the ping check.
Example of configuring this parameter:
Delivery methods:
User-Agent
This feature allows you to change the User-Agent used in headers when receiving the subscription. Useful in cases where the provider blocks requests with non-standard or inappropriate headers.
Example of configuring this parameter:
Delivery methods:
App autostart
This feature allows the app to start automatically when the device is turned on. Currently available only on Android.
Example of configuring this parameter:
Delivery methods:
Update subscription on app launch
This feature automatically updates all subscriptions in the app every time the app is opened.
Example of configuring this parameter:
Delivery methods:
Proxy for selected apps (Android)
In this parameter, you can specify a list of apps that should use the VPN or, conversely, bypass it. If the app is not yet installed on the device but is listed, it will be automatically taken into account on the first VPN connection after installation.
Example of configuring this parameter:
Delivery methods:
Proxy for selected apps Invert (Android)
In this parameter, you can specify a list of apps that should use the VPN or, conversely, bypass it. Selects all apps except those specified in the list.
Example of configuring this parameter:
Delivery methods:
Proxy for selected apps Set (Android)
In this parameter, you can specify a list of apps that should use the VPN or, conversely, bypass it. Clears all currently selected apps, and only then selects the apps from the specified list.
Example of configuring this parameter:
Delivery methods:
Packet analysis (Sniffing)
In xray-core, sniffing is needed to analyze the first packets of a connection and automatically detect the protocol (HTTP, TLS, BitTorrent, etc.) and the domain (SNI/Host). It may affect media loading in the WeChat app. Enabled by default.
Example of configuring this parameter:
Delivery methods:
Disable subscription collapse

This feature disables the ability to collapse a subscription: the list of servers is always displayed in full, in the expanded view.
Example of configuring this parameter:
Delivery methods:
Force-expand subscription
When receiving this parameter via a subscription update, the app will forcibly expand the subscription if it is collapsed. The value false is ignored: the parameter is only used for expanding; you cannot collapse a subscription with it.
Example of configuring this parameter:
Delivery methods:
Ping display mode

Allows displaying icons instead of time values.
Example of configuring this parameter:
Delivery methods:
Mux
Mux in xray-core is a multiplexing feature that allows data from multiple virtual TCP connections to be transmitted over a single physical TCP connection. It is designed to reduce latency from the TCP handshake, but not to increase throughput (it can even slow down large downloads). Configured in the outbound configuration with parameters such as enabled and concurrency (min -1, max 1024).
Example of configuring this parameter:
Delivery methods:
Proxy \ TUN mode (Desktop only)
You must use only one of the two listed parameters! These parameters determine the connection type when adding/updating the subscription.
Example of configuring this parameter:
Delivery methods:
TUN mode (Desktop only)
Determines which mode will be used for the TUN connection.
system— uses the OS's system network stack. Fast and efficient, but depends on correct configuration of routes and firewall.gvisor— user-space gVisor stack. Fewer dependencies on kernel rules and conflicts with iptables/nftables/Docker, better isolation; possibly a small performance downside.
Example of configuring this parameter:
Delivery methods:
Exclude Routes
Defines a list of subnets and IP addresses whose traffic must not pass through the tunnel. Addresses are specified in a single line, separated by spaces and commas.
Example of configuring this parameter:
Delivery methods:
Exclude Routes Set
Defines a list of subnets and IP addresses whose traffic must not pass through the tunnel. Addresses are specified in a single line, separated by spaces and commas. Before installation, the current list is cleared.
Example of configuring this parameter:
Delivery methods:
Themes (iOS only)
Allows you to change the color theme to a personal one. You can create your own theme in the editor — press and hold the "Appearance theme" label to open the menu. A created theme can be exported to the clipboard, as well as imported from the clipboard, from a .happ file, or transferred via a subscription.
Example of configuring this parameter:
Delivery methods:
Include all networks (iOS only)
Enables the use of all networks in the tunnel (NetworkExtension). The feature is available in iOS starting from 16.4. On devices with an older iOS version, the parameter will have no effect, and the corresponding switches in DevSettings will not appear.
Example of configuring this parameter:
Delivery methods:
Exclude local networks (iOS only)
If the "Include all networks" option is enabled, this parameter allows local networks to be excluded from the tunnel (NetworkExtension). Local network traffic will go directly. Available for iOS 16.4+.
Example of configuring this parameter:
Delivery methods:
Exclude APNS (iOS only)
If the "Include all networks" option is enabled, this parameter allows the Apple Push Notification Service (APNS) to be excluded from the tunnel. All Apple notification IP ranges will go directly. Available for iOS 16.4+.
Example of configuring this parameter:
Delivery methods:
Do not use server list filtering
By default, automatic filtering works in Premium subscriptions:\
If the server name contains "only WiFi" — it is visible only when connected via Wi-Fi.
If the name contains "only Mobile" — it is visible only on mobile internet. This option disables this behavior.
Example of configuring this parameter:
Delivery methods:
Pin the current subscription
Allows a subscription to be pinned (Pin) or unpinned in the general list.\
true — pins the subscription to the top.
false — unpins.
Example of configuring this parameter:
Delivery methods:
Block User-Agent changes
Blocks the user from manually changing the User-Agent through the application interface. However, the provider can still change it remotely via the change-user-agent parameter.
Example of configuring this parameter:
Delivery methods:
Change server sorting within the subscription
Determines the display order of servers within the subscription:
without — no sorting (as delivered from the backend).
ping — by latency (servers with lower ping are displayed higher, unavailable ones — at the end).
alphabet — alphabetical.
Example of configuring this parameter:
Delivery methods:
Take tunnel DNS from JSON
The logic applies only when all the following conditions are met: a JSON configuration is used,
there is no routing profile, and the toggle is enabled in the settings.
The system takes the first server from dns.servers in the JSON.
Selection algorithm:
Direct IP: If IPv4/IPv6 is specified, it is set as the DOU DNS of the tunnel.
DoH: If a URL (https://) is specified, the IP is looked up in
dns.hosts.iOS: A full-fledged DoH request is configured.
Android / Desktop: The IP from hosts (DOU) is used.
Object: The value is extracted from the
addressfield, similar to the description above.Fallback DNS: If the main server is invalid, the default is used:
Android / Desktop: 1.1.1.1 (DOU).
iOS: Cloudflare DoH (https://cloudflare-dns.com/dns-query).
Example of configuring this parameter:
Delivery methods:
SOCKS Inbound authentication
Defines the operating mode and credentials for the local SOCKS proxy.\
auto — automatic generation and injection of data into configs and the tunnel.
manual — uses the user and password set in the settings.
from-json — takes settings from the JSON configuration. For URL configs, it works as auto mode in this selection.
disable — disables authentication.
Parameters:
Example configuration:
Delivery methods:
HTTP Inbound authentication
Defines the operating mode and credentials for the local HTTP proxy.\
auto — automatic generation and injection of data into configs and the tunnel.
manual — uses the user and password set in the settings.
from-json — takes settings from the JSON configuration. For URL configs, it works as auto mode in this selection.
disable — disables authentication.
Parameters:
Delivery methods:
User-Agent for downloading geo files
Allows you to change the User-Agent header value when downloading Geo-IP and Geo-Site files.
Available values:
safari-mac
chrome-win
safari-ios
firefox-win
chrome-android
Example configuration:
Delivery methods:
Proxy ping timeout (iOS only)
Sets the timeout (in seconds) when checking availability (ping) through a proxy server. Allowed range: 5 – 15 seconds. Values outside the range are ignored, and the default value of 7 is used.
Example configuration:
Delivery methods:
Hide VPN icon (Hide Proxy Icon)
Controls the display of the VPN icon in the system status bar. The toggle reacts to the presence of both routes (::/128 and 0.0.0.0/8) in the excluded routes list (excluded-routes). When the option is enabled, these routes are automatically added to the excluded list; when disabled, they are removed.
Example configuration:
Delivery methods:
Last updated