Skip to content

Supported Headers

When Prizrak-Box fetches a remote subscription, it reads specific HTTP response headers from the server. These headers let subscription providers control profile metadata, traffic display, automatic updates, logo, announcements, and more.

Headers are case-insensitive. Unknown headers are silently ignored.


Profile-Title Remnawave

The display name for the subscription in Prizrak-Box.

Profile-Title header example

PropertyValue
Typestring
EncodingPlain UTF-8 or Base64 (base64: prefix)

Example:

Profile-Title: My VPN Subscription
Profile-Title: base64:TXkgVlBOIFN1YnNjcmlwdGlvbg==

If Profile-Title is absent, the app falls back to the filename from the Content-Disposition header, then to a generated name like Sub-2024-01-01.

Profile-Logo

URL of an image to use as the subscription logo in the app.

Profile-Logo header example

PropertyValue
Typestring (URL)
Supported formatsPNG, SVG
Max file size2 MB
Allowed schemeshttp, https

Example:

Profile-Logo: https://example.com/logo.png

The logo is downloaded at fetch time and cached locally. An empty or invalid URL clears the cached logo.

Content-Disposition Remnawave

Used as a fallback source for the profile title when Profile-Title is absent.

PropertyValue
Typestring
Parsed fieldfilename parameter

Example:

Content-Disposition: attachment; filename="my-vpn.yaml"

The filename value (without extension) becomes the profile title if Profile-Title is not set.


Subscription-Userinfo Remnawave

Reports traffic usage statistics displayed in the profile card.

Subscription-Userinfo header example

PropertyValue
Typestring (semicolon-separated key=value pairs)
Fieldsupload, download, total, expire
UnitsBytes (for traffic fields), Unix timestamp (for expire)

Example:

Subscription-Userinfo: upload=1073741824; download=5368709120; total=107374182400; expire=1893456000
FieldDescription
uploadBytes uploaded
downloadBytes downloaded
totalTotal traffic quota in bytes
expireExpiry time as Unix timestamp

Profile-Update-Interval Remnawave

Sets the automatic refresh interval for this subscription.

PropertyValue
Typeinteger
UnitHours

Example:

Profile-Update-Interval: 24

When this header is present, Prizrak-Box automatically re-fetches the subscription at the specified interval in hours.


Profile-Web-Page-Url Remnawave

A URL for the subscription provider’s home page or portal.

PropertyValue
Typestring (URL)

Example:

Profile-Web-Page-Url: https://myvpn.example.com

Displayed in the profile detail view as a tappable link.

Support-Url Remnawave

A support or contact URL (e.g. Telegram channel, help desk).

PropertyValue
Typestring (URL)

Example:

Support-Url: https://t.me/myvpn_support

Displayed alongside the profile for users to reach support.


Announce Remnawave

A text announcement displayed in the app as a banner on the profile card.

Announce header example

PropertyValue
Typestring
Max length200 characters
EncodingPlain UTF-8 or Base64 (base64: prefix)

Examples:

Announce: Maintenance scheduled for Saturday 02:00–04:00 UTC
Announce: base64:TWFpbnRlbmFuY2Ugc2NoZWR1bGVk
Announce-Url

A URL linked from the announcement banner.

PropertyValue
Typestring (URL)

Example:

Announce-Url: https://status.myvpn.example.com

Tapping the announcement banner in the app opens this URL.


These headers implement subscription URL migration — allowing providers to move subscriptions to a new address without users manually updating their URL.

new-url

Instructs the client to replace the entire subscription URL with a new one.

PropertyValue
Typestring (full URL)
PriorityHighest — takes precedence over new-domain
HopsMax 3 consecutive migrations

Example:

new-url: https://new.example.com/subscription/abc123

After receiving this header, Prizrak-Box immediately saves the new URL and re-fetches from it. The original URL is replaced permanently in the profile.

new-domain

Instructs the client to replace only the hostname of the subscription URL, preserving the path and query string.

PropertyValue
Typestring (bare host, no scheme, no path)
Example valuenew.example.com or new.example.com:8443

Example:

new-domain: cdn.example.com

