أرقام ورسائل وأرباح مباشرة من تطبيقك.
SMScash
توثيق API
البدء

توثيق API

أرقام ورسائل وأرباح مباشرة من تطبيقك.

ابدأ بطلب واحد

13 · أوامر APIREST + handler_api.phpJSON / plain text · Bearer

قم بإنشاء مفتاح API في لوحة التحكم الخاصة بك، حصل على رقم، وتحقق من الرسائل كل 20 ثوانٍ. يتم دفع المبلغ عند وصول SMS مع كود؛ قراءته مرة أخرى لا يؤثر على رصيدك.

REST APIhttps://smscash.org/api/v1
التوافق قاعدة API URLhttps://smscash.org/stubs/handler_api.php
الخدمة حيةأرقام الهاتف، SMS أرباح متوفرة، والانسحابات متاحة في USDT على TRC20المدفوعات تتراوح بين 1 و و 45 الأيام .
بداية سريعة · REST / cURL
curl -X POST 'https://smscash.org/api/v1/activations' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: request-unique-001' \
  -d '{"service":"go","country":86}'

عنوان الواجهة البديل المتوافق: /handler_api.php. تستمر عمليات تكامل REST الموجودة في العمل.

REST API

منشئ الطلبات

cURL · Go · JS · Python

Idempotency-Key: UUID · POST · 8–128

اختيار تلقائي: أكثر الرموز خلال الساعة الماضية، ثم خلال 24 ساعة. لا توجد أرقام: المشغل التالي.

cURL
curl --max-time 15 --fail-with-body -X POST 'https://smscash.org/api/v1/activations' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: request-unique-001' \
  --data '{"service":"go","country":86}'

لا يتم حفظ المفتاح. هذا التحقق لا يخصص أرقامًا.

REST لعمليات التكامل الجديدة

الخدمات والدول

اختر خدمة وبلداً. يعتمد المبلغ المدفوع لكل رسالة SMS على البلد.

REST
GET /api/v1/catalog?service=go&country=86&page=1&page_size=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "offer_id": 42,
      "service": "go",
      "service_name": "Google",
      "country_id": 86,
      "country_name": "Italy",
      "provider_id": 1,
      "operator": 1,
      "provider_name": "Operator 1",
      "reward": "0.00300000",
      "currency": "USD",
      "accounting_precision": 8,
      "earnings_hold_days": 45
    }
  ],
  "page": 1,
  "page_size": 100,
  "total": 1,
  "pages": 1,
  "has_more": false,
  "accounting_precision": 8
}

service · country · operator · q · page · page_size (1–100)

احصل على رقم
REST
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001

{
  "service": "go",
  "country": 86
}

اختيار تلقائي: أكثر الرموز خلال الساعة الماضية، ثم خلال 24 ساعة. لا توجد أرقام: المشغل التالي.

REST
201: new session · 200: replay of the same operation
service + country OR offer_id · duration_minutes: 20
ref: software owner code (optional)
operator: public ID (e.g. 1 for Operator 1), optional · any/0: automatic
country: integer · service: string · SMS code: string

رقم الهاتف صالح لمدة 20 دقيقة. يتم التحقق من الرسائل كل 20 ثانية. يمكنك الإلغاء فورًا.

التحقق من عدة أرقام
REST
GET /api/v1/activations/batch?ids=42,43
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "id": 42,
      "found": true,
      "phone": "12025550123",
      "status": "received",
      "service": "go",
      "country_id": 86,
      "provider_id": 1,
      "operator": 1,
      "expires_at": "2026-10-10T12:15:00Z",
      "sms_count": 1,
      "code": "001234",
      "last_sms": {
        "id": 101,
        "code": "001234",
        "sender": "Service",
        "text": "Code: 001234",
        "received_at": "2026-10-10T12:01:00Z"
      }
    },
    {
      "id": 43,
      "found": false,
      "error": {
        "code": "NO_ACTIVATION",
        "message": "Session not found."
      }
    }
  ],
  "as_of": "2026-10-10T12:01:00Z",
  "poll_interval_seconds": 20
}
REST
ids: 1–100 positive session IDs, separated by commas
Input order preserved · duplicates removed
Foreign, unavailable or out-of-scope IDs: found=false
Read only · no supplier requests · last_sms is the latest message
الرصيد · معلّق
REST
GET /api/v1/balance
Authorization: Bearer YOUR_API_KEY
JSON
{
  "currency": "USD",
  "accounting_precision": 8,
  "balance": "12.00000000",
  "held_balance": "34.50000001",
  "balance_minor": "1200000000",
  "held_minor": "3450000001",
  "as_of": "2026-10-12T20:00:00Z",
  "next_release_at": "2026-11-26T20:00:00Z"
}

balance — متاح; held_balance — معلّق. USD · 8

يمكن سحب الأموال التي انتهت مدة تعليقها فقط.

عملاء جاهزون للاستخدام

JavaScript · Node.js 18+
import {SmScash, SmScashError} from './smscash.mjs';
import {randomUUID} from 'node:crypto';

const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);

// Save this key before sending; keep it for retries of this operation.
const requestKey = randomUUID();
const session = await api.createNumber({service: 'go', country: 86}, requestKey);
// After 20 seconds:
const messages = await api.sms(session.id, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([session.id]);
const held = await api.holdBalance();
console.log(held); // Exact USD string
Python 3.9+
import os
import uuid
from smscash import SmScash, SmScashError

api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])

# Save this key before sending; keep it for retries of this operation.
request_key = str(uuid.uuid4())
session = api.create_number({'service': 'go', 'country': 86}, request_key)
# After 20 seconds:
messages = api.sms(session['id'], after_id=0)
print(messages['sms'])
statuses = api.batch([session['id']])
held = api.hold_balance()
print(held) # Exact USD string
SDK
me() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
createNumber(parameters, requestKey) / create_number(parameters, request_key)
setStatus(id, "cancel") / set_status(id, "cancel")
setStatus(id, "retry", requestKey) / set_status(id, "retry", request_key)
Timeout: 15 s · no dependencies · no automatic retries
Error: code · status · hint · requestId/request_id · retryable
ALLOCATION_UNCERTAIN: contact support with request_id; never retry automatically.

SMS-Activate / HeroSMS

SMS-Activate · التوافق قاعدة API URLhttps://smscash.org/sms-activate/stubs/handler_api.php
HeroSMS · التوافق قاعدة API URLhttps://smscash.org/hero-sms/stubs/handler_api.php

مفتاح API الشخصي للمستخدم.

اختر خدمة وبلداً. يعتمد المبلغ المدفوع لكل رسالة SMS على البلد.

الكودالوصف
getNumber / getNumberV2احصل على رقم
getStatus / getStatusV2احصل على أحدث رمز
setStatus / finishActivation / cancelActivationإدارة الجلسة
getPrices / getNumbersStatusتحقق من التوفر
getRewards (SMScash)مكافأة لSMS
getServicesList / getServicesالخدمات
getCountries / getOperatorsالخدمات والدول
getActiveActivationsالجلسات
getBalanceرصيد المستخدم
getHoldBalance (SMScash)معلّق

cost = 0 USD · activationCost = 0 USD
reward — مكافأة لSMS

HeroSMS · cURL
curl --get 'https://smscash.org/hero-sms/stubs/handler_api.php' \
  --data-urlencode 'api_key=YOUR_API_KEY' \
  --data-urlencode 'action=getNumberV2' \
  --data-urlencode 'service=go' \
  --data-urlencode 'country=86' \
  -H 'Idempotency-Key: request-unique-001'
الردود
{
  "activationId": "42",
  "phoneNumber": "393331234567",
  "activationCost": 0,
  "currency": 840,
  "countryCode": 86,
  "canGetAnotherSms": true,
  "activationTime": "2026-10-11T12:00:00Z",
  "activationEndTime": "2026-10-11T12:15:00Z",
  "reward": "0.00300000"
}
SMS-Activate / HeroSMS
GET or POST application/x-www-form-urlencoded
api_key · action · service · country · ref (optional)
setStatus: 1 → ACCESS_READY · 3 → ACCESS_RETRY_GET
           6 → ACCESS_ACTIVATION · 8 → ACCESS_CANCEL
