انتقل إلى المحتوى الرئيسي
100+
الدول
أكثر من 1000 خدمة. ادفع بالعملات الرقمية، بدون KYC.
شراء رقم

واجهة برمجة التحقق عبر SMS — SMSNoKYC

أتمتة التحقق بالرمز من البداية إلى النهاية. احجز أرقاماً افتراضية في أكثر من 190 دولة، واقرأ رموز الرسائل في ثوانٍ، واستأجر خطوطاً مخصّصة طويلة الأمد، وتحكّم بكل طلب عبر واجهة REST واحدة — دون مفتاح واجهة، دون تحقق هوية، بالدفع بالعملة المشفّرة.

وقت القراءة: 5 دقائق REST · JSON · OpenAPI 3.0 مواصفات OpenAPI →

المصادقة مطلوبة. يعتمد كل طلب على كوكي جلسة، لذا يجب أن تكون مسجّلاً الدخول في حساب SMSNoKYC. أنشئ جلسة عبر واجهة الويب أو نقطة المصادقة قبل الاستدعاء.

لماذا يختار المطورون واجهة SMSNoKYC البرمجية؟

تُعدّ SMSNoKYC واجهة API التحقق عبر SMS الأكثر مرونةً للمطورين الذين يحتاجون إلى الخصوصية والتغطية العالمية والتسعير المتوقع. على خلاف مزودي SMS-OTP التقليديين الذين يشترطون عقودًا مؤسسية وحدودًا شهرية دنيا واستبيانات KYC، تعمل SMSNoKYC مع أي عميل HTTPS وتفرض رسومًا صارمةً بحسب عدد الأرقام، وتقبل أكثر من 20 عملة مشفرة بما فيها Bitcoin وMonero وEthereum وUSDT وUSDC وSolana وLitecoin وXRP وTRON وToncoin.

تشمل حالات الاستخدام الشائعة: أتمتة إنشاء الحسابات لاختبارات QA على نطاق واسع، واسترداد كلمات المرور لمرة واحدة لوكلاء headless وبوتات CI، والتحقق من مسارات تشترط رقم هاتف ضمن بيئات التكامل المستمر، واستئجار أرقام مخصصة طويلة الأمد لحسابات Telegram أو WhatsApp التي تحتاج إلى استقبال SMS دون انقطاع، وتشغيل عمليات التحقق الجغرافي الموزع عبر 190+ دولة مع التحكم الصريح في مستوى المشغل — افتراضي أو فعلي أو مميز.

المصادقة

تستخدم API مصادقة الجلسة القائمة على ملفات تعريف الارتباط. للمصادقة برمجيًا:

  1. أرسل طلب POST إلى /auth-api.php مع عبارة seed الخاصة بك
  2. خزّن ملف تعريف ارتباط الجلسة من الاستجابة
  3. أدرج ملف تعريف الارتباط في جميع طلبات API اللاحقة
POST /auth-api.php

قم بالمصادقة باستخدام عبارة seed الخاصة بك وأنشئ جلسة.

المعاملالنوعمطلوبالوصف
actionstringمطلوبيجب أن يكون "login"
seedstringمطلوبعبارة seed الوصول المكونة من 16 حرفًا (مثال: 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." }

الرابط الأساسي

جميع نقاط نهاية API نسبية إلى:

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

جميع الاستجابات بتنسيق JSON. تقبل نقاط نهاية POST أجسام الطلبات application/json و application/x-www-form-urlencoded.

حدود الطلبات

تفرض API حدود المعدل التالية:

نقطة النهايةالحدالنافذة
المصادقة5 محاولات15 دقيقة
جميع endpoints الأخرىبدون حد صارم

تحديد المعدل: المصادقة محدودة بـ 5 محاولات كل 15 دقيقة. endpoints الأخرى غير محدودة حاليًا، لكن الاستخدام المفرط قد يتم تقييده. استخدم فترات طلب معقولة.

معالجة الأخطاء

تُرجع جميع الأخطاء كائن JSON مع حقل <code>error</code>:

{ "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 — بطاقات SIM حقيقية، معدل نجاح أعلى. premium — أسرع تسليم (~10 ثوانٍ)، أعلى معدل نجاح.

شراء رقم (تفعيل SMS)

POST /api.php?action=buy

اشترِ رقمًا افتراضيًا للتحقق عبر SMS لمرة واحدة. الرقم نشط لمدة 20 دقيقة. إذا لم يتم استلام أي SMS، يتم استرداد رصيدك تلقائيًا.

المعاملالنوعمطلوبالوصف
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

يُرجع أحدث 50 طلبًا لك، بما في ذلك أرقام الهواتف ورموز SMS. استعلم عن هذا endpoint للتحقق من رموز SMS الواردة على الطلبات النشطة.

الاستجابة
[ { "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 — بانتظار SMS. completed — تم استلام SMS. cancelled — ألغاه المستخدم. refunded — استرداد تلقائي (لم يتم استلام SMS قبل انتهاء المهلة). 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

استأجر رقم هاتف مخصصًا واحدًا أو أكثر. الرقم حصري لك طوال فترة الإيجار ويستقبل رسائل SMS واردة غير محدودة.

المعاملالنوعمطلوبالوصف
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 كامل يقوم بالمصادقة، ويجد خدمة، ويشتري رقمًا، ويستعلم عن رمز SMS:

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")

الأسئلة الشائعة

لماذا وُجدت واجهة التحقق البرمجية في SMSNoKYC؟

تفتح لشيفرتك أنت الكتالوج نفسه الذي يقدّمه الموقع: أرقام افتراضية في أكثر من 190 دولة للتحقق بالرمز لمرة واحدة وللاستئجار من 7 إلى 90 يوماً. عبر واجهة REST بصيغة JSON بسيطة، يمكنك تصفّح التطبيقات وقراءة الأسعار المباشرة وحجز الأرقام وجلب الرموز الواردة وردّ قيمة عمليات التفعيل الفاشلة — دون تحقق هوية، وبالفوترة بالعملة المشفّرة فقط.

هل يلزم مفتاح واجهة برمجية أو رمز OAuth؟

لا. المصادقة كوكي جلسة: أرسل مرة واحدة عبارة دخولك المكوّنة من 16 حرفاً بطلب POST إلى ‎/auth-api.php‎، ثم مرّر الكوكي المُعاد في كل نداء تالٍ. لا شيء يُهيّأ أو يُدوّر أو يُلغى — تسجّل الدخول مرة لكل جلسة وتبقى كذلك طوال عمر الكوكي.

كم تكلفة الواجهة البرمجية؟

استدعاء الواجهة مجاني — لا رسوم شهرية، ولا اشتراك، ولا حد أدنى للحجم. تدفع فقط لكل رقم: عمليات تفعيل لمرة واحدة من 0.05 دولار، واستئجار مخصّص من بضعة دولارات لسبعة أيام. يُخصَم كل ذلك من رصيدك المدفوع مسبقاً، وأي تفعيل لا يستلم رسالة أبداً يُردّ من تلقاء نفسه.

ما اللغات والأطر التي تستطيع استدعاءها؟

كل ما يستطيع إرسال طلب HTTPS يعمل — بايثون (requests، httpx)، نود.جي إس (fetch، axios)، Go، PHP، روبي، جافا، ‎#C‎، cURL من Bash وسواها. تتضمّن الوثائق أمثلة جاهزة للنسخ بلغة cURL وبايثون وجافا سكريبت، وملف OpenAPI 3.0 كامل على ‎/openapi.json‎ يتيح توليد عميل مُصنَّف الأنواع باللغة التي تختارها.

ماذا يحدث إن لم يصل رمز التحقق أبداً؟

لكل تفعيل نافذة مدتها 20 دقيقة. إن لم يصل شيء قبل إغلاقها، يُلغى الطلب من تلقاء نفسه ويعود السعر كاملاً إلى الرصيد — دون تذكرة ودون إعادة محاولة يدوية. ويمكنك إنفاق الرصيد المُعاد فوراً على رقم آخر، ربما في فئة مشغّل أخرى (افتراضي أو مادي أو مميّز) لمعدّل نجاح أفضل.

هل للواجهة البرمجية حدود على المعدّل؟

الدخول محدود بخمس محاولات كل 15 دقيقة لكل عنوان IP لمنع تخمين العبارة. أما الباقي — الكتالوج والشراء والطلبات والاستئجار — فبلا سقف صارم حالياً، لكن حافظ على فواصل معقولة: استعلام ‎/api.php?action=orders‎ كل 3 إلى 5 ثوانٍ يكفي وزيادة لقراءة الرسائل، وقد تُقيَّد الدفقات المستمرة فوق نحو 10 طلبات في الثانية على مستوى جدار الحماية.