Open API تاک‌وی‌پی‌ان

وی‌پی‌ان را با برند خودتان بفروشید

خرید پلن، تحویل کانفیگ و تمدید سرویس را با یک REST API ساده خودکار کنید. هزینه‌ها را از کیف پول بپردازید، کانفیگ‌ها را با نام برند خودتان بسازید و تنها در چند دقیقه API را به سامانه‌تان متصل کنید.

  • REST · JSON
  • Bearer tvp_…
  • API v1.1.0

کانفیگ با برند شما

پیشوند برندتان را یک‌بار تنظیم کنید تا نام همه کانفیگ‌های جدید با برند شما آغاز شود.

اتوماسیون کامل

خرید پلن، دانلود کانفیگ، تمدید، ساخت دوباره کلیدها و بایگانی سرویس‌ها؛ همه از طریق HTTP.

پرداخت از کیف پول

هزینه هر خرید مستقیماً از موجودی کیف پول تومانی یا USDT شما کسر می‌شود.

توکن‌های امن

برای توکن Bearer تاریخ انقضا و محدودیت IP تعیین کنید و هر زمان لازم بود آن را باطل کنید.

شروع سریع

با سه درخواست، اولین کانفیگ وی‌پی‌ان خود را بسازید.

  1. ۱

    ساخت توکن API

    در پنل کاربری ← توسعه‌دهندگان یک توکن بسازید. توکن فقط یک‌بار نمایش داده می‌شود؛ همان موقع آن را کپی کنید و در متغیر محیطی سرورتان نگه دارید.

    دریافت کلید API
    Terminal
    export TAKVPN_TOKEN="tvp_your_token_here"
  2. ۲

    بررسی حساب

    مسیر /me را فراخوانی کنید تا از معتبر بودن توکن مطمئن شوید و موجودی کیف پولتان را ببینید.

    curl -sS -X GET "https://api.takvpn.com/api/open/v1/me" \
      -H "Authorization: Bearer $TAKVPN_TOKEN"
  3. ۳

    خرید پلن

    درخواست POST /orders هزینه را از کیف پول کسر می‌کند و ساخت سرویس را آغاز می‌کند. وضعیت سرویس را از مسیر /vpn پیگیری کنید و پس از فعال‌شدن، کانفیگ را دریافت کنید.

    curl -sS -X POST "https://api.takvpn.com/api/open/v1/orders" \
      -H "Authorization: Bearer $TAKVPN_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"plan_id":1,"currency":"IRT"}'

احراز هویت

توکن را در هدر Authorization همه درخواست‌ها بفرستید. توکن به حساب کاربری شما دسترسی دارد و می‌تواند عملیات مربوط به سرویس‌ها و سفارش‌ها را از طرف شما انجام دهد.

هدرهای درخواست
Authorization: Bearer tvp_…
Accept: application/json

نشانی پایه

https://api.takvpn.com/api/open/v1

محدودیت IP

می‌توانید دسترسی هر توکن را به IPها یا بازه‌های CIDR مشخص محدود کنید. درخواست‌هایی که از نشانی‌های دیگر ارسال شوند رد خواهند شد.

توکن را فقط روی سرور نگه دارید

توکن را هرگز در اپلیکیشن موبایل، کد سمت مرورگر یا مخزن عمومی قرار ندهید. زمان انقضای کوتاهی برای آن در نظر بگیرید و در صورت افشا، فوراً باطلش کنید.

امنیت

با سازوکارهای امنیتی API و نکاتی که برای محافظت از حساب خود باید رعایت کنید آشنا شوید.

توکن فقط در هدر Bearer

توکن فقط از طریق هدر Authorization پذیرفته می‌شود. درخواست‌هایی که توکن را در پارامتر ?token= یا کوکی نشست بفرستند رد می‌شوند؛ بنابراین توکن در گزارش‌ها یا تاریخچه مرورگر باقی نمی‌ماند.

ذخیره امن و نمایش یک‌باره

از هر توکن فقط هش SHA-256 ذخیره می‌شود و مقایسه آن در زمان ثابت انجام می‌گیرد. مقدار کامل توکن نیز فقط هنگام ساخت نمایش داده می‌شود.

محدودیت IP امن

دسترسی توکن را به IPها یا بازه‌های CIDR سرورهای خود محدود کنید. IP واقعی درخواست از پراکسی لبه TakVPN دریافت می‌شود و هدرهای ارسالی کاربر برای جعل IP نادیده گرفته می‌شوند. درخواست از سایر IPها پاسخ 403 با خطای ip not allowed می‌گیرد.

تاریخ انقضا و ابطال فوری

برای هر توکن تاریخ انقضا تعیین کنید و هر زمان لازم بود آن را از پنل باطل کنید. توکن‌های باطل‌شده یا منقضی و توکن‌های متعلق به حساب‌های تعلیق‌شده، بلافاصله پاسخ 401 دریافت می‌کنند.

پاسخ‌های خصوصی و ذخیره‌نشدنی

همه پاسخ‌ها با هدر Cache-Control: no-store و یک X-Request-ID یکتا ارسال می‌شوند. هنگام تماس با پشتیبانی، شناسه درخواست را در اختیار ما بگذارید.

ارتباط فقط از سرور

Open API از CORS پشتیبانی نمی‌کند و باید از بک‌اند شما فراخوانی شود. توکن را در متغیر محیطی یا مخزن امن اسرار نگه دارید؛ هرگز آن را در وب‌سایت، اپلیکیشن موبایل یا مخزن عمومی قرار ندهید.

توکن افشا شده است؟

فوراً توکن را در پنل کاربری ← توسعه‌دهندگان باطل کنید و توکن جدیدی بسازید. توکن قبلی از همان درخواست بعدی دیگر پذیرفته نمی‌شود.

پیشوند برند

نام هر کانفیگ با یک پیشوند آغاز می‌شود. برند خود را در پنل تنظیم کنید تا نام سرویس‌های جدید با پیشوند دلخواه شما ساخته شود. نام سرویس‌های قبلی تغییر نخواهد کرد.

پیش‌فرض

takvpn-starter-30d12345

با برند شما

mybrand-starter-30d12345

پیشوند باید ۲ تا ۲۴ نویسه داشته باشد، با یک حرف کوچک انگلیسی آغاز شود و فقط شامل حروف کوچک انگلیسی، عدد و خط تیره باشد.

تنظیم برند

کیف پول و پرداخت

هزینه ساخت و تمدید سرویس از کیف پول حساب شما کسر می‌شود. در هر درخواست می‌توانید تومان یا USDT را انتخاب کنید. پیش از ثبت سفارش‌های گروهی، از کافی‌بودن موجودی مطمئن شوید.

HTTP 402 — موجودی ناکافی

اگر موجودی کیف پول برای خرید یا تمدید کافی نباشد، API پاسخ 402 برمی‌گرداند و مبلغی کسر نمی‌شود. پس از شارژ کیف پول، درخواست را دوباره ارسال کنید.

قیمت نمایندگی

حساب‌های نمایندگی می‌توانند قیمت‌های اختصاصی خود را از GET /reseller/plans دریافت کنند. این مسیر برای سایر حساب‌ها پاسخ 403 برمی‌گرداند.
شارژ کیف پول

مرجع API

مشخصات 22 مسیر به‌صورت خودکار از سند OpenAPI نمایش داده می‌شود.

فایل OpenAPI

حساب1

پلن‌ها3

سفارش‌ها3

سرویس‌های وی‌پی‌ان15

خطاها

API از کدهای استاندارد وضعیت HTTP استفاده می‌کند. جزئیات هر خطا در بدنه پاسخ و با فرمت JSON برگردانده می‌شود.

  • 400

    400 — درخواست نامعتبر

    ساختار بدنه JSON درست نیست یا یکی از فیلدها مقدار نامعتبری دارد؛ برای نمونه currency باید USDT یا IRT باشد.

  • 401

    401 — احراز هویت ناموفق

    توکن ارسال نشده یا نامعتبر، منقضی یا باطل شده است. در صورت نیاز، از پنل توکن جدیدی بسازید.

  • 402

    402 — موجودی ناکافی

    موجودی کیف پول برای خرید یا تمدید کافی نیست. کیف پول را شارژ کنید و درخواست را دوباره بفرستید.

  • 403

    403 — دسترسی ممنوع

    درخواست از IP مجاز توکن ارسال نشده است (ip not allowed) یا حساب شما اجازه دسترسی به این مسیر را ندارد.

  • 404

    404 — یافت نشد

    پلن یا سرویس موردنظر وجود ندارد یا به حساب شما تعلق ندارد.

  • 409

    409 — تعارض

    وضعیت فعلی سرویس اجازه این عملیات را نمی‌دهد؛ ممکن است سرویس شرایط لازم را نداشته باشد، عملیات دیگری روی آن در حال انجام باشد یا مدیر آن را مسدود کرده باشد.

  • 429

    429 — درخواست‌های بیش از حد

    تعداد درخواست‌ها از حد مجاز گذشته است. به‌اندازه زمان اعلام‌شده در Retry-After صبر کنید و سپس درخواست را دوباره بفرستید.

  • 5XX

    502 / 503 — اختلال سرور وی‌پی‌ان یا توقف موقت فروش

    سرور وی‌پی‌ان با خطا روبه‌رو شده و مبلغی کسر نشده است، یا فروش پلن موقتاً غیرفعال است. کمی بعد دوباره تلاش کنید.

پاسخ خطا
HTTP/1.1 402 Payment Required
X-Request-ID: api-7f3c9b/ZkGq8VtqKx-000043

{
  "error": "insufficient balance"
}

منطق برنامه را بر اساس مقدار error در بدنه پاسخ، مانند insufficient balance یا ip not allowed، پیاده‌سازی کنید؛ زیرا چند خطای متفاوت ممکن است کد وضعیت HTTP یکسانی داشته باشند. خطاهای احتمالی هر مسیر همراه نمونه در مرجع API آمده‌اند.

محدودیت‌ها

محدودیت‌ها جداگانه برای IP، توکن و حساب اعمال می‌شوند. همه توکن‌های یک حساب، سقف درخواست‌های آن حساب را به‌صورت مشترک استفاده می‌کنند. مقادیر پیش‌فرض در ادامه آمده‌اند.

محدودیتسقف مجازاعمال روی
به ازای هر IP60 در دقیقههمه درخواست‌های Open API، پیش از احراز هویت
به ازای هر توکن60 در دقیقههمه درخواست‌های احراز هویت‌شده
خرید به ازای هر حساب10 در دقیقهPOST /orders, POST /orders/bulk
عملیات سرویس به ازای هر حساب10 در دقیقهفعال‌سازی، غیرفعال‌سازی، عملیات گروهی، حذف، تلاش دوباره، تمدید و ساخت دوباره کلیدها
دانلود کانفیگ به ازای هر حساب20 در ساعتGET /vpn/{id}/download
ساخت دوباره کلید به ازای هر سرویسیک بار در هر 7 روزPOST /vpn/{id}/regenerate
هدرهای محدودیت نرخ (پاسخ 429)
HTTP/1.1 429 Too Many Requests
Retry-After: 60
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1767225660
X-Request-ID: api-7f3c9b/ZkGq8VtqKx-000042

{ "error": "rate limited" }

مدیریت درست پاسخ 429

مقدار X-RateLimit-Remaining را در هر پاسخ بررسی کنید و پیش از صفرشدن آن، تعداد درخواست‌ها را کاهش دهید. پس از دریافت پاسخ 429، به‌اندازه Retry-After ثانیه صبر کنید و درخواست را با تأخیر نمایی و فاصله‌ای تصادفی دوباره بفرستید. درخواست خرید را بدون بررسی تکرار نکنید؛ ابتدا نتیجه را با GET /orders بررسی کنید.

سایر محدودیت‌ها

  • حداکثر 5 توکن فعال برای هر حساب
  • حداکثر 20 کانفیگ در هر سفارش گروهی
  • حداکثر 100 شناسه سرویس در هر درخواست فعال‌سازی یا غیرفعال‌سازی گروهی
  • حداکثر 512 نویسه برای هر یادداشت

پرسش‌های متداول

چه کسانی می‌توانند از API استفاده کنند؟

همه کاربران TakVPN می‌توانند بدون نیاز به تأیید جداگانه، از پنل کاربری ← توسعه‌دهندگان توکن بسازند.

اگر موجودی کیف پول تمام شود چه می‌شود؟

درخواست خرید یا تمدید با پاسخ 402 (insufficient balance) رد می‌شود و مبلغی از کیف پول کسر نخواهد شد. پس از شارژ کیف پول، درخواست را دوباره بفرستید.

آیا بعداً می‌توانم پیشوند برند را تغییر دهم؟

بله. پیشوند جدید فقط روی کانفیگ‌هایی اعمال می‌شود که پس از تغییر ساخته شوند و نام سرویس‌های قبلی بدون تغییر می‌ماند.

توکنم را گم کرده‌ام. می‌توانم دوباره ببینمش؟

خیر. هر توکن فقط یک‌بار، هنگام ساخت، نمایش داده می‌شود. توکن قبلی را باطل کنید و توکن جدیدی بسازید.

کانفیگ سرویس جدید را چطور دریافت کنم؟

پس از ارسال POST /orders، وضعیت سرویس را با GET /vpn پیگیری کنید. وقتی سرویس فعال شد، کانفیگ را از GET /vpn/{id}/download دانلود کنید.

در چند دقیقه شروع کنید

توکن بسازید، پیشوند برندتان را تنظیم کنید و همین امروز اولین درخواست خود را بفرستید.

دریافت کلید API