सार्वजनिक दस्तावेज़

API संदर्भ

प्रॉक्सी खरीद और नवीनीकरण को स्वचालित करें।

कुंजियां प्रबंधित करें
संदर्भ
hi

परिचय

प्लान सूची देखने, सदस्यताएं देखने, नए प्रॉक्सी खरीदने, सक्रिय सदस्यताओं को नवीनीकृत करने और स्वचालित IP रोटेशन कॉन्फ़िगर करने के लिए प्रोग्रामेटिक इंटरफेस।

API एक ही endpoint उपयोग करती है: /api/proxy। GET ऑपरेशन के लिए op को query string में भेजें; POST ऑपरेशन के लिए op को JSON body में भेजें।

त्वरित शुरुआत

Dashboard -> API Keys में API key बनाएं और हर request के header में भेजें।

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

सभी ID लोअरकेस अल्फ़ान्यूमेरिक मान होते हैं।

POST /api/proxy के जरिए {"op":"trial","planId":"..."} के साथ ट्रायल जारी करना केवल चुनी हुई API keys के लिए उपलब्ध है। अपनी key पर यह क्षमता सक्षम कराने के लिए support से संपर्क करें। ट्रायल उपयोग की निगरानी की जाती है और दुरुपयोग की स्थिति में इसे सीमित या अक्षम किया जा सकता है।

उपलब्ध प्लान

API key के मालिक के लिए उपलब्ध सक्रिय प्रॉक्सी प्लान लौटाता है।

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"
      }
    }
  ]
}

सक्रिय सदस्यताएं

आपकी सदस्यताएं लौटाता है, जिनमें credentials, protocol URLs और IP rotation डेटा शामिल है।

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
      }
    }
  ]
}

रिन्यूअल प्लान

किसी विशेष सदस्यता को नवीनीकृत करने के लिए योग्य प्लान लौटाता है।

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
    }
  ]
}

उपलब्ध नेटवर्क

किसी विशेष सब्सक्रिप्शन को स्विच करने के लिए उपलब्ध नेटवर्क लौटाता है।

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 अनुरोध में networks[].id को targetNetwork के रूप में इस्तेमाल करें।

सदस्यता खरीदें

चुने गए प्लान के साथ आपके बैलेंस से एक या कई नई सदस्यताएं बनाता है।

वैकल्पिक फ़ील्ड:

  • couponCode: खरीद पर वैध कूपन लागू करता है।
  • repeatCount: धनात्मक पूर्णांक, डिफ़ॉल्ट 1; हर बनाई गई सदस्यता की अवधि और कीमत को गुणा करता है।
  • quantity: धनात्मक पूर्णांक, डिफ़ॉल्ट 1; एक ही अनुरोध में कई सदस्यताएं बनाता है।
  • os: सभी बनाए गए प्रॉक्सी पर लागू पैसिव OS फ़िंगरप्रिंट; ios, macos, android, win10 या win11। multi प्लान के लिए उपलब्ध नहीं है।
{
  "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"
    }
  ]
}

यदि केवल एक सदस्यता बनाई जाती है, तो gateway subscriptions की जगह subscription लौटा सकता है। subscription/subscriptions के आइटम वही संरचना इस्तेमाल करते हैं जो GET /api/proxy?op=subscriptions में मिलती है।

सदस्यता नवीनीकरण

किसी मौजूदा सदस्यता को योग्य रिन्यूअल प्लान के साथ नवीनीकृत करता है।

वैकल्पिक फ़ील्ड:

  • couponCode: नवीनीकरण पर वैध कूपन लागू करता है।
  • repeatCount: धनात्मक पूर्णांक, डिफ़ॉल्ट 1; नवीनीकरण की अवधि और कीमत दोनों को गुणा करता है।
{
  "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
}

कनेक्शन क्रेडेंशियल बदलें

प्रमाणित यूज़र (JWT) या API key मालिक की सक्रिय सदस्यता के लिए कनेक्शन क्रेडेंशियल दोबारा जनरेट करता है।

{
  "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"
}

ऑटो-रोटेशन नीति सेट करें

सक्रिय सदस्यता के लिए स्वचालित IP रोटेशन कॉन्फ़िगर करता है। यह सेटिंग केवल उन कनेक्शनों के लिए उपलब्ध है जिनमें "rotate": { "available": true } हो।

rotationPolicy के लिए अनुमत मान: 0, 5, 10, 15, 30, 60 मिनट। ऑटो-रोटेशन बंद करने के लिए 0 का उपयोग करें।

{
  "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
}

कनेक्शन नेटवर्क बदलें

सक्रिय सब्सक्रिप्शन को किसी अन्य उपलब्ध नेटवर्क में ले जाता है।

{
  "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
    }
  }
}

गेटवे त्रुटियां

  • 400 अमान्य JSON body
  • 400 Body एक object होना चाहिए
  • 400 op गायब है या अज्ञात है
  • 400 planId/subscriptionId/targetNetwork/rotationPolicy गायब या अमान्य है
  • 400 repeatCount या quantity अमान्य है
  • 400 os अमान्य है
  • 401 Unauthorized
  • 402 बैलेंस अपर्याप्त है
  • 403 Forbidden
  • 404 सदस्यता नहीं मिली
  • 409 इस सदस्यता के लिए रोटेशन नीति उपलब्ध नहीं है
  • 409 स्टॉक समाप्त, प्लान/नेटवर्क निष्क्रिय, या सदस्यता की स्थिति अमान्य है
  • 409 multi प्लान के लिए OS चयन उपलब्ध नहीं है
  • 429 Rate limited
  • 500 Internal error