genel dokümantasyon

API Referans

Proxy satın alma ve yenileme işlemlerini otomatikleştirin.

Anahtarları yönet
Referans
tr

Giriş

Planları listelemek, abonelikleri görüntülemek, yeni proxy satın almak, aktif abonelikleri yenilemek ve otomatik IP rotasyonunu yapılandırmak için programatik arayüz.

API tek bir endpoint kullanır: /api/proxy. GET işlemlerinde op query string içinde gönderilir; POST işlemlerinde op JSON body içinde gönderilir.

Hızlı başlangıç

Dashboard -> API Keys üzerinden bir API anahtarı oluşturun ve her isteğin header alanında gönderin.

BASE="https://makeadsafe.com"
API_KEY="rk_your_long_lived_api_key"

Tüm ID değerleri küçük harfli alfanümeriktir.

POST /api/proxy üzerinden {"op":"trial","planId":"..."} ile deneme oluşturma yalnızca seçili API anahtarları için kullanılabilir. Bu özelliği anahtarınız için etkinleştirmek üzere destek ile iletişime geçin. Deneme kullanımı izlenir ve kötüye kullanım durumunda sınırlandırılabilir veya devre dışı bırakılabilir.

Mevcut planlar

API anahtarı sahibine açık aktif proxy planlarını döndürür.

curl -sS 
  -H "x-api-key: $API_KEY" 
  "$BASE/api/proxy?op=plans"
{
  "ok": true,
  "plans": [
    {
      "id": "k17m3q5v7n9p1r2t4w6y8z0a",
      "connectionType": "private",
      "durationMs": 2592000000,
      "priceAmountCents": 1200,
      "popular": true,
      "remainingProxies": 20,
      "network": {
        "name": "NL-AMS",
        "city": "Amsterdam",
        "country": "NL",
        "networkType": "mobile"
      }
    }
  ]
}

Aktif abonelikler

Kimlik bilgileri, protokol URL’leri ve IP rotasyon verileri dahil olmak üzere aboneliklerinizi döndürür.

curl -sS 
  -H "x-api-key: $API_KEY" 
  "$BASE/api/proxy?op=subscriptions"
{
  "ok": true,
  "subscriptions": [
    {
      "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
      "status": "active",
      "activeUntil": 1762592000000,
      "userNote": "Client A",
      "rotationPolicy": 10,
      "label": "12001 - NL - Private",
      "networkLabel": "NL-AMS Amsterdam",
      "credentials": {
        "username": "u_6k8s9d",
        "password": "p_2n4m6q"
      },
      "protocols": {
        "http": "http://u_6k8s9d:[email protected]:12001",
        "socks5": "socks5://u_6k8s9d:[email protected]:12001",
        "vless": "vless://...",
        "shadowsocks": "ss://..."
      },
      "rotate": {
        "rotatePath": "/r/abcd1234",
        "available": true
      }
    }
  ]
}

Yenileme planları

Belirli bir aboneliği yenilemek için uygun olan planları döndürür.

SUB_ID="j97b2f6m1k4n8p3r5t7v9x0z"

curl -sS 
  -H "x-api-key: $API_KEY" 
  "$BASE/api/proxy?op=renewal-plans&subscriptionId=$SUB_ID"
{
  "ok": true,
  "renewalPlans": [
    {
      "id": "k17m3q5v7n9p1r2t4w6y8z0a",
      "connectionType": "private",
      "durationMs": 2592000000,
      "priceAmountCents": 1200
    }
  ]
}

Kullanılabilir ağlar

Belirli bir abonelik için geçiş yapılabilecek ağları döndürür.

SUB_ID="j97b2f6m1k4n8p3r5t7v9x0z"

curl -sS 
  -H "x-api-key: $API_KEY" 
  "$BASE/api/proxy?op=available-networks&subscriptionId=$SUB_ID"
{
  "ok": true,
  "networks": [
    {
      "id": "b1c2d3e4f5g6h7j8k9m0n1p2",
      "networkLabel": "DE-BER Berlin",
      "country": "DE"
    }
  ]
}

switch-network isteginde targetNetwork olarak networks[].id kullanın.

Abonelik satın alma

Seçilen planı kullanarak bakiyenizden bir veya daha fazla yeni abonelik oluşturur.

İsteğe bağlı alanlar:

  • couponCode: satın alma işlemine geçerli bir kupon uygular.
  • repeatCount: pozitif tamsayı, varsayılan 1; oluşturulan her aboneliğin süresini ve fiyatını çarpar.
  • quantity: pozitif tamsayı, varsayılan 1; tek bir istekte birden fazla abonelik oluşturur.
  • os: oluşturulan tüm proxy’lere uygulanan pasif işletim sistemi parmak izi; ios, macos, android, win10 veya win11. multi planlarda kullanılamaz.
{
  "op": "purchase",
  "planId": "k17m3q5v7n9p1r2t4w6y8z0a",
  "couponCode": "MYCODE",
  "repeatCount": 3,
  "os": "ios",
  "quantity": 2
}
curl -sS -X POST 
  -H "x-api-key: $API_KEY" 
  -H "Content-Type: application/json" 
  -d '{"op":"purchase","planId":"k17m3q5v7n9p1r2t4w6y8z0a","repeatCount":3,"os":"ios","quantity":2}' 
  "$BASE/api/proxy"
{
  "ok": true,
  "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
  "subscriptionIds": [
    "j97b2f6m1k4n8p3r5t7v9x0z",
    "n38k2f6m1k4n8p3r5t7v9x0z"
  ],
  "subscriptions": [
    {
      "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
      "status": "active",
      "activeUntil": 1767776000000,
      "label": "12001 - NL - Private",
      "networkLabel": "NL-AMS Amsterdam"
    },
    {
      "subscriptionId": "n38k2f6m1k4n8p3r5t7v9x0z",
      "status": "active",
      "activeUntil": 1767776000000,
      "label": "12002 - NL - Private",
      "networkLabel": "NL-AMS Amsterdam"
    }
  ]
}

Yalnızca bir abonelik oluşturulursa ağ geçidi subscriptions yerine subscription döndürebilir. subscription/subscriptions içindeki öğeler GET /api/proxy?op=subscriptions ile aynı yapıyı kullanır.

Abonelik yenileme

Mevcut bir aboneliği uygun bir yenileme planıyla yeniler.

İsteğe bağlı alanlar:

  • couponCode: yenilemeye geçerli bir kupon uygular.
  • repeatCount: pozitif tamsayı, varsayılan 1; yenileme süresini ve fiyatını çarpar.
{
  "op": "renew",
  "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
  "planId": "q2w4e6r8t0y2u4i6o8p0a2s4",
  "couponCode": "MYCODE",
  "repeatCount": 3
}
curl -sS -X POST 
  -H "x-api-key: $API_KEY" 
  -H "Content-Type: application/json" 
  -d '{"op":"renew","subscriptionId":"j97b2f6m1k4n8p3r5t7v9x0z","planId":"q2w4e6r8t0y2u4i6o8p0a2s4","repeatCount":3}' 
  "$BASE/api/proxy"
{
  "ok": true,
  "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
  "endAt": 1770368000000
}

Bağlantı bilgilerini değiştir

Kimliği doğrulanmış kullanıcıya (JWT) veya API anahtarı sahibine ait aktif abonelik için bağlantı bilgilerini yeniden üretir.

{
  "op": "change-credentials",
  "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z"
}
curl -sS -X POST 
  -H "x-api-key: $API_KEY" 
  -H "Content-Type: application/json" 
  -d '{"op":"change-credentials","subscriptionId":"j97b2f6m1k4n8p3r5t7v9x0z"}' 
  "$BASE/api/proxy"
{
  "ok": true,
  "password": "q7N3x9Lp",
  "vpn": "7f3d9d4a-8b9f-4a93-9f55-2d5e3b7f1c24"
}

Otomatik rotasyon politikasını ayarla

Aktif bir abonelik için otomatik IP rotasyonunu yapılandırır. Bu ayar yalnızca "rotate": { "available": true } olan bağlantılar için kullanılabilir.

rotationPolicy için izin verilen değerler: 0, 5, 10, 15, 30, 60 dakika. Otomatik rotasyonu devre dışı bırakmak için 0 kullanın.

{
  "op": "set-rotation-policy",
  "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
  "rotationPolicy": 10
}
curl -sS -X POST 
  -H "x-api-key: $API_KEY" 
  -H "Content-Type: application/json" 
  -d '{"op":"set-rotation-policy","subscriptionId":"j97b2f6m1k4n8p3r5t7v9x0z","rotationPolicy":10}' 
  "$BASE/api/proxy"
{
  "ok": true
}

Bağlantı ağını değiştir

Aktif bir aboneliği kullanılabilir başka bir ağa taşır.

{
  "op": "switch-network",
  "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
  "targetNetwork": "b1c2d3e4f5g6h7j8k9m0n1p2"
}
curl -sS -X POST 
  -H "x-api-key: $API_KEY" 
  -H "Content-Type: application/json" 
  -d '{"op":"switch-network","subscriptionId":"j97b2f6m1k4n8p3r5t7v9x0z","targetNetwork":"b1c2d3e4f5g6h7j8k9m0n1p2"}' 
  "$BASE/api/proxy"
{
  "ok": true,
  "subscription": {
    "subscriptionId": "j97b2f6m1k4n8p3r5t7v9x0z",
    "status": "active",
    "activeUntil": 1762592000000,
    "userNote": "Client A",
    "rotationPolicy": 10,
    "label": "12001 - DE - Private",
    "networkLabel": "DE-BER Berlin",
    "credentials": {
      "username": "u_6k8s9d",
      "password": "p_2n4m6q"
    },
    "protocols": {
      "http": "http://u_6k8s9d:[email protected]:12001",
      "socks5": "socks5://u_6k8s9d:[email protected]:12001",
      "vless": "vless://...",
      "shadowsocks": "ss://..."
    },
    "rotate": {
      "rotatePath": "/r/abcd1234",
      "available": true
    }
  }
}

Ağ geçidi hataları

  • 400 Geçersiz JSON body
  • 400 Body bir nesne olmalıdır
  • 400 Eksik veya bilinmeyen op
  • 400 Eksik veya geçersiz planId/subscriptionId/targetNetwork/rotationPolicy
  • 400 Geçersiz repeatCount veya quantity
  • 400 Geçersiz os
  • 401 Unauthorized
  • 402 Yetersiz bakiye
  • 403 Forbidden
  • 404 Abonelik bulunamadı
  • 409 Bu abonelik için rotasyon politikası kullanılamıyor
  • 409 Tükendi, plan/ağ pasif veya abonelik durumu geçersiz
  • 409 multi planlarda işletim sistemi seçimi kullanılamaz
  • 429 Rate limited
  • 500 Internal error