OneXray supports interoperable formats and its proprietary onexray:// URL scheme.
| Type | Share format |
|---|---|
| Outbound | Standard Xray share text/QR code when supported by libXray, or a OneXray Link. |
| Subscription | HTTPS URL or a OneXray Link. |
| Full Config | OneXray Link or JSON text/file. |
| Raw Json | OneXray Link or JSON text/file. |
| Xray Profile | OneXray Link or JSON text/file. |
| GeoData | OneXray Link or Backup. |
OneXray URL Scheme#
OneXray Links preserve OneXray-specific config types that standard Xray links cannot represent:
onexray://onexray.com/config/add?type=outbound|profile|full|raw&data=<percent-encoded-base64-json>#Name
onexray://onexray.com/sub/add?url=<percent-encoded-https-url>[&age=x25519|hybrid]#Name
onexray://onexray.com/dat/add?type=domain|ip&url=<percent-encoded-https-url>#NameOnly the types above are accepted. Legacy type=setting, backup archives, and other commands are not supported.
An age-encrypted subscription link carries only the key type, never the sender’s key pair. The receiving app generates a new local key pair, sends its public key on the first subscription request, and stores the pair only after a successful import.
When a shared config references custom GeoData available in OneXray, matching GeoData links are placed before the config link so they are imported first.
Platform Registration#
Android, iOS, and installed macOS apps register onexray:// directly. Windows EXE/winget and Linux DEB packages also register it; Windows/Linux ZIP packages do not.
The Mac App Store build and OneXraySE register the same scheme. If both are installed, macOS may open either app.
Import Decision#
- If trimmed text starts with
onexray://, OneXray parses each valid OneXray Link. - If it starts with
https://, OneXray treats it as subscription input and accepts one HTTPS link per line. - Otherwise, libXray parses the content as outbound share text.
Subscription URL fragments are used as names and removed before storage. Text files support txt, json, yaml, and yml; QR images support png, jpg, and jpeg.
Generic HTTPS/share-text import creates only subscriptions and outbound nodes. Full Config, Raw Json, Xray Profile, and GeoData require their corresponding OneXray Link or their dedicated import flow.