FAQ

Header Configuration
Add Configuration
Privacy
Auto-Update

What are x-duckray- custom headers?

DuckRay Client can read special HTTP headers starting with x-duckray-, which are sent by the server along with the subscription file.

How to add custom parameters?

You can pass any parameters to your clients (e.g., a link to your rules, Telegram support contact, or any other text). The only requirement is that the header must start with the prefix x-duckray-.

Instructions for Remnawave panel

  1. Open the Subscription section.
  2. Go to Settings.
  3. Find the Extra Headers section.
  4. Enter the Key: starting with x-duckray- (e.g. x-duckray-faq or x-duckray-support).
  5. Enter the Value: your text or URL.

Supported Subscription Headers

DuckRay Client reads standard HTTP headers returned by the panel along with the subscription file.

  • profile-title — subscription name, displayed in the app
  • announce — admin message, shown on connect
  • support-url — support link (shown as a button in the app)
  • profile-update-interval — auto-update interval in hours
  • subscription-userinfo — traffic info (upload=...; download=...; total=...; expire=...)
  • x-duckray-* — custom parameters from admin (see card above)

How to add a configuration or subscription?

An external subscription is a URL pointing to a configuration file hosted on your server. The client downloads and automatically updates it when needed.

How to connect

  1. Copy your subscription URL, e.g.: https://your-server.com/sub/token
  2. Paste it into the key input field in the DuckRay client.
  3. The client will automatically download the configuration and connect.

Direct Keys

If you don't have a subscription URL, you can paste a single direct key: vless://..., vmess://..., trojan://..., ss://.... This is a one-time connection without auto-update.

Configuration Auto-Update

If the server returns the profile-update-interval header, the client will automatically update the subscription at the specified interval (in hours).

Compatibility: external subscriptions work with any panel (Marzban, 3x-ui, Remnawave, etc.). Configuration updates without reconnecting.

What does the client send to the server?

On every subscription update, the client appends a few headers to the request. This allows administrators to see device statistics and manage access.

Transmitted headers

  • x-hwid — unique device ID (max 36 characters)
  • x-device-model — device model
  • x-device-os — operating system (Windows, macOS, Android, etc.)
  • x-ver-os — OS version
  • X-App-Version — app version
  • X-App-Platform — platform (windows, macos, android, etc.)

How to disable

HWID and device data transmission can be disabled in the client settings: Settings → disable "Send HWID".

Data is not shared with third parties. It is only accessible to the administrator of your panel.

How does auto-update work?

DuckRay Client automatically updates the configuration on every launch and periodically if the server sets an interval.

How to set the auto-update interval

The server must return this header in the subscription response:

  • profile-update-interval: 12 — update every 12 hours
  • profile-update-interval: 24 — update once a day

Manual update

Tap the subscription refresh button on the main app screen. The configuration will update without reconnecting.

If the server does not return the profile-update-interval header, auto-update will not run. Update manually.