PROVIDER PORTAL

Tools for providers

Distribute subscriptions via branded smproxy:// links, track statistics and message your users. All free.

Get started in a minute

Register, get a Provider ID, add it to your subscription as a response header — and statistics will start filling up in the dashboard.

Create account → Sign in
LINK GENERATORS

Turn a subscription link into smproxy://

One click and the user adds your subscription. Below are working generators (they call provider.smproxy.io).

🔒

Encrypted link

smproxy://crypt1/…

Hides the real subscription URL — the user won't see your server address.

Your link
📱

Device binding

smproxy://addhw/…

The link opens only on the device with the given HWID — anti-sharing protection.

Your link
Tools

Build a client link or a routing profile right in the browser — no need to write JSON by hand.

WireGuard / AmneziaWG link generator → Routing profile builder →

Full API spec and header reference are in the developer documentation.

API — GENERATE PROGRAMMATICALLY

How to generate links from code

The forms above wrap two POST endpoints. Call them directly from your backend or bot to issue links automatically.

POST · form-urlencoded or JSON Base: https://provider.smproxy.io/public/
🔒

crypto-link

POST /public/crypto-link
REQUEST (cURL)
curl -X POST \
  https://provider.smproxy.io/public/crypto-link \
  -d 'url=https://example.com/sub/abc123'
… OR JSON
curl -X POST \
  https://provider.smproxy.io/public/crypto-link \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com/sub/abc123"}'
RESPONSE (200)
{
  "link": "smproxy://crypt1/BASE64URL…"
}
📱

hwid-link

POST /public/hwid-link
REQUEST (cURL)
curl -X POST \
  https://provider.smproxy.io/public/hwid-link \
  -d 'url=https://example.com/sub/abc123' \
  -d 'hwid=A1B2C3D4-5E6F-…'
… OR JSON
curl -X POST \
  https://provider.smproxy.io/public/hwid-link \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com/sub/abc123",
      "hwid":"A1B2C3D4-5E6F-…"}'
RESPONSE (200)
{
  "link": "smproxy://addhw/BASE64URL…"
}

Parameters

Field
Description
url
Subscription link (required for both)
hwid
Device identifier — only for hwid-link
The body is accepted as both form-urlencoded and application/json. Errors — { "error": "…" } with a 4xx/5xx code.

Node.js example

const res = await fetch(
  "https://provider.smproxy.io/public/crypto-link",
  {
    method: "POST",
    headers: {
      "Content-Type":
        "application/x-www-form-urlencoded"
    },
    body: new URLSearchParams({
      url: "https://example.com/sub/abc"
    })
  }
);
const { link } = await res.json();