Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/SpaceNeuroX/proxy-turn-vk-android/llms.txt

Use this file to discover all available pages before exploring further.

A subscription is a JSON file you host on an HTTP or HTTPS server. qWDTT fetches it on a configurable schedule and replaces all profiles in the subscription’s folder with the latest list from the server. This lets you push server changes, rotate VK hashes, or update passwords to all users without asking anyone to re-import manually.

Full Schema Example

{
  "subscriptionName": "DarkBit VPN",
  "description": "Subscription valid until 2026-08-24",
  "trafficUsedMb": 76.8,
  "trafficLimitMb": 102912,
  "updatedAt": "2026-06-28",
  "version": 1,
  "profiles": [
    {
      "name": "Server 1 — Frankfurt",
      "peer": "203.0.113.10:56000",
      "hashes": "vk_hash_1,vk_hash_2",
      "workers": 18,
      "port": 9000,
      "password": "SecretPass01"
    },
    {
      "name": "Server 2 — Amsterdam",
      "peer": "198.51.100.20:56000",
      "hashes": "vk_hash_3",
      "workers": 16,
      "port": 9000,
      "password": "SecretPass02"
    }
  ]
}

Top-Level Field Reference

subscriptionName
string
required
Name of the subscription. qWDTT uses this as the folder name in the profile list and as the subscription card title. Also accepted as groupName.
profiles
array
required
Array of profile objects. Each element follows the JSON Profile format. Also accepted as servers.
description
string
A human-readable description shown on the subscription card in qWDTT. Useful for expiry dates, usage notes, or support contact.
trafficUsedMb
number
Traffic consumed by the user in megabytes. qWDTT uses this value to render a progress bar on the subscription card. Also accepted as trafficMb.
trafficLimitMb
number
Traffic limit in megabytes. Used together with trafficUsedMb to calculate the progress bar fill percentage. Also accepted as trafficLimit.
updatedAt
string
A server-side date or timestamp string displayed on the subscription card. qWDTT does not parse or compare this value — it is shown as-is. Also accepted as updated.
version
integer
Schema version number. Reserved for future use; not currently reflected in the qWDTT UI.

Profile Object Fields

Each object in the profiles array uses the same schema as a standalone JSON profile:
FieldAlt KeyRequiredDefaultDescription
nameno"Imported"Profile display name
peeryesServer ip:dtls_port
hashesvkHashesnoComma-separated VK call hashes
workersworkersPerHashno16Workers per hash
portlistenPortno9000Local UDP listen port
passwordpassyesConnection password

Hosting Requirements

URL Scheme

The subscription URL must start with http:// or https://. qWDTT rejects any URL that does not begin with one of these two schemes.

Content Type

Set Content-Type: application/json for best compatibility. Plain text (text/plain) also works. The response body may be raw JSON or Base64-encoded JSON.
The app sends the following headers when fetching a subscription:
Accept: application/json, text/plain, */*
User-Agent: qWDTT-Subscription/1.0

Setting Up a Subscription

1

Create the JSON file

Write your subscription JSON with at least subscriptionName and profiles. Host it on any web server or static hosting provider at a stable URL.
2

Add in qWDTT

In qWDTT, go to the Profiles tab → tap + → select Subscription. Paste or type the URL and tap Add. qWDTT fetches the file immediately, creates a folder named after subscriptionName, and populates it with the profiles.
3

Verify the subscription card

The subscription card appears at the top of the Profiles screen, showing the description, traffic bar (if provided), and last sync time. Tap the card to open the profile folder.

Generating a Subscription from qWDTT

You can also export an existing folder as a subscription-compatible JSON:
  1. On the Profiles tab, tap next to a folder.
  2. Select Manage foldersExport group.
  3. qWDTT produces a JSON with subscriptionName and profiles[] that you can host directly.

Auto-Refresh Behavior

qWDTT automatically re-fetches subscriptions based on the interval set in Settings → Subscription auto-refresh:
Setting valueBehavior
-1Never auto-refresh; manual refresh only
0Refresh every time the app is opened
6Refresh if last sync was more than 6 hours ago
12Refresh if last sync was more than 12 hours ago (default)
24Refresh if last sync was more than 24 hours ago
Auto-refresh only runs when the tunnel is not active to avoid disrupting an ongoing connection.
Every refresh fully replaces all profiles inside the subscription folder with the list returned by the server. Do not manually add or import profiles into a subscription folder — they will be removed on the next refresh. Use a regular (non-subscription) folder for profiles you manage manually.

Build docs developers (and LLMs) love