SUKUNA API

REST API to programmatically create, list, verify and revoke SUKUNA proxy keys. Built so resellers and panels can integrate SUKUNA in minutes.

Overview

Base URL: https://proxy.vezxa.com/api

Interactive playground (Swagger UI): https://proxy.vezxa.com/docs

All endpoints accept and return application/json.

Authentication

Send your API token on every protected request. Either header is accepted:

Authorization: Bearer <YOUR_API_TOKEN>
X-API-Key: <YOUR_API_TOKEN>
Where do I get my token? Contact @emperorsukuna1 on Telegram. The token is generated server-side on the VPS in /opt/zentrax/api/.env.

Create a key

POST/api/keys

Body fields (provide at least one duration source):

FieldTypeDescription
durationstringShorthand like 30m, 6h, 14d
daysintNumber of days
hoursintNumber of hours
secondsintNumber of seconds
ipstring?Pre-bind to a specific public IP
notestring?Free-text label (customer name, order id…)
curl -X POST https://proxy.vezxa.com/api/keys \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"duration":"7d","note":"customer-42"}'
200 OK
{
  "key": "SUKUNA-AB12CD34",
  "status": "active",
  "expires_at": 1761501234,
  "expires_at_iso": "2026-10-26T14:30:34Z",
  "remaining_seconds": 604800,
  "ip": null,
  "created_at": 1760896434,
  "source": "api",
  "note": "customer-42"
}

List keys

GET/api/keys?status=active&limit=100

Optional query: status = active | expired | revoked. limit defaults to 1000.

curl -H "Authorization: Bearer $TOKEN" \
  "https://proxy.vezxa.com/api/keys?status=active"

Get a key

GET/api/keys/{key}

curl -H "Authorization: Bearer $TOKEN" \
  https://proxy.vezxa.com/api/keys/SUKUNA-AB12CD34

Update / Extend a key

PATCH/api/keys/{key}

FieldTypeDescription
statusstringactive or revoked
extendstringAdd duration, e.g. 30d
extend_secondsintAdd seconds
ipstringOverride / set bound IP
notestringUpdate label
curl -X PATCH https://proxy.vezxa.com/api/keys/SUKUNA-AB12CD34 \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"extend":"30d"}'

Revoke / Reactivate

POST/api/keys/{key}/revoke

POST/api/keys/{key}/reactivate

curl -X POST -H "Authorization: Bearer $TOKEN" \
  https://proxy.vezxa.com/api/keys/SUKUNA-AB12CD34/revoke

Delete a key

DELETE/api/keys/{key}

curl -X DELETE -H "Authorization: Bearer $TOKEN" \
  https://proxy.vezxa.com/api/keys/SUKUNA-AB12CD34

Verify (public, no auth)

GET/api/keys/{key}/verify?ip=1.2.3.4

Useful from client apps. Returns { "valid": true|false, "reason": ... }.

curl "https://proxy.vezxa.com/api/keys/SUKUNA-AB12CD34/verify?ip=1.2.3.4"

Stats

GET/api/stats

{"total": 42, "active": 30, "expired": 8, "revoked": 4}

Errors

CodeMeaning
400Bad request — missing/invalid fields
401Missing or invalid API token
404Key not found
500Server misconfig (token not set)

Quick integration (Node.js)

const TOKEN = process.env.SUKUNA_API_TOKEN;
const BASE  = "https://proxy.vezxa.com/api";

async function createKey(days, note) {
  const r = await fetch(`${BASE}/keys`, {
    method: "POST",
    headers: { "Authorization": `Bearer ${TOKEN}`, "Content-Type": "application/json" },
    body: JSON.stringify({ days, note }),
  });
  return r.json();
}

createKey(7, "order-#1024").then(console.log);

Python

import requests
BASE  = "https://proxy.vezxa.com/api"
TOKEN = "YOUR_TOKEN"
H     = {"Authorization": f"Bearer {TOKEN}"}

r = requests.post(f"{BASE}/keys", json={"duration":"30d"}, headers=H)
print(r.json())

PHP

$ch = curl_init("https://proxy.vezxa.com/api/keys");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer $TOKEN","Content-Type: application/json"],
  CURLOPT_POSTFIELDS => json_encode(["duration"=>"7d"]),
]);
echo curl_exec($ch);