رفتن به محتوای اصلی
116
کشورها
۱۳۳ سرویس، ۴۰۰ مسیر اپراتور، بیش از ۱۵٬۴۰۰ قیمت زنده. فقط ارز دیجیتال، بدون هیچ بررسی هویتی.
اجاره شماره

SmsNoKYC برای توسعه‌دهندگان: تأیید پیامکی که می‌توانید اسکریپت کنید

کل چرخه تأیید را از طریق یک رابط JSON اسکریپت کنید. ۱۱۶ کشور، ۱۳۳ سرویس، ۴۰۰ مسیر اپراتوری و بیش از ۱۵۴۰۰ قیمت زنده پشت تعداد اندکی اندپوینت قرار دارند: تخصیص یک شماره، دریافت کد واردشده آن، نگه‌داشتن اجاره تا ۹۰ روز، تسویه با کریپتو. هیچ کلید API‌ای اینجا وجود ندارد — عبارت کلیدی تنها اعتبارنامه‌ای است که ارائه خواهید داد.

زمان مطالعه: ۵ دقیقه REST · JSON · OpenAPI 3.0 مشخصات OpenAPI →

احراز هویت الزامی است. نشست‌ها بر پایه کوکی کار می‌کنند. با عبارت کلیدی خود وارد شوید — از طریق سایت یا مستقیماً در برابر اندپوینت احراز هویت مستندشده در پایین — و هر درخواست بعدی خودبه‌خود آن نشست را به ارث می‌برد.

ساخته‌شده برای اسکریپت‌ها، خط‌لوله‌ها و عامل‌های خودمختار

ارائه‌دهندگان قدیمی OTP می‌خواهند قبل از ارسال اولین درخواستتان قرارداد امضا شود، تطبیق تأیید شود و حداقل ماهانه متعهد شود. SmsNoKYC ترتیب را برعکس می‌کند: یک عبارت seed داشته باشید، موجودی را از $25 با هر یک از ۸ ارز دیجیتال — از جمله Bitcoin، Monero، Ethereum، Litecoin، TRON، USDT، SOL — شارژ کنید، و از هر کلاینت HTTPS که همین حالا دارید شروع به تماس کنید. صورتحساب به‌ازای هر شماره از $0.01، در بیش از ۱۵٬۴۰۰ نقطه قیمت زنده، محاسبه می‌شود.

در کار روزمره، این نقاط پایانی جریان‌های ثبت‌نام را درون CI تأیید می‌کنند، کدهای OTP را به مرورگرهای headless و ناوگان‌های اسکرپر می‌رسانند، حساب‌های تلگرام یا واتس‌اپ را با اجاره‌های اختصاصی ۷ تا ۹۰ روزه زنده نگه می‌دارند، و تأیید هویت را در ۱۱۶ کشور با کنترل صریح روی ۴۰۰ مسیر اپراتور در سه سطح — مجازی، فیزیکی، پرمیوم — پخش می‌کنند. عامل‌های هوش مصنوعی از طریق یک سرور MCP بومی، که در صفحه agents پوشش داده شده، به همان کاتالوگ دسترسی دارند تا یک مدل ابزارمحور بدون هیچ رابط سفارشی بتواند شماره بخرد و کد بخواند.

احراز هویت

نشست‌ها مبتنی بر کوکی هستند — هیچ کلید حامل برای ساخت یا چرخش وجود ندارد. ورود برنامه‌نویسی‌شده سه مرحله دارد:

  1. عبارت کلیدی خود را با POST به /auth-api.php ارسال کنید
  2. کوکی تنظیم‌شده در پاسخ را ثبت کنید
  3. آن کوکی را به هر درخواست بعدی ضمیمه کنید
POST /auth-api.php

عبارت بازیابی شما را با یک نشست فعال مبادله می‌کند.

پارامترنوعالزامیتوضیحات
actionstringالزامیباید "login" باشد
seedstringالزامیعبارت کلیدی ۱۶ کاراکتری متصل به حساب شما (فرمت AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://smsnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://smsnokyc.com/auth-api.php", data={ "action": "login", "seed": "AbC3-dEf4-gHj5-kLm6" }) data = resp.json() print(data) # {"success": true, "user": {...}} # session object now holds the cookie for all future requests
const resp = await fetch("https://smsnokyc.com/auth-api.php", { method: "POST", credentials: "include", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "action=login&seed=AbC3-dEf4-gHj5-kLm6" }); const data = await resp.json(); console.log(data); // {success: true, user: {...}}
پاسخ موفق
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
پاسخ خطا
{ "success": false, "error": "Invalid seed." }

آدرس پایه

هر نقطه پایانی از یک الگوی URL پیروی می‌کند:

https://smsnokyc.com/api.php?action={action}

پاسخ‌ها در هر حالت به‌صورت JSON می‌رسند. بدنه‌های POST می‌توانند به‌صورت application/json یا application/x-www-form-urlencoded ارسال شوند.

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

دو قاعده بر حجم درخواست‌ها حاکم است:

نقطه پایانیمحدودیتبازه زمانی
احراز هویت5 تلاش15 دقیقه
تمام endpoint‌های دیگربدون محدودیت سخت—

محدودیت نرخ درخواست: ورود ۵ تلاش در هر ۱۵ دقیقه را می‌پذیرد؛ سایر نقاط پایانی در حال حاضر سقف ثابتی ندارند، هرچند سوءاستفاده مداوم می‌تواند در سطح بالاتر کند شود. درخواست‌های خود را با فاصله معقول ارسال کنید.

مدیریت خطا

هر خطا به‌صورت یک شیء JSON حاوی یک فیلد error بازمی‌گردد:

{ "error": "Description of what went wrong" }
کد HTTPمعنی
200موفقیت (بدنه پاسخ را برای خطاهای سطح برنامه بررسی کنید)
403توکن CSRF نامعتبر
405روش HTTP اشتباه (مثال: GET روی endpoint فقط POST)
429محدودیت نرخ بیش از حد مجاز

خطاهای سطح برنامه که بیشتر با آن‌ها روبه‌رو خواهید شد:

خطاعلت
"Login required"نشست منقضی شده یا احراز هویت نشده
"Insufficient balance"موجودی ناکافی — شامل فیلدهای need و have
"Service not available for this country"عدم موجودی یا خدمت غیرفعال برای کشور انتخاب‌شده
"Missing country or service"پارامترهای الزامی ارائه نشده‌اند

لیست کشورها

GET /api.php?action=countries

هر کشوری که در حال حاضر موجودی دارد را فهرست می‌کند — ۱۱۶ کشور در آخرین شمارش. نقطه پایانی باز، بدون نیاز به نشست.

cURL
Python
JavaScript
curl https://smsnokyc.com/api.php?action=countries
resp = session.get("https://smsnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://smsnokyc.com/api.php?action=countries"); const countries = await resp.json();
پاسخ
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

لیست سرویس‌ها

GET /api.php?action=services&country={code}

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

پارامترنوعالزامیتوضیحات
countrystringاختیاریکد کشور ISO 3166-1 alpha-2 (مثال: us، gb، de)
پاسخ (با کشور)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

لیست اپراتورها

GET /api.php?action=operators&country={code}

مسیرهای اپراتور پشت یک کشور را فهرست می‌کند. هر اپراتور یک سطح به‌همراه یک ضریب دارد که روی قیمت پایه سرویس اعمال می‌شود.

پارامترنوعالزامیتوضیحات
countrystringالزامیکد کشور ISO 3166-1 alpha-2
پاسخ
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

انواع اپراتور: virtual — مبتنی بر VoIP، کم‌هزینه‌ترین، گاهی توسط پلتفرم‌های سخت‌گیر رد می‌شود. physical — سخت‌افزار سیم‌کارت واقعی، پذیرش قوی‌تر. premium — بالاترین نرخ پذیرش و سریع‌ترین تحویل، حدود ۱۰ ثانیه.

خرید شماره (فعال‌سازی SMS)

POST /api.php?action=buy

یک شماره را برای یک تأیید رزرو می‌کند. تا ۲۰ دقیقه متعلق به شماست؛ اگر در آن بازه پیامی نرسد، هزینه به‌طور خودکار به موجودی شما بازمی‌گردد.

پارامترنوعالزامیتوضیحات
countrystringالزامیکد کشور (مثال: us)
service_idintegerالزامیشناسه خدمت از لیست خدمات
operator_idintegerاختیاریشناسه اپراتور از لیست اپراتورها. برای اپراتور پیش‌فرض خالی بگذارید.
cURL
Python
JavaScript
curl -X POST https://smsnokyc.com/api.php?action=buy \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"country":"us","service_id":12,"operator_id":5}'
resp = session.post("https://smsnokyc.com/api.php?action=buy", json={ "country": "us", "service_id": 12, "operator_id": 5 }) order = resp.json() print(f"Order #{order['order_id']} — ${order['price']}")
const resp = await fetch("https://smsnokyc.com/api.php?action=buy", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ country: "us", service_id: 12, operator_id: 5 }) }); const order = await resp.json();
پاسخ موفق
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
خطا: موجودی ناکافی
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

لیست سفارشات

GET /api.php?action=orders

آخرین ۵۰ سفارش شما را همراه با شماره‌ها و هر کد ثبت‌شده ارائه می‌دهد. تا زمانی که فعال‌سازی منتظر پیامک است، اینجا را بررسی کنید.

پاسخ
[ { "id": 1847, "price": "0.53", "status": "completed", "phone_number": "+12025551234", "sms_code": "847293", "created_at": "2026-04-09 14:32:00", "country_code": "us", "country_name": "USA", "service_name": "WhatsApp", "operator_name": "T-Mobile" } ]

وضعیت سفارش: active — همچنان منتظر دریافت پیام. completed — کد دریافت شد. cancelled — توسط شما بسته شد. refunded — پس از سکوت و اتمام مهلت به‌طور خودکار بازگردانده شد. expired — مهلت به پایان رسید.

دریافت قیمت اجاره

GET /api.php?action=rental_price&country={code}&operator_id={id}&duration={days}

هزینه نگه‌داشتن یک شماره اختصاصی روی یک اپراتور مشخص برای مدت انتخابی را برآورد می‌کند.

پارامترنوعالزامیتوضیحات
countrystringالزامیکد کشور
operator_idintegerالزامیشناسه اپراتور
durationintegerالزامیمدت اجاره به روز: 7، 14، 30، یا 90
پاسخ
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

اجاره شماره

POST /api.php?action=rental_buy

یک یا چند شماره اختصاصی را قفل می‌کند. هر کدام برای کل مدت — ۷ تا ۹۰ روز — منحصراً مال شما باقی می‌ماند و پیامک ورودی نامحدود از هر سرویسی می‌پذیرد.

پارامترنوعالزامیتوضیحات
countrystringالزامیکد کشور
operator_idintegerالزامیشناسه اپراتور
durationintegerالزامی7، 14، 30، یا 90 روز
qtyintegerاختیاریتعداد شماره‌ها برای اجاره (1–10، پیش‌فرض: 1)
پاسخ موفق
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

دریافت اطلاعات کاربر

GET /api.php?action=user

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

احراز هویت شده
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
احراز هویت نشده
{ "logged_in": false }

اسکریپت سرتاسری

اسکریپت زیر کل چرخه را در پایتون اجرا می‌کند — نشست، جستجوی کاتالوگ، خرید، سپس بررسی مکرر تا رسیدن کد:

Python
import requests, time BASE = "https://smsnokyc.com" SEED = "AbC3-dEf4-gHj5-kLm6" s = requests.Session() # 1. Authenticate s.post(f"{BASE}/auth-api.php", data={"action": "login", "seed": SEED}) # 2. Check balance user = s.get(f"{BASE}/api.php?action=user").json() print(f"Balance: ${user['balance']}") # 3. Get services for USA services = s.get(f"{BASE}/api.php?action=services&country=us").json() whatsapp = next(svc for svc in services if svc["name"] == "WhatsApp") print(f"WhatsApp: ${whatsapp['price']} ({whatsapp['stock']} in stock)") # 4. Buy a number order = s.post(f"{BASE}/api.php?action=buy", json={ "country": "us", "service_id": whatsapp["id"] }).json() print(f"Order #{order['order_id']} created") # 5. Poll for SMS code for _ in range(60): orders = s.get(f"{BASE}/api.php?action=orders").json() my_order = next(o for o in orders if o["id"] == order["order_id"]) if my_order["sms_code"]: print(f"SMS code: {my_order['sms_code']}") print(f"Phone: {my_order['phone_number']}") break print("Waiting for SMS...") time.sleep(5) else: print("Timeout — balance will be refunded automatically")

پاسخ به سؤالات توسعه‌دهندگان

API توسعه‌دهندگان SmsNoKYC چه عملیاتی را در اختیار می‌گذارد؟

هر کاری که داشبورد انجام می‌دهد، یک اسکریپت هم می‌تواند انجام دهد: کاتالوگ ۱۱۶ کشور و ۱۳۳ سرویس را بگیرد، بیش از ۱۵٬۴۰۰ نقطه قیمت زنده پخش‌شده روی ۴۰۰ مسیر اپراتور را بررسی کند، یک شماره برای یک OTP یک‌بارمصرف تخصیص دهد، کد ورودی را همان لحظه رسیدن بخواند، یک اجاره اختصاصی برای ۷، ۱۴، ۳۰ یا ۹۰ روز نگه دارد، و هر سفارش را بازرسی کند. همه‌ی این‌ها JSON ساده روی HTTPS است، با کریپتو صورتحساب می‌شود، و هیچ مرحله هویتی در هیچ‌جای این جریان وجود ندارد.

آیا قبل از اولین درخواستم باید یک کلید API تولید کنم؟

چیزی برای تولید یا چرخش وجود ندارد. عبارت seed شما خودِ اعتبارنامه است: یک‌بار آن را با POST به /auth-api.php بفرستید، کوکی نشستی که سرور برمی‌گرداند را نگه دارید، و آن کوکی را با هر تماس بعدی ارسال کنید. بدون داشبورد کلید، بدون دست‌دهی OAuth، بدون تقویم انقضا — یک seed یک نشست باز می‌کند، و کل مدل همین است.

دسترسی به خود API چقدر هزینه دارد؟

دسترسی هیچ هزینه‌ای ندارد — بدون هزینه ماهانه، بدون سطح عضویت، بدون حداقل حجم تماس. شما فقط بابت هر شماره پرداخت می‌کنید: کدهای تأیید یک‌باره از $0.01 شروع می‌شوند و معمولاً بین $0.20 و $1 قرار می‌گیرند، درحالی‌که اجاره‌های اختصاصی برای دوره ۷ روزه از $4.20 آغاز می‌شوند. موجودی‌ها با ۸ ارز دیجیتال شارژ می‌شوند (حداقل شارژ $25)، و فعال‌سازی‌ای که هرگز پیامکش نرسد بدون هیچ اقدامی از سوی شما خودش بازپرداخت می‌شود.

آیا می‌توانم از هر زبانی — یا از یک ایجنت هوش مصنوعی — یکپارچه‌سازی کنم؟

هر چیزی که با HTTPS صحبت کند مناسب است: Python، Node.js، Go، Rust، PHP، Ruby، Java، C#، یا حتی cURL خام درون یک اسکریپت شل. مرجع ما قطعه‌کدهای قابل اجرا در cURL، Python و JavaScript ارائه می‌دهد، و /openapi.json یک سند کامل OpenAPI 3.0 برای تولید کلاینت‌های تایپ‌شده در اختیار می‌گذارد. ایجنت‌های خودمختار نیز به‌طور بومی پوشش داده می‌شوند — یک سرور MCP اختصاصی به مدل‌های ابزارمحور اجازه می‌دهد خودشان شماره بخرند و کد دریافت کنند؛ صفحه /agents راه‌اندازی را توضیح می‌دهد.

وقتی شماره خریداری‌شده ساکت می‌ماند چه اتفاقی می‌افتد؟

چیزی از دست نمی‌دهید. هر فعال‌سازی یک بازه دریافت ۲۰ دقیقه‌ای دارد؛ وقتی بدون پیام بسته شود، پلتفرم خودش سفارش را لغو می‌کند و کل مبلغ را به موجودی شما بازمی‌گرداند. بدون تیکت، بدون فرم، بدون انتظار برای پشتیبانی. بلافاصله دوباره بخرید — ارتقا به سطح اپراتور فیزیکی یا پرمیوم معمولاً نرخ تحویل را بالا می‌برد.

چقدر می‌توانم قبل از اعمال محدودیت نرخ درخواست بزنم؟

فقط ورود دارای سقف سخت است: ۵ تلاش در هر ۱۵ دقیقه به ازای هر آی‌پی، برای جلوگیری از حدس زدن عبارت کلیدی. اندپوینت‌های کاتالوگ، خرید، سفارش و اجاره در حال حاضر سهمیه ثابتی ندارند. سرعت را منطقی نگه دارید — بررسی اندپوینت سفارش‌ها هر ۳ تا ۵ ثانیه هر کدی را دریافت می‌کند — و ترافیک پایدار را زیر حدود ۱۰ درخواست در ثانیه نگه دارید، چون ترافیک‌های سنگین‌تر ممکن است در لایه لبه کند شوند.

آن را ارسال کنید

یک seed از صفحه اصلی بگیرید، $25 یا بیشتر کریپتو شارژ کنید، و اولین کد تأیید شما فقط پنج درخواست فاصله دارد. روی یک LLM به‌جای یک اسکریپت می‌سازید؟ مدل خود را به سرور MCP سایت SmsNoKYC اشاره دهید یا راهنمای یکپارچه‌سازی عامل هوش مصنوعی را دنبال کنید — کاتالوگ کامل ۱۱۶ کشور و ۱۳۳ سرویس به یک فراخوانی ابزار تبدیل می‌شود.

هر چیزی که مرجع باز می‌گذارد در مرکز راهنما پوشش داده شده، واژه‌نامه پیامکی اصطلاحات را رمزگشایی می‌کند، و فعالیت زنده شبکه را در حال حرکت نشان می‌دهد. پشتیبانی پس از ورود، از طریق تیکت‌های درون‌برنامه‌ای انجام می‌شود.