API v1 — kararli

Cikis Sunucusu Tunel API Referansi

Kendi cikis sunucunuzdaki WireGuard-uzeri-TCP kullanicilarini kendi sisteminizden olusturun ve silin. Otomatik uygulama acikken peer, MikroTik yonlendiricinizde de olusturulur.

https://servernet.cloud/tr/developers/tunnel · 2026/08/25

GET /api/v1/tunnel/servers TCP tunelli cikis sunuculari tunnel:read
GET /api/v1/tunnel/{service}/accounts kullanicilar ve durumlari tunnel:read
POST /api/v1/tunnel/{service}/accounts kullanici olustur — anahtar bir kez tunnel:write
DELETE /api/v1/tunnel/{service}/accounts/{name} kullanici sil tunnel:write
GET /api/v1/tunnel/{service}/agent otomatik uygulama durumu tunnel:read
POST /api/v1/tunnel/{service}/agent otomatik uygulamayi ac tunnel:write

1On kosullar ve kimlik dogrulama

Bu arayuz yalnizca TCP tuneli yapilandirilmis cikis sunuculari icin calisir. Boyle bir profili olmayan sunucu listede hic gorunmez.

  1. Musteri panelinizde Guvenlik sayfasini acin ve bir API tokeni olusturun.
  2. tunnel:read ve tunnel:write kapsamlarini isaretleyin.
  3. Gerekirse tokene IP kisitlamasi ekleyin.
  4. Token yalnizca bir kez gosterilir; hemen kaydedin.
curl -H "Authorization: Bearer sn_xxxxxxxx" \
     https://servernet.cloud/api/v1/tunnel/servers
IP kisitlamasi hesapta degil tokenin uzerindedir. Hesap duzeyi IP kurallari kendi tarayicinizi da disarida birakir.

2Servis kimliginizi bulun

Sonraki tum yollar sayisal bir kimlik ister. Bu cagridan alin ve kodunuzda saklayin.

GET https://servernet.cloud/api/v1/tunnel/servers

{"ok": true, "data": [{
  "service_id": 49,
  "name": "blackwood-vip-1",
  "status": "active", "writable": true,
  "host": "sn-571100.servernet.cloud", "port": 8443,
  "subnet": "10.77.0.0/24", "next_ip": "10.77.0.5",
  "accounts": 7, "max": 100,
  "agent": {"installed": true, "alive": true,
            "last_seen_at": "2026-08-24T08:16:18+00:00",
            "pending_jobs": 0}
}]}
service_idsonraki yollarda {service} yerine gecen kimlik
hostson kullanicinin baglandigi ad veya adres
subnetsunucunun dahili araligi; her kullanici adresi buradan verilir
next_ipilk bos adres, ip vermezseniz bu secilir
writablefalse ise servis etkin degildir ve yeni hesap verilmez
agentyonlendiricide otomatik uygulama durumu
Bu numara musteri kodunuz degildir. Musteri kodu hesabi tanimlar, servisi degil.

3Yonlendiricide otomatik uygulama

Yonlendiriciniz bizim tarafimizdan erisilebilir degil, bu yuzden biz baglanmayiz: o bize sorar. Asagidaki iki satir bir betik ve zamanlayici kurar; kuyrugunuzu duzenli okur ve yeni peerlari uygular.

  1. Asagidaki cagri ile ajan tokenini alin; yanit calistirmaya hazir iki satiri da doner.
  2. Bu iki satiri MikroTik terminalinizde calistirin.
  3. Ilk calisma birkac saniye surer cunku kok sertifika da kurulur.
  4. Sonrasinda durum alive olmalidir.
POST https://servernet.cloud/api/v1/tunnel/49/agent

{"ok": true, "data": {
  "token": "sna_49_xxxxxxxx",
  "replaced": false,
  "install": [
    "/tool fetch url=\"https://servernet.cloud/agent/tunnel/install\" http-header-field=\"X-Agent-Token: sna_49_xxxxxxxx\" dst-path=snet-agent.rsc",
    "/import file-name=snet-agent.rsc"
  ]
}}
Bu uc noktaya her cagri onceki tokeni aninda iptal eder. Once yonlendirici terminalini acin, sonra cagriyi yapin.

installed token verildigi anlamina gelir; alive yonlendiricinin gercekten yakin zamanda baglandigi anlamina gelir. Ikisi bilerek ayridir.

GET https://servernet.cloud/api/v1/tunnel/49/agent

{"ok": true, "data": {
  "installed": true, "alive": true,
  "last_seen_at": "2026-08-24T08:16:18+00:00",
  "pending_jobs": 0
}}

Sunucu yonlendiriciye asla komut gondermez. Yanit yalnizca ad, adres ve genel anahtar tasir; betik her birini dogrular ve komutu kendisi olusturur.

4Kullanici olusturma

POST https://servernet.cloud/api/v1/tunnel/49/accounts
{"name": "ali-mobile"}

{"ok": true, "data": {
  "name": "ali-mobile", "ip": "10.77.0.5",
  "public_key": "...", "private_key": "...",
  "delivery": {"mode": "agent", "status": "pending",
               "job_id": 41, "agent_alive": true},
  "router_command": "/interface/wireguard/peers/add ...",
  "config": { ... sing-box ... }
}}

Giris alanlari

namezorunlu, 2 ile 24 kucuk latin harfi, rakam, tire veya alt cizgi
ipistege bagli, vermezseniz siradaki bos adres secilir
formatistege bagli, varsayilan singbox; eski uygulamalar icin legacy
Ozel anahtar yalnizca bu yanitta doner ve asla saklanmaz. Saklamazsaniz geri getirilemez.

config alani eksiksiz bir sing-box yapilandirmasidir; son kullaniciya verin, json olarak kaydedip uygulamasina aktarsin.

delivery alani isin nerede oldugunu soyler: agent kuyruga alindi demektir; manual ajan kurulu degil demektir. router_command her iki durumda da doner.

Tek basina 201 kaydedildi demektir, baglanti kuruldu degil. Hesap durumu active olana kadar yapilandirma calismaz.

5Kullanicilari ve durumlarini listeleme

Her kullanicinin, dahili bir etiketi degil son kullanicinin deneyimini bildiren bir state alani vardir.

GET https://servernet.cloud/api/v1/tunnel/49/accounts

{"ok": true, "data": {
  "service_id": 49, "next_ip": "10.77.0.6",
  "agent": {"installed": true, "alive": true, "pending_jobs": 0},
  "accounts": [
    {"name": "ali-mobile", "ip": "10.77.0.5",
     "public_key": "...", "issued_at": "...",
     "state": "active"}
  ]
}}
active yonlendiricide uygulandi, kullanici baglanir pending hala kuyrukta, birkac saniye bekleyin failed yonlendirici reddetti veya ajan calismadi; kaydi kontrol edin

Bu kuyruktan once olusturulan kullanicilarin is kaydi yoktur ve bilerek active olarak bildirilir.

6Kullanici silme

DELETE https://servernet.cloud/api/v1/tunnel/49/accounts/ali-mobile

{"ok": true, "data": {
  "name": "ali-mobile",
  "delivery": {"mode": "agent", "status": "pending"},
  "router_command": "/interface/wireguard/peers/remove [find name=\"ali-mobile\"]"
}}
Ajan etkinken peer yonlendiriciden sizin icin kaldirilir. Ajan yoksa, silme komutunu calistirana kadar kullanici baglanmaya devam eder.

7Hatalar ve sinirlar

Basarisiz yanit her zaman error alaninda makine tarafindan okunabilir bir kod tasir.

insufficient_scopetoken gerekli kapsama sahip degil
not_foundhesabinizda boyle bir sunucu veya hesap yok
service_not_activeservis askida, suresi dolmus veya iptal
bad_namead izin verilen bicime uymuyor
name_takenbu adla bir hesap zaten var
bad_ipadres bu sunucunun dahili araliginda degil
ip_takenbu adres zaten kullanimda
limit_reachedhesap sinirina ulastiniz

Hiz sinirlari

okuma120 / 1 dk
olusturma ve silme20 / 1 dk
ajan tokeni5 / 1 dk
sunucu basina kullanici100

← Alan Adi Bayilik API Referansi