getStatus: STATUS_WAIT_CODE · STATUS_OK:001234 · STATUS_CANCEL
getStatusV2: {"verificationType":1,"sms":null,"call":null}
getServicesList: {"status":"success","services":[{"code":"go","name":"Google"}]}
getCountries: {"86":{"id":86,"eng":"Italy","visible":1,"retry":1,"rent":0}}
getPrices: {"86":{"go":{"cost":0,"count":12,"reward":"0.00300000","currency":"USD"}}}
getRewards: {"59":{"vi":{"1":"0.01000000"}}}
getRewards filters: country · service · operator (optional); any/0: all permitted providers
getActiveActivations: start=0 · limit=1–100 · activeActivations / data
Business/key errors: HTTP 200 + plain text · server errors: HTTP 500
Availability: actual supplier pool, shared cache up to 20 s; not a reservation
No automatic retries after a transport error or ALLOCATION_UNCERTAIN.
Keep the original Idempotency-Key and parameters.
Unsupported: rent · calls · forwarding · multiple services per number · prolong
Unsupported options return BAD_REQUEST; unsupported actions return BAD_ACTION.
SMScash keys and country/service codes; configure this base URL in your software.

رقم الهاتف صالح لمدة 20 دقيقة. يتم التحقق من الرسائل كل 20 ثانية. يمكنك الإلغاء فورًا.

المصادقة وإعادة المحاولة

REST: header Authorization: Bearer YOUR_API_KEY. واجهة متوافقة: المعلمات api_key و action. استخدم HTTPS.

لإدارة مفاتيح API، أدخل حسابك.

∞طلبات/دقيقة لكل حساب
∞جلسات متزامنة

لا يوجد حد لمعدل الطلبات أو عدد أرقام الهاتف. ولا توجد حصص يومية أو ساعية.

رقم الهاتف صالح لمدة 20 دقيقة. يتم التحقق من الرسائل كل 20 ثانية. يمكنك الإلغاء فورًا.

في REST، فريدة من نوعها Idempotency-Key مطلوب لتخصيص الأرقام، وتكرار التخصيص، وطلبات retry والدفع. إنه اختياري ولكن يوصى به في handler_api.php. إعادة استخدام المفتاح عند إعادة محاولة طلب الشبكة؛ استخدم مفتاحًا جديدًا لعملية جديدة.

نطاق مفتاح API

يمكن ربط المفتاح بخدمات وبلدان ومزوّدين محددين. تسمح القوائم الفارغة بجميع الخيارات المتاحة.

JSON
{
  "label": "برنامجي",
  "policy": {
    "services": [
      "go"
    ],
    "countries": [
      86
    ],
    "providers": [
      1
    ]
  }
}

PATCH /api/v1/keys/{id} يغير الاسم وpolicy بالكامل. لا يظهر السر إلا عند إنشائه.

10% إجمالاً. 5% + 5% بالكود البرمجي.

عند إصدار الرقم يرجى تقديمه ref مالك البرنامج. يتم اعتماد الطلب بواسطة مفتاح المستخدم. الرمز موجود في قسم "الإحالات" وفي GET /api/v1/referrals → software_ref.

طلبالمُحيلالبرمجيات
بدون ref10%—
مع ref5%5%
مع ref، لا يوجد مرجع—5%

تقوم المنصة بدفع المكافأة دون التقليل من دخل المستخدم. يمكن أن يكون مالك البرنامج والمُحيل هو نفس الشخص. لا يمكن للمستخدم استخدام الكود الخاص به.

تتغير الشروط عند إنشاء جلسة؛ قراءة SMS وretry لا تغيّرها. قم بإعادة إدخال ref لإنشاء جلسة تكرارية جديدة. في حساب الرسوم، يُمنح مكافأة المستخدم USD 0.003 بمقدار USD 0.00015 لكل من مالك البرنامج والمصدر. الإجمالي للمكافأة هو USD 0.00030.

