Subscription URL
Any HTTP or HTTPS URL can be imported as a subscription source. GridHunter downloads the response and detects supported share links, Base64 subscriptions or JSON automatically.
GridHunter LogisticsINDEPENDENT DELIVERY NETWORK
GridHunter accepts managed subscription URLs, individual proxy share links, QR codes and raw Xray JSON profiles. Imported content is converted into an Android VpnService runtime configuration backed by Xray Core.
Any HTTP or HTTPS URL can be imported as a subscription source. GridHunter downloads the response and detects supported share links, Base64 subscriptions or JSON automatically.
Individual links can be pasted from the clipboard or scanned from a QR code. Supported schemes are VLESS, VMess, Trojan, Shadowsocks, Hysteria2, SOCKS5 and WireGuard.
GridHunter accepts a raw JSON object or array. Existing routing, observatory and balancer structures are preserved when the profile needs to remain a complete Xray configuration.
DNS, MTU, IPv6, per-app bypass and local routing preferences are applied only at runtime. GridHunter does not rewrite the original subscription or source profile.
A subscription endpoint can return plain share links, Base64-encoded share links or JSON. GridHunter sends an Accept header compatible with both text and JSON.
Return one supported link per line.
vless://UUID@example.net:443?type=xhttp&security=reality&sni=example.net#Finland trojan://PASSWORD@example.net:443?type=grpc&security=tls&sni=example.net#Poland
The complete text subscription may be encoded using standard Base64, URL-safe Base64 or MIME Base64. Padding is optional.
A response beginning with { or [ is parsed as an Xray JSON profile or an array of profiles.
Use JSON when you need multiple outbounds, routing rules, balancers, observatory configuration or GridHunter display metadata in a structured form.
Subscription providers can add optional response metadata without modifying the body.
| Header | Purpose | Encoding |
|---|---|---|
profile-title | Subscription/group title displayed by GridHunter. | Plain text or base64:<payload> |
announce | Optional announcement associated with the subscription. | Plain text or base64:<payload> |
Subscription-Userinfo | Provider-supplied subscription usage/status information. | Plain text or base64:<payload> |
HTTP/1.1 200 OK Content-Type: application/json profile-title: GridHunter Top announce: Welcome to GridHunter Subscription-Userinfo: upload=0; download=0; total=0
Standard VLESS URI syntax is supported. The user part must be a valid UUID.
vless://UUID@host:443?type=xhttp&security=reality&sni=host&fp=chrome&pbk=PUBLIC_KEY&sid=SHORT_ID#Server%20Name
| Parameter | Notes |
|---|---|
type | Transport. See Supported transports. |
security | Common values: reality, tls, none. |
sni | TLS/Reality server name. |
fp | Client fingerprint when used by the selected security mode. |
pbk | Reality public key. |
sid | Reality short ID. |
spx | Reality SpiderX value where applicable. |
extra | JSON object, either URL-encoded JSON or decoded JSON text. |
VMess uses the conventional Base64-encoded JSON format.
vmess://BASE64({
"v":"2",
"ps":"Server name",
"add":"example.net",
"port":"443",
"id":"UUID",
"scy":"auto",
"net":"websocket",
"tls":"tls",
"sni":"example.net",
"fp":"chrome",
"path":"/ws",
"host":"example.net"
})Recognized fields include add, port, id, ps, scy, net, tls, sni, fp, path, host, type and alpn.
trojan://PASSWORD@example.net:443?type=grpc&security=tls&sni=example.net#Server
TLS is used by default when security is not specified. A non-empty flow parameter is rejected.
Both common SIP002 layouts are accepted.
ss://BASE64(method:password)@example.net:8388#Server ss://BASE64(method:password@example.net:8388)#Server
hysteria2://AUTH@example.net:443?sni=example.net&insecure=0#Server hy2://AUTH@example.net:443?sni=example.net#Server
GridHunter currently supports ordinary single-port Hysteria2 links.
socks5://example.net:1080#Anonymous socks5://USER:PASSWORD@example.net:1080#Authenticated
Anonymous and username/password SOCKS profiles are supported.
GridHunter uses a compact WireGuard share-link representation. Private and peer public keys must decode to 32-byte WireGuard keys.
wireguard://PRIVATE_KEY@example.net:51820?publickey=PEER_PUBLIC_KEY&address=10.0.0.2/32&mtu=1420&keepalive=25#Server
| Parameter | Notes |
|---|---|
publickey | Required peer public key. |
presharedkey | Optional preshared key. |
address | Optional comma-separated interface CIDR values. |
mtu | Optional value from 576 to 65535. |
keepalive | Optional value from 0 to 65535. |
reserved | Optional three comma-separated byte values from 0 to 255. |
GridHunter accepts a single JSON object or an array of JSON objects.
A full config containing routing, observatory, burstObservatory or a routing balancer is kept as a complete profile. Simple configs may be exposed as individual connection profiles when this is safe.
GridHunter derives profile/group names from fields such as remarks, profile.title, display_name, outbound tags and route declarations.
For GridHunter-generated JSON, route metadata may include inbound_name, country, country_flag, display_emoji, target_type and target_tag.
Transport aliases are normalized by the client.
| Input | Normalized transport |
|---|---|
raw, tcp, empty | raw |
ws, websocket | websocket |
grpc | grpc |
httpupgrade | httpupgrade |
xhttp, splithttp, http | xhttp |
kcp, mkcp | mkcp |
Subscription authors can provide normal Xray routing. GridHunter also has user-controlled local routing that is applied after import without rewriting the source.
Optional local bypass for Russian destinations. Disabled by default.
Optional direct route for private/local networks. Disabled by default.
Domain exact, suffix, keyword and IP/CIDR rules can target VPN, Direct or Block.
Android applications can be excluded from VpnService locally by the user.
Diagnostic tooling is designed for network troubleshooting rather than user-content inspection.
GridHunter diagnostics may measure DNS/HTTPS timings, public IP checks, VPN/Xray status, route health, traffic counters and technical error metadata.
Raw logs are opt-in. Remote diagnostic correlation and report upload require explicit user consent and are off by default for each diagnostics screen launch.
Diagnostic tooling does not collect messages, contacts, files, screenshots, browser history, notification content or private application data.
Single-port links only. Obfuscation and port hopping are not supported.
Native method/password profiles are supported; plugin links are rejected.
Uses GridHunter's compact share-link schema or native Xray JSON.
AmneziaWG, SSR and TUIC are outside the current Android import scope.
Use placeholders when publishing examples. Never expose real credentials or private keys.
vless://UUID@fi.example.net:443?type=xhttp&security=reality&sni=fi.example.net&fp=chrome&pbk=PUBLIC_KEY&sid=01#Finland trojan://PASSWORD@pl.example.net:443?type=grpc&security=tls&sni=pl.example.net#Poland socks5://user:password@proxy.example.net:1080#SOCKS5
HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 profile-title: GridHunter Top announce: Maintenance window on Sunday vless://UUID@fi.example.net:443?type=xhttp&security=reality#Finland vless://UUID@pl.example.net:443?type=raw&security=reality#Poland
| Application | GridHunter |
|---|---|
| Package ID | com.gridhunter.vpn |
| VPN API | Android VpnService |
| Runtime | Xray Core through libv2ray |
| Minimum Android | Android 8.0 / API 26 |
| Current Play target | API 36 |
| First Google Play release | 1.0.0 / versionCode 1100 |
This page documents the current GridHunter Android import and runtime contract. Unsupported fields should not be assumed to be ignored: some unsupported formats are rejected intentionally to avoid producing a connection that appears valid but behaves differently from the source configuration.