If the current subscription URL is https://old.example.com/sub/abc, this produces https://cdn.example.com/sub/abc.

fallback-url

An alternative full URL to try if the primary subscription URL fails (non-2xx or connection error).

PropertyValue
Typestring (full URL)
PersistedYes — saved to the profile for future fetches

Example:

fallback-url: https://backup.example.com/subscription/abc123

Prizrak-Box tries the primary URL first. If it fails, it falls back to fallback-url. The fallback value is updated (or cleared) on every successful fetch.

fallback-domain

An alternative domain to substitute into the primary URL if it fails.

PropertyValue
Typestring (bare host)
PersistedYes — saved to the profile

Example:

fallback-domain: backup.example.com

If the primary URL is https://main.example.com/sub, this fallback tries https://backup.example.com/sub.


Android UI Controls Android only

Section titled “Android UI Controls ”

The following headers are supported exclusively by the Android version of Prizrak-Box. They allow subscription providers to control certain UI elements and behaviour of the Android client.

All values are applied once on subscription fetch and persist in the profile until the next update.

pxa-latency-dots

Controls how proxy latency is displayed in the proxy list.

PropertyValue
Typeinteger
Values0 = latency numbers, 1 = latency dots

Example:

pxa-latency-dots: 1
pxa-simple-mode

Activates a simplified interface mode — shows only the first select proxy group of your Mihomo configuration on the app’s main screen.

PropertyValue
Typeinteger
Values1 to enable

Example:

pxa-simple-mode: 1
pxa-global-mode-mp

Shows the Global Mode menu item in the bottom-left corner of the current profile card when a VPN connection is active. When not set (or 0), the item may be hidden.

PropertyValue
Typeinteger
Values1 to show

Example:

pxa-global-mode-mp: 1
pxa-conns-view-mp

Shows the Connections view menu item in the bottom-left corner of the current profile card when a VPN connection is active.

PropertyValue
Typeinteger
Values1 to show

Example:

pxa-conns-view-mp: 1
pxa-rp-mp

Shows the Rules Provider (RP) menu item in the bottom-left corner of the current profile card when a VPN connection is active.

PropertyValue
Typeinteger
Values1 to show

Example:

pxa-rp-mp: 1

Prizrak-Box supports the RemnaWave HWID Device Limit header format. When a subscription uses hardware-based device authentication, two groups of headers are involved: headers sent by the client with every request, and headers returned by the server in the response.

Headers Sent by Prizrak-Box (Request Headers)

Section titled “Headers Sent by Prizrak-Box (Request Headers)”

When a profile has HWID active, Prizrak-Box automatically attaches the following headers to every subscription fetch:

HeaderDescription
X-HwidHardware fingerprint — the unique identifier for this device
X-Device-OSOperating system name (e.g. Windows, Android, macOS)
X-Ver-OSOS version string (e.g. 14, 11, 14.5)
X-Device-ModelDevice model name (e.g. Pixel 8, iPhone 14 Pro Max)

Headers Returned by Server (Response Headers)

Section titled “Headers Returned by Server (Response Headers)”

The server returns the following headers to communicate HWID status. Prizrak-Box reads and acts on each of them.

X-Hwid-Active Remnawave

Always true when the HWID Device Limit is enabled on the server side. Prizrak-Box uses this to mark the profile as HWID-protected in the UI.

PropertyValue
Typestring (boolean)
Valuestrue
X-Hwid-Active: true
X-Hwid-Not-Supported Remnawave

true if HWID Device Limit is enabled on the server, but the client did not send an X-Hwid header. This signals to the app that the device was not identified and the subscription may be restricted.

PropertyValue
Typestring (boolean)
Valuestrue
X-Hwid-Not-Supported: true
X-Hwid-Max-Devices-Reached Remnawave

true if HWID Device Limit is enabled and the user has reached their maximum number of allowed devices. The app can display a warning to the user that no new devices can be added.

PropertyValue
Typestring (boolean)
Valuestrue
X-Hwid-Max-Devices-Reached: true

Advanced Templates (PXD) Deprecated

Section titled “Advanced Templates (PXD) ”