أوامر API

11 طريقة بأسلوب XVBC بالإضافة إلى رصيد SMScash الخاص بك.

GETgetNumberاحصل على رقم

ينشئ جلسة ويحجز رقم هاتف متاحًا للمستخدم. تُحدَّد قيمة المكافأة ومستفيدو عمولات الإحالة عند تخصيص الرقم؛ وتُضاف المكافأة عند استلام رسالة SMS تحتوي على رمز.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
service*stringرموز الخدمة المتاحة. تقتصر الإجابة على مساحة مفتاح API.
country*integerخذ ID من getCountries.
operatorstringخذ ID من operators/getOperators (API). operator=1 · any/0
session_durationintegerالجلسة تستمر 20 دقيقة. اختار 20 أو تجاهل هذا المعامل.
with_operatorinteger1 يضيف معرّف المشغّل إلى الرد؛ 0 أو عدم تحديده يعيد ثلاثة أجزاء.
refstringالرمز العام لصاحب البرنامج: 5% له و5% للداعي. بدون ref - 10% للمدعو.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getNumber.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1' \
  -H 'Idempotency-Key: request-unique-001'

الردود

العدد الصادر
ACCESS_NUMBER:42:380670000000:1
لا توجد أرقام متاحة
EMPTY_POOL
  • اختيار تلقائي: أكثر الرموز خلال الساعة الماضية، ثم خلال 24 ساعة. لا توجد أرقام: المشغل التالي.
  • تمرير Idempotency-Key: نفس الطلب بنفس المفتاح يعيد الجلسة السابقة. تغيير المعلمات يستدعي IDEMPOTENCY_CONFLICT.
  • بلد رقمي بدون تجمع يعطي EMPTY_POOL؛ تنسيق البلد الخاطئ هو BAD_COUNTRY.
  • مفتاح الجلسة المحذوف لا يزال قيد الاستخدام: إعادة تشغيل التخصيص بذلك المفتاح يعطي SESSION_CLOSED ولا يُصدر رقمًا آخر.
  • لم يتم تأكيد نتيجة الإصدار. أُوقف التكرار التلقائي لتجنب إصدار رقم ثانٍ.
GETgetNumbersStatusتحقق من التوفر

عدد أرقام الهاتف المتاحة حسب الخدمة والبلد.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
country*integerخذ ID من getCountries.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getNumbersStatus.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86'

الردود

الأرقام المتاحة
{
  "go_0": 0
}
  • اللاحقة _0 تعني الاختيار بدون عامل تشغيل محدد.
  • التوفر يشير إلى مجموعة أرقام المورد كاملة. يُفحص توفر القناة المختارة عند إصدار الرقم.
GETgetStatusاحصل على أحدث رمز

طلب سهل لحالة الجلسة وآخر رمز SMS. يتم الاحتفاظ بالأصفار البادئة في الكود.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
id*integerID لجلستك، تم استلامها عند إصدار الرقم.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getStatus.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42'

الردود

في انتظار
STATUS_WAIT_CODE
تم استلام الكود
STATUS_OK:001234
الإلغاء أو انتهاء الصلاحية
STATUS_CANCEL
لم يتم العثور عليه
NO_ACTIVATION
  • قم بالاستطلاع كل 20 ثوانٍ. قراءة الرسالة مرة أخرى لا تؤدي إلى دفع مبلغ إضافي.
  • بعد retry لن يتم إرجاع الكود القديم: getStatus ينتظر SMS التالي.
  • بعد حذف الرقم الذي لا يحتوي على SMS,يعود getStatus وgetSms إلى STATUS_CANCEL؛ يعود getSmsFull إلى الحالة المغلقة، وهاتف فارغ وقائمة SMS فارغة. يعود REST، /activations/{id}، و/sms إلى 404 NO_ACTIVATION.
GETsetStatusإدارة الجلسة

إنهاء، إلغاء أو استئناف الانتظار للـ SMS. يبقى انتهاء الدورة كما هو.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
id*integerID لجلستك، تم استلامها عند إصدار الرقم.
status*integer3 — انتظر الكود التالي دون توسيع الجلسة؛ 6 — انتهِ بعد SMS؛ 8 — ألغِ فورًا.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=setStatus.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3' \
  -H 'Idempotency-Key: request-unique-001'

الردود

في انتظار SMS
ACCESS_RETRY_GET
مكتمل
ACCESS_ACTIVATION
تم الإلغاء
ACCESS_CANCEL
  • يُعاد المحاولة ويتوقع الانتظار للكود التالي خلال 20 دقائق الأصلية. لا تتغير أوقات المشكلة والموت الأجل.
  • بالنسبة إلى الحالة = 3، استخدم Idempotency-Key: لن يؤدي تكرار الطلب إلى إعادة تعيين الرمز الجديد الذي تم استلامه بالفعل. يظل تاريخ SMS متاحًا.
  • الإلغاء لا يخصم الأرباح المكتسبة سابقًا.
  • فقط الأرقام التي تحتوي على كود SMS تُحتفظ في التاريخ. الأرقام التي تم إلغاؤها أو انتهت صلاحيتها بدون كود يتم حذفها.
GETgetRepeatNumberإصدار نفس الرقم مرة أخرى

فتح جلسة جديدة برقم محدد من سجلك. يمكنك اختيار خدمة أخرى متاحة في نفس البلد.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
number*stringرقمك القديم يُسمح فقط بالأرقام والبادئة + الاختيارية.
service*stringرموز الخدمة المتاحة. تقتصر الإجابة على مساحة مفتاح API.
session_durationintegerالجلسة تستمر 20 دقيقة. اختار 20 أو تجاهل هذا المعامل.
with_operatorinteger1 يضيف معرّف المشغّل إلى الرد؛ 0 أو عدم تحديده يعيد ثلاثة أجزاء.
refstringالرمز العام لصاحب البرنامج: 5% له و5% للداعي. بدون ref - 10% للمدعو.
operatorstringخذ ID من operators/getOperators (API). operator=1 · any/0

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getRepeatNumber.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go' \
  -H 'Idempotency-Key: request-unique-001'

الردود

جلسة جديدة
ACCESS_NUMBER:43:380670000000
الرقم لا يزال مشغولا
NUMBER_IN_USE
  • أولاً، قم بإنهاء أو إلغاء جلستك الحالية. في حالة انشغال الرقم، لا يتم إعادة الإصدار.
  • تتلقى الجلسة الجديدة ID الجديد والتعريفة الحالية. لم يتم نسخ SMS القديم فيه. تم ضبط ref مرة أخرى.
  • يسمح SMScash بتكرار الأرقام فقط من تاريخ هذا الحساب. يتم تحديد الدولة بالرقم.
  • مفتاح الجلسة المحذوف لا يزال قيد الاستخدام: إعادة تشغيل التخصيص بذلك المفتاح يعطي SESSION_CLOSED ولا يُصدر رقمًا آخر.
GETgetSmsFullاحصل على SMS كـ JSON

سجل منظم لجميع الرسائل مع بيانات ID والمرسل والرمز والنص والبلد والخدمة والمورد.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
id*integerID لجلستك، تم استلامها عند إصدار الرقم.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getSmsFull.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42'

الردود

JSON
{
  "success": true,
  "session_id": 42,
  "phone": "380670000000",
  "status": 1,
  "status_name": "received",
  "sms_count": 1,
  "sms": [
    {
      "id": 101,
      "external_id": "message-101",
      "sender": "Service",
      "code": "001234",
      "text": "Код подтверждения: 001234",
      "received_at": "2026-10-09T12:00:00Z",
      "country": {
        "id": 86,
        "name": "Italy"
      },
      "service": {
        "code": "go",
        "name": "Google"
      },
      "provider": {
        "id": 1,
        "name": "Оператор 1"
      }
    }
  ],
  "expires_at": "2026-10-09T12:20:00Z"
}
  • التنسيق المفضل للتكامل. تذكر sms[].id لمعالجة الرسائل الجديدة فقط.
  • الحالة الرقمية SMScash: 1 - نشط، 6 - مكتمل، 8 - ملغى أو منتهية الصلاحية. يميز status_name بين الانتظار والاستلام والانتهاء والإلغاء وانتهاء الصلاحية.
  • الرموز المستلمة تظل متاحة بعد انتهاء الجلسة. بالنسبة للكميات الكبيرة، استخدم REST /activations/{id}/sms مع after_id.
  • بعد حذف الرقم الذي لا يحتوي على SMS,يعود getStatus وgetSms إلى STATUS_CANCEL؛ يعود getSmsFull إلى الحالة المغلقة، وهاتف فارغ وقائمة SMS فارغة. يعود REST، /activations/{id}، و/sms إلى 404 NO_ACTIVATION.
GETgetSmsاحصل على SMS كسلسلة نصية

إرجاع سجل SMS بالكامل بتنسيق سلسلة للعملاء الحاليين.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
id*integerID لجلستك، تم استلامها عند إصدار الرقم.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getSms.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42'

الردود

رسالة
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234
في انتظار
STATUS_WAIT_CODE
الإلغاء أو انتهاء الصلاحية
STATUS_CANCEL
  • تنسيق الرسالة: الوقت|الرمز|النص. يتم فصل الرسائل المتعددة بنقطتين.
  • قد يحتوي النص SMS نفسه على نقطتين وأشرطة عمودية. للحصول على تحليل موثوق، استخدم getSmsFull.
GETgetServicesالخدمات

رموز الخدمة المتاحة. تقتصر الإجابة على مساحة مفتاح API.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
countryintegerخذ ID من getCountries.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getServices.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY'

الردود

الخدمات
{
  "go": {
    "name": "Google",
    "code": "go"
  }
}
  • مسار الخدمة يتم مشاركته بين الموردين. ويتم فحص توافر الأرقام بشكل منفصل.
GETgetCountriesالبلدان

أرقام التعريف، الأسماء، ورموز الاتصال للدول في القناة المختارة.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getCountries.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY'

الردود

البلدان
{
  "86": {
    "id": 86,
    "name": "Italy",
    "phone_code": "39"
  }
}
GETgetOperatorsمشغلي

المشغّلون المتاحون: معرّف API والاسم ومدة حجز الأرباح.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
countryintegerخذ ID من getCountries.
operatorstringخذ ID من operators/getOperators (API). operator=1 · any/0

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getOperators.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY'

الردود

مشغلي
{
  "1": {
    "id": 1,
    "provider_id": 1,
    "operator": 1,
    "name": "Оператор 1",
    "earnings_hold_days": 45
  }
}
  • خذ ID من operators/getOperators (API).
GETgetRewardsمكافأة لSMS

تختلف الأسعار حسب البلد. جميع قيم الجدول هي بالسعر المدفوع SMS.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.
countryintegerخذ ID من getCountries.
servicestringرموز الخدمة المتاحة. تقتصر الإجابة على مساحة مفتاح API.
operatorstringخذ ID من operators/getOperators (API). operator=1 · any/0

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getRewards.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi'

الردود

JSON
{
  "59": {
    "vi": {
      "1": "0.01000000",
      "3": "0.00500000"
    }
  }
}
{}
{}
  • USD تُعاد قيم الضرائب كسلاسل عشرية دقيقة مع 8 مقعد عشري:
  • مقدمي الخدمات الممكّنين المتاحين لمفتاحك.
  • country ID → service code → operator ID → reward (USD)
GETgetBalanceرصيد المستخدم

إضافة SMScash: الرصيد المتاح مع الأخذ في الاعتبار الاستحقاقات ومكافآت الإحالة وطلبات الدفع.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getBalance.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY'

الردود

الرصيد
ACCESS_BALANCE:0.00
  • يعيد getBalance الرصيد المتاح بعملة USD بدقة تصل إلى 8 منازل عشرية.
  • يمكن سحب الأموال التي انتهت مدة تعليقها فقط.
GETgetHoldBalanceمعلّق

بعد استلام SMS، تُعلّق الأرباح للمدة التي يحددها المورّد. وفي الموعد المحدد، يصبح المبلغ متاحًا للسحب تلقائيًا.

المعلمات

المعلمةاكتبالوصف
api_key*stringمفتاح API الشخصي للمستخدم.

* المعلمة المطلوبة. في كافة الطلبات، قم أيضًا بتمرير action=getHoldBalance.

طلب مثال

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY'

الردود

معلّق
ACCESS_HOLD_BALANCE:34.50000001
  • SMScash · getHoldBalance · USD · 8
  • يمكن سحب الأموال التي انتهت مدة تعليقها فقط.

رموز الاستجابة والطلبات المتكررة

عادةً ما تأتي نتائج الأعمال في handler_api.php مع HTTP 200. تحقق من النص الأساسي. تقوم الدلائل وgetSmsFull بإرجاع JSON إذا نجحت؛ الأخطاء هي دائما نص.

الكودHTTPالسبب والخطوة التالية
TARIFF_NOT_CONFIGURED200لم يتم تحديد الأسعار بعدسيبدأ توزيع الأرقام بمجرد تكوين مكافآت SMS.
COUNTRY_BLOCKED200تم حظر تخصيص الأرقام لهذا البلد.اختر دولة أخرى.
BAD_SERVICE200تخصيص الأرقام لهذه الخدمة محظور.اختر خدمة أخرى.
PROVIDER_NOT_READY200تخصيص الأرقام غير متاح حاليًاقم بتحديث كتالوجات API.
BAD_KEY400لا يوجد api_key أو تنسيق غير صالح.تحقق من المفتاح في الطلب.
INVALID_API_KEY401المفتاح غير معروف أو تم إبطاله أو تم تعطيل الحساب.قم بإنشاء مفتاح API صالح.
BAD_COUNTRY400البلد مفقود أو ليس رقمًا موجبًا.خذ ID من getCountries.
BAD_SESSION_DURATION400تُصدر أرقام الهواتف لمدة 20 دقيقة فقط.تصحيح session_duration.
BAD_REQUEST400معلمة غير صالحة أو Idempotency-Key.يرجى تصحيح طلبك.
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER200عنصر دليل غير معروف أو معطل.قم بتحديث كتالوجات API.
BAD_NUMBER200تنسيق الرقم غير صحيح.إعطاء الرقم بالأرقام.
BAD_ACTION / BAD_STATUS200أمر غير معروف، ID أو عملية.تحقق من الإعدادات.
EMPTY_POOL200لا توجد أرقام هواتف مطابقة متاحة حاليًا.كرر ذلك بعد 10-30 ثانية أو قم بتغيير المرشحات.
NUMBER_IN_USE200رقم محدد مشغول بجلسة نشطة.قم بإنهاء جلستك أو حدد رقمًا آخر.
NO_ACTIVATION200الجلسة أو الرقم السابق لا ينتمي إلى حسابك.تحقق من ID والمفتاح.
SESSION_CLOSED / SMS_REQUIRED200انتقال الحالة غير متاح حاليًا.التحقق من حالة وتوافر SMS.
SCOPE_BLOCKED200الخدمة أو البلد أو البائع غير معتمد للحصول على المفتاح.قم بتحديث نطاق مفتاح API.
IDEMPOTENCY_CONFLICT200مفتاح الاستعلام هذا مرتبط بالفعل بمعلمات أخرى.لعملية جديدة، قم بإنشاء Idempotency-Key آخر.
BAD_REF / SELF_REF400رمز البرنامج غير معروف أو معطل أو يخص المستخدم نفسه.قم بتمرير رمز مالك البرنامج.
INTERNAL_ERROR500خطأ مؤقت في الخادم أو البائع.كرر مع تأخير ونفس Idempotency-Key.
ALLOCATION_PENDING200طلب إصدار الرقم قيد التنفيذ. أعد المحاولة باستخدام Idempotency-Key نفسه.طلب إصدار الرقم قيد التنفيذ. أعد المحاولة باستخدام Idempotency-Key نفسه.
ALLOCATION_UNCERTAIN200لم يتم تأكيد نتيجة الإصدار. أُوقف التكرار التلقائي لتجنب إصدار رقم ثانٍ.لم يتم تأكيد نتيجة الإصدار. أُوقف التكرار التلقائي لتجنب إصدار رقم ثانٍ.

تعيد REST كائنًا {"error":{"code":"…","message":"…"}} وحالات HTTP العادية 400/401/403/404/409/503.

JSON
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "التحقق من حقول الطلب.",
    "request_id": "req_…",
    "hint": "Use the documented JSON type; numbers must not be quoted.",
    "retryable": false,
    "details": {
      "field": "country",
      "expected": "integer"
    }
  }
}
REST
X-Request-ID: included in every API response
405: Allow lists the supported HTTP methods
ALLOCATION_PENDING: retryable=true · Retry-After=3 · same operation key
ALLOCATION_UNCERTAIN: retryable=false · contact support
Transport errors: check the operation before another write; keep the original key.

REST لعمليات التكامل الجديدة

USD تُعاد قيم الضرائب كسلاسل عشرية دقيقة مع 8 مقعد عشري: 0.00300000 USD.

عملة الرصيد هي USD. مخططات الطلبات والاستجابات متاحة في OpenAPI.

السحب بعملة USDT · TRC20تستغرق المدفوعات من يوم واحد إلى 45 يومًا. رسوم السحب 4 دولارات، وتُخصم من المبلغ المطلوب. بعد استلام SMS، تُعلّق الأرباح للمدة التي يحددها المورّد. وفي الموعد المحدد، يصبح المبلغ متاحًا للسحب تلقائيًا. يمكن سحب الأموال التي انتهت مدة تعليقها فقط.
GET/api/v1/catalogالخدمات والدول
GET/api/v1/tariffsSMS معدلات المكافآت حسب الدولة
GET/api/v1/offersالأسعار والمكافآت
GET/api/v1/servicesالدليل
GET/api/v1/countriesالدليل
GET/api/v1/operatorsالدليل
GET/api/v1/availability?country=1توفر العدد
POST/api/v1/activationsجلسة جديدة
GET/api/v1/activations/batch?ids=42,43التحقق من عدة أرقام
GET/api/v1/activationsآخر جلسات 200: scope=history، في انتظار أو كلها
GET/api/v1/activations/{id}الجلسة والرسائل
GET/api/v1/activations/{id}/sms?after_id=0&limit=100SMS جديد مع المؤشر
POST/api/v1/activations/{id}/retryفي انتظار SMS
POST/api/v1/activations/{id}/finishالانتهاء
POST/api/v1/activations/{id}/cancelإلغاء
POST/api/v1/activations/repeatإعادة إصدار الرقم
GET/api/v1/keysمفاتيح API
POST/api/v1/keysقم بإنشاء مفتاح
PATCH/api/v1/keys/{id}تغيير الاسم أو policy
DELETE/api/v1/keys/{id}إبطال المفتاح
GET/api/v1/referralsرمز الإحالة والأرباح
GET/api/v1/summaryالرصيد والملخص
GET/api/v1/balanceمعلّق
GET/api/v1/ledgerدفتر الأرباح
GET/api/v1/withdrawalsطلبات الدفع
POST/api/v1/withdrawalsإنشاء طلب
GET/api/v1/statisticsالإحصائيات العامة
GET/api/v1/earnings/holdsالأرباح المعلّقة

استلام SMS الجديد فقط

REST
GET /api/v1/activations/42/sms?after_id=0&limit=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "session_id": 42,
  "sms": [
    {
      "id": 101,
      "code": "001234",
      "text": "الكود: 001234",
      "sender": "Service",
      "received_at": "2026-10-09T12:00:00Z"
    }
  ],
  "next_cursor": 101,
  "has_more": false
}

احفظ next_cursor وقم بتمريره كـ after_id. إذا كانت has_more=true، فيمكن قراءة الصفحة التالية على الفور. limit: 1–200. الجلسات وSMS متاحة للمالك فقط.