API تأیید SMS — SMSNoKYC
تأیید OTP را سرتاسر خودکار کنید. شمارههای مجازی در بیش از ۱۹۰ کشور رزرو کنید، کدهای پیامک را در چند ثانیه بخوانید، خطوط اختصاصی بلندمدت اجاره کنید و هر سفارش را از یک سطح REST یگانه فرمان دهید — بدون کلید API، بدون احراز هویت، پرداخت با ارز دیجیتال.
چرا توسعهدهندگان API سیمنوکیوایسی را انتخاب میکنند
SMSNoKYC انعطافپذیرترین SMS verification API برای توسعهدهندگانی است که به ناشناسی، پوشش جهانی و قیمتگذاری شفاف نیاز دارند. برخلاف ارائهدهندگان سنتی SMS-OTP که دسترسی را پشت قراردادهای سازمانی، حداقلهای ماهانه و پرسشنامههای KYC قفل میکنند، SMSNoKYC با هر HTTPS client کار میکند، دقیقاً به ازای هر شماره هزینه میگیرد و بیش از ۲۰ ارز دیجیتال از جمله Bitcoin، Monero، Ethereum، USDT، USDC، Solana، Litecoin، XRP، TRON و Toncoin را میپذیرد.
موارد استفاده رایج شامل خودکارسازی ثبتنام حسابها برای QA در مقیاس بزرگ، بازیابی رمزهای یکبارمصرف برای عوامل headless و رباتهای CI، اعتبارسنجی جریانهای نیازمند شماره تلفن در محیطهای continuous integration، اجاره شمارههای اختصاصی بلندمدت برای حسابهای Telegram یا WhatsApp که به دریافت مستمر SMS نیاز دارند، و تأمین تأیید هویت توزیعشده جغرافیایی در ۱۹۰+ کشور با کنترل صریح سطح اپراتور — مجازی، فیزیکی یا پریمیوم میشود.
احراز هویت
API از احراز هویت جلسه مبتنی بر کوکی استفاده میکند. برای احراز هویت برنامهنویسی:
- یک درخواست POST به
/auth-api.phpهمراه با عبارت seed خود ارسال کنید - کوکی نشست را از پاسخ ذخیره کنید
- کوکی را در تمام درخواستهای API بعدی قرار دهید
با عبارت seed خود احراز هویت کنید و یک نشست برقرار کنید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| action | string | الزامی | باید "login" باشد |
| seed | string | الزامی | عبارت seed دسترسی 16 کاراکتری شما (مثال: AbC3-dEf4-gHj5-kLm6) |
آدرس پایه
تمام نقاط پایانی API نسبت به:
تمام پاسخها به فرمت JSON هستند. نقاط پایانی POST هر دو بدنه درخواست application/json و application/x-www-form-urlencoded را میپذیرند.
محدودیت درخواستها
API محدودیتهای نرخ زیر را اعمال میکند:
| نقطه پایانی | محدودیت | بازه زمانی |
|---|---|---|
| احراز هویت | 5 تلاش | 15 دقیقه |
| تمام endpointهای دیگر | بدون محدودیت سخت | — |
محدودیت نرخ: احراز هویت به 5 تلاش در هر 15 دقیقه محدود است. سایر endpointها در حال حاضر محدودیت نرخ ندارند، اما استفاده بیش از حد ممکن است محدود شود. از فواصل درخواست معقول استفاده کنید.
مدیریت خطا
تمام خطاها یک شیء JSON با فیلد <code>error</code> برمیگردانند:
| کد 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" | پارامترهای الزامی ارائه نشدهاند |
لیست کشورها
تمام کشورهای فعال با شمارههای مجازی موجود را برمیگرداند. نیازی به احراز هویت نیست.
لیست سرویسها
خدمات موجود برای یک کشور خاص را شامل قیمتها و موجودی برمیگرداند. بدون کد کشور، تمام خدمات بدون قیمت را برمیگرداند.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| country | string | اختیاری | کد کشور ISO 3166-1 alpha-2 (مثال: us، gb، de) |
لیست اپراتورها
اپراتورهای موجود برای یک کشور خاص را برمیگرداند. هر اپراتور یک نوع و یک ضریب قیمت اعمالشده بر قیمت پایه خدمت دارد.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| country | string | الزامی | کد کشور ISO 3166-1 alpha-2 |
انواع اپراتور: virtual — شمارههای VoIP، ارزانترین، ممکن است توسط برخی سرویسها مسدود شوند. physical — سیمکارت واقعی، نرخ موفقیت بالاتر. premium — سریعترین تحویل (~10 ثانیه)، بالاترین نرخ موفقیت.
خرید شماره (فعالسازی SMS)
یک شماره مجازی برای تأیید پیامکی یکبار مصرف خریداری کنید. شماره به مدت 20 دقیقه فعال است. اگر پیامکی دریافت نشود، موجودی شما بهصورت خودکار برگردانده میشود.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| country | string | الزامی | کد کشور (مثال: us) |
| service_id | integer | الزامی | شناسه خدمت از لیست خدمات |
| operator_id | integer | اختیاری | شناسه اپراتور از لیست اپراتورها. برای اپراتور پیشفرض خالی بگذارید. |
لیست سفارشات
50 سفارش اخیر شما را شامل شمارهتلفنها و کدهای پیامکی برمیگرداند. این endpoint را برای بررسی کدهای پیامکی دریافتی در سفارشات فعال فراخوانی کنید.
وضعیت سفارشات: active — در انتظار پیامک. completed — پیامک دریافت شد. cancelled — توسط کاربر لغو شد. refunded — بازپرداخت خودکار (پیامکی قبل از انقضا دریافت نشد). expired — منقضی شده.
دریافت قیمت اجاره
قیمت اجاره یک شماره اختصاصی از یک اپراتور خاص برای مدت معین را دریافت کنید.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| country | string | الزامی | کد کشور |
| operator_id | integer | الزامی | شناسه اپراتور |
| duration | integer | الزامی | مدت اجاره به روز: 7، 14، 30، یا 90 |
اجاره شماره
یک یا چند شماره تلفن اختصاصی اجاره کنید. شماره در تمام دوره اجاره منحصراً متعلق به شماست و پیامکهای ورودی نامحدود دریافت میکند.
| پارامتر | نوع | الزامی | توضیحات |
|---|---|---|---|
| country | string | الزامی | کد کشور |
| operator_id | integer | الزامی | شناسه اپراتور |
| duration | integer | الزامی | 7، 14، 30، یا 90 روز |
| qty | integer | اختیاری | تعداد شمارهها برای اجاره (1–10، پیشفرض: 1) |
دریافت اطلاعات کاربر
اطلاعات حساب و موجودی کاربر فعلی را برمیگرداند. از آن برای بررسی وضعیت احراز هویت و موجودی استفاده کنید.
نمونه گردش کار کامل
در اینجا یک نمونه کامل Python آمده که احراز هویت میکند، سرویسی پیدا میکند، شمارهای میخرد و کد SMS را استعلام میکند: