API مستندات
شماره ها، پیام ها و درآمدها، به طور مستقیم از برنامه شما.
با یک درخواست شروع کنید
یک کلید API را در صفحه کلید خود ایجاد کنید، یک شماره دریافت کنید و هر 20 ثانیه برای پیام ها چک کنید پرداخت زمانی اعتبار داده می شود که یک SMS با یک کد به آن می رسد؛ خواندن آن دوباره بر تعادل شما تاثیر نمی گذارد.
https://smscash.org/api/v1https://smscash.org/stubs/handler_api.phpcurl -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 همچنان در حال کار است.
سازنده درخواست
Idempotency-Key: UUID · POST · 8–128
انتخاب خودکار: بیشترین کد در ساعت گذشته، سپس در ۲۴ ساعت. شماره موجود نیست: اپراتور بعدی.
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}'package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
payload := []byte("{\"service\":\"go\",\"country\":86}")
req, err := http.NewRequest("POST", "https://smscash.org/api/v1/activations", bytes.NewReader(payload))
if err != nil { panic(err) }
req.Header.Set("Authorization", "Bearer " + os.Getenv("SMSCASH_API_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second, CheckRedirect: func(_ *http.Request, _ []*http.Request) error { return http.ErrUseLastResponse }}
res, err := client.Do(req)
if err != nil { panic(err) } // Keep the same operation key after a network error.
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
if res.StatusCode >= 300 {
fmt.Fprintf(os.Stderr, "HTTP %d, request_id=%s\n%s\n", res.StatusCode, res.Header.Get("X-Request-ID"), body)
os.Exit(1)
}
fmt.Println(string(body))
}// Node.js 18+: set SMSCASH_API_KEY in your environment.
const response = await fetch("https://smscash.org/api/v1/activations", {
method: "POST",
headers: {
Authorization: 'Bearer ' + process.env.SMSCASH_API_KEY,
'Content-Type': 'application/json',
'Idempotency-Key': "request-unique-001",
},
body: JSON.stringify({
"service": "go",
"country": 86
}),
signal: AbortSignal.timeout(15000),
redirect: 'error',
});
const result = await response.json();
if (!response.ok) {
const error = result.error || {};
console.error(response.status, error.code, error.hint, error.request_id);
throw new Error(error.message || 'API error');
}
console.log(result);
// SMS codes are strings: keep leading zeros. Never retry writes automatically.import json
import os
import urllib.error
import urllib.request
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
headers = {
'Authorization': 'Bearer ' + os.environ['SMSCASH_API_KEY'],
'Content-Type': 'application/json',
'Idempotency-Key': "request-unique-001",
}
request = urllib.request.Request(
"https://smscash.org/api/v1/activations",
headers=headers,
data="{\"service\":\"go\",\"country\":86}".encode('utf-8'),
method="POST",
)
try:
with urllib.request.build_opener(NoRedirect).open(request, timeout=15) as response:
result = json.load(response)
print(result)
except urllib.error.HTTPError as error:
details = json.load(error).get('error', {})
print(error.code, details.get('code'), details.get('hint'), details.get('request_id'))
raise
# No automatic retries; SMS codes remain strings.کلید ذخیره نمیشود. این بررسی شمارهای اختصاص نمیدهد.
باقی مانده برای ادغام جدید
سرویسها و کشورها
انتخاب یک سرویس و کشور. پرداخت از طریق SMS بستگی به کشور دارد.
GET /api/v1/catalog?service=go&country=86&page=1&page_size=100
Authorization: Bearer YOUR_API_KEY{
"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)
یک عدد دریافت کنید
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001
{
"service": "go",
"country": 86
}انتخاب خودکار: بیشترین کد در ساعت گذشته، سپس در ۲۴ ساعت. شماره موجود نیست: اپراتور بعدی.
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 دقیقه معتبر است.SMS هر 20 ثانیه بررسی می شود.شما می توانید بلافاصله لغو کنید.
بررسی چند شماره
GET /api/v1/activations/batch?ids=42,43
Authorization: Bearer YOUR_API_KEY{
"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
}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موجودی · در انتظار آزادسازی
GET /api/v1/balance
Authorization: Bearer YOUR_API_KEY{
"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
فقط مبالغی که دوره انتظار آنها پایان یافته قابل برداشت هستند.
کلاینتهای آماده
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 stringimport 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 stringme() · 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
https://smscash.org/sms-activate/stubs/handler_api.phphttps://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 USDreward — پاداش برای SMS
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"
}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 دقیقه معتبر است.SMS هر 20 ثانیه بررسی می شود.شما می توانید بلافاصله لغو کنید.
تصدیق و بازنشستگی
REST: سرگام Authorization: Bearer YOUR_API_KEY. رابط کاربری سازگار : پارامترها api_key و actionاستفاده از HTTPS
برای مدیریت کلیدهای API، حساب خود را وارد کنید.
فرکانس درخواست API و تعداد شماره تلفن نامحدود است.هیچ نرخ روزانه یا ساعت وجود ندارد.
این شماره برای 20 دقیقه معتبر است.SMS هر 20 ثانیه بررسی می شود.شما می توانید بلافاصله لغو کنید.
در بقیه، یک Idempotency-Key برای توزیع شماره، توزیع تکراری، بازپرداخت و درخواست پرداخت مورد نیاز است. این گزینه ای است اما در handler_api.php توصیه می شود. استفاده مجدد کلید در هنگام بازپرداخت یک درخواست شبکه؛ استفاده از یک کلید جدید برای یک عملیات جدید.
API کلید
شما می توانید یک کلید را به خدمات خاص، کشورها و ارائه دهندگان محدود کنید لیست های خالی اجازه می دهد تا تمام گزینه های موجود را داشته باشید.
{
"label": "نرم افزار من",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} نام و سیاست را به طور کامل تغییر دهید.سرگذشت تنها زمانی آشکار می شود که ایجاد شده است.
10% در مجموع . 5% + 5% با کد نرم افزار
در صورت ارسال شماره، لطفاً ref مالک نرم افزار. درخواست توسط کلید اجرایی مجاز است. کد در بخش "مراجعات" و در GET /api/v1/referrals → software_ref.
| درخواست | دعوت کننده | نرم افزار |
|---|---|---|
| بدون رفیق | 10% | — |
| با ref | 5% | 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. |
operator | string | بگیرید ID از operators/getOperators (API). operator=1 · any/0 |
session_duration | integer | مدت زمان این جلسه 20 دقیقه است. 20 را عبور کنید یا این پارامتر را نادیده بگیرید. |
with_operator | integer | 1 شناسه اپراتور را به پاسخ اضافه میکند؛ 0 یا نبود پارامتر، سه بخش برمیگرداند. |
ref | string | کد عمومی مالک نرم افزار : 5% برای او و 5% برای مهمانان بدون ref - 10% به دعوت کننده |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getNumber را انجام دهید.
درخواست نمونه
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'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1", nil)
if err != nil { panic(err) }
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1", {
headers: {"Idempotency-Key": "request-unique-001"}
});
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)پاسخ ها
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- انتخاب خودکار: بیشترین کد در ساعت گذشته، سپس در ۲۴ ساعت. شماره موجود نیست: اپراتور بعدی.
- گزید Idempotency-Key: همان تضرع باهمان هدیه، فریشه قبل را برمی گرداند. تبدیل اموالها را تبديل میکند. IDEMPOTENCY_CONFLICT.
- یک کشور عددی بدون یک استخر EMPTY_POOL را می دهد؛ فرمت کشور اشتباه BAD_COUNTRY است.
- کلید یک جلسه حذف شده همچنان مورد استفاده قرار می گیرد: بازنویسی توزیع با آن کلید SESSION_CLOSED را باز می گرداند و شماره دیگری را منتشر نمی کند.
- نتایج توزیع تایید نشده است.تخلیه اتوماتیک غیرفعال است تا از توزیع شماره دوم اجتناب شود.
GETgetNumbersStatusبررسی در دسترس بودن+
شماره تلفن در دسترس با توجه به خدمات و کشور
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
country* | integer | بگیرید ID از getCountries. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getNumbersStatus را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86",
timeout=15,
)
print(response.status_code, response.json())پاسخ ها
{
"go_0": 0
}- _0 suffix به معنای انتخاب بدون یک اپراتور خاص است.
- در دسترس بودن به کل استخر تامین کننده اشاره دارد کانال انتخاب شده در هنگام توزیع یک عدد بررسی می شود.
GETgetStatusآخرین کد را دریافت کنید+
درخواست آسان برای وضعیت جلسه و آخرین کد SMS.زروک های اصلی در کد حفظ می شود.
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
id* | integer | شناسه جلسه شما، دریافت شده در زمان صدور شماره. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getStatus را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42",
timeout=15,
)
print(response.status_code, response.text)پاسخ ها
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_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* | integer | شناسه جلسه شما، دریافت شده در زمان صدور شماره. |
status* | integer | 3 - منتظر کد بعدی بدون تمدید جلسه؛ 6 - پایان پس از SMS؛ 8 - بلافاصله لغو. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =setStatus را انجام دهید.
درخواست نمونه
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'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3", nil)
if err != nil { panic(err) }
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3", {
headers: {"Idempotency-Key": "request-unique-001"}
});
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)پاسخ ها
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- بازگشت برای کد بعدی در 20 دقیقه اصلی منتظر است.
- وضعیت =3 استفاده Idempotency-Key: تکرار درخواست دوباره کد جدید دریافت شده را بازگردانده نخواهد شد. SMS در دسترس باقی می ماند.
- این انحلال پاداش هایی را که قبلاً به دست آورده اند حذف نمی کند.
- فقط اعداد با کد SMS در تاریخ نگهداری می شوند اعداد لغو شده و بدون کد حذف می شوند.
GETgetRepeatNumberهمان عدد را دوباره اضافه کنید+
یک جلسه جدید با یک شماره خاص از تاریخچه خود را باز کنید.شما می توانید یک سرویس دیگر در دسترس در همان کشور را انتخاب کنید.
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
number* | string | فقط اعداد و یک رهبر + اختیاری مجاز است. |
service* | string | کد های سرویس در دسترس است پاسخ محدود به منطقه کلید API است. |
session_duration | integer | مدت زمان این جلسه 20 دقیقه است. 20 را عبور کنید یا این پارامتر را نادیده بگیرید. |
with_operator | integer | 1 شناسه اپراتور را به پاسخ اضافه میکند؛ 0 یا نبود پارامتر، سه بخش برمیگرداند. |
ref | string | کد عمومی مالک نرم افزار : 5% برای او و 5% برای مهمانان بدون ref - 10% به دعوت کننده |
operator | string | بگیرید ID از operators/getOperators (API). operator=1 · any/0 |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getRepeatNumber را انجام دهید.
درخواست نمونه
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'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go", nil)
if err != nil { panic(err) }
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go", {
headers: {"Idempotency-Key": "request-unique-001"}
});
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)پاسخ ها
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- اول، جلسه فعلی خود را به پایان برسانید یا آن را لغو کنید.اگر تعداد شلوغ باشد، بازگرداندن انجام نمی شود.
- جلسه جدید یک شناسه جدید و قیمت فعلی دریافت می کند.SMS قدیمی کپی نمی شود. ref دوباره تنظیم می شود.
- SMScash اجازه می دهد تا فقط اعداد از تاریخچه این حساب را تکرار کنید.
- کلید یک جلسه حذف شده همچنان مورد استفاده قرار می گیرد: بازنویسی توزیع با آن کلید SESSION_CLOSED را باز می گرداند و شماره دیگری را منتشر نمی کند.
GETgetSmsFullدریافت کنید SMS به عنوان JSON+
تاریخچه ساختار تمام پیام ها با شناسه، فرستنده، کد، متن و کشور، خدمات و داده های تامین کننده.
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
id* | integer | شناسه جلسه شما، دریافت شده در زمان صدور شماره. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getSmsFull را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42",
timeout=15,
)
print(response.status_code, response.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* | integer | شناسه جلسه شما، دریافت شده در زمان صدور شماره. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getSms را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42",
timeout=15,
)
print(response.status_code, response.text)پاسخ ها
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- فرمت پیام: زمان و کد و متن متن. چند پیام توسط یک ستون جدا می شود.
- SMS متن خود ممکن است حاوی ستون ها و نوارها باشد.برای پارسینگ قابل اعتماد، از getSmsFull استفاده کنید.
GETgetServicesسرویسها+
کد های سرویس در دسترس است پاسخ محدود به منطقه کلید API است.
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
country | integer | بگیرید ID از getCountries. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getServices را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.json())پاسخ ها
{
"go": {
"name": "Google",
"code": "go"
}
}- دایرکتوری خدمات در سراسر تامین کننده به اشتراک گذاشته می شود.در دسترس بودن شماره به صورت جداگانه بررسی می شود.
GETgetCountriesکشورها+
شناسه ها، نام ها و کدهای تماس برای کشورها در کانال انتخاب شده.
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getCountries را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.json())پاسخ ها
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsاپراتورها+
اپراتورهای موجود: شناسه API، نام و مدت نگهداری پاداش.
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
country | integer | بگیرید ID از getCountries. |
operator | string | بگیرید ID از operators/getOperators (API). operator=1 · any/0 |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getOperators را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.json())پاسخ ها
{
"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 شخصی کاربر. |
country | integer | بگیرید ID از getCountries. |
service | string | کد های سرویس در دسترس است پاسخ محدود به منطقه کلید API است. |
operator | string | بگیرید ID از operators/getOperators (API). operator=1 · any/0 |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getRewards را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi",
timeout=15,
)
print(response.status_code, response.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 شخصی کاربر. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getBalance را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.text)پاسخ ها
ACCESS_BALANCE:0.00- getBalance تعادل USD را با 8 دسیامتر باز می گرداند.
- فقط مبالغی که دوره انتظار آنها پایان یافته قابل برداشت هستند.
GETgetHoldBalanceدر انتظار آزادسازی+
پس از دریافت SMS، درآمد برای مدت تعیینشده توسط تأمینکننده مسدود میماند. در تاریخ مشخصشده، مبلغ بهطور خودکار برای برداشت در دسترس قرار میگیرد.
پارامترها
| پارامتر | نوع | توصیف |
|---|---|---|
api_key* | string | کلید API شخصی کاربر. |
* پارامتر مورد نیاز.در تمام درخواست ها نیز عمل =getHoldBalance را انجام دهید.
درخواست نمونه
curl 'https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.text)پاسخ ها
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- فقط مبالغی که دوره انتظار آنها پایان یافته قابل برداشت هستند.
کد پاسخ و درخواست های تکراری
اندرون handler_api.محصولات کارها ظاهر میشود HTTP 200. نصیحت بدن را تفحص کنید. فلکرهها و getSmsFull بازگشت JSON اگر کامل باشد؛ خطایای دائم نصیحت است.
| کد | HTTP | علت و گام بعدی |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | نرخ ها هنوز تعیین نشده استتوزیع شماره ها پس از تنظیم پاداش های SMS آغاز می شود. |
COUNTRY_BLOCKED | 200 | تعداد اعطای برای این کشور مسدود شده است.کشور دیگری را انتخاب کنید. |
BAD_SERVICE | 200 | شماره توزیع برای این سرویس مسدود شده است.یک سرویس دیگر را انتخاب کنید. |
PROVIDER_NOT_READY | 200 | تعداد محاسبه به طور موقت در دسترس نیستکاتالوگ های API را باز کنید. |
BAD_KEY | 400 | نه api_key یا فونطاله ناقص.کلید را در درخواست خود بررسی کنید. |
INVALID_API_KEY | 401 | کلید ناشناخته است، لغو شده یا حساب غیرفعال شده است.یک کلید API معتبر ایجاد کنید. |
BAD_COUNTRY | 400 | کشور از دست رفته است یا نه یک عدد مثبت.بگیرید ID از getCountries. |
BAD_SESSION_DURATION | 400 | شماره تلفن ها دقیقاً 20 دقیقه طول می کشد.تصدیق session_duration. |
BAD_REQUEST | 400 | فارنوميل ناقص یا Idempotency-Key.لطفا درخواست خود را اصلاح کنید. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | ناشناخته یا ناشناخته در دایرکتوریکاتالوگ های API را باز کنید. |
BAD_NUMBER | 200 | فرمت شماره نامناسبشماره را در اعداد بگذارید. |
BAD_ACTION / BAD_STATUS | 200 | دستور، شناسه یا عملیات ناشناختهتنظیمات را بررسی کنید. |
EMPTY_POOL | 200 | در حال حاضر هیچ شماره تلفن مطابقت در دسترس نیست.تکرار بعد از 10-30 ثانیه یا تغییر فیلتر |
NUMBER_IN_USE | 200 | یک عدد خاص توسط یک جلسه فعال اشغال می شود.جلسه خود را به پایان برسانید یا شماره دیگری را انتخاب کنید. |
NO_ACTIVATION | 200 | جلسه یا شماره قبلی متعلق به حساب شما نیست.بررسی ID و کلید |
SESSION_CLOSED / SMS_REQUIRED | 200 | در حال حاضر انتقال دولتی در دسترس نیست.بررسی وضعیت و در دسترس بودن پیام های SMS |
SCOPE_BLOCKED | 200 | سرویس، کشور یا فروشنده برای کلید مجاز نیست.به روز رسانی محدوده کلید API. |
IDEMPOTENCY_CONFLICT | 200 | این کلید جستجو در حال حاضر با سایر پارامترها مرتبط است.برای عملی تازه، دیگری را آفرید Idempotency-Key. |
BAD_REF / SELF_REF | 400 | کد نرم افزار ناشناخته، غیرفعال یا متعلق به کاربر است.کد مالک نرم افزار را وارد کنید. |
INTERNAL_ERROR | 500 | خطای سرور موقت یا خطای فروشندهبا تدبیر و همچنین مضطرب سازید. Idempotency-Key. |
ALLOCATION_PENDING | 200 | عدد تصویر پیشتر است. با همین امتحان کن. Idempotency-Key.عدد تصویر پیشتر است. با همین امتحان کن. Idempotency-Key. |
ALLOCATION_UNCERTAIN | 200 | نتایج توزیع تایید نشده است.تخلیه اتوماتیک غیرفعال است تا از توزیع شماره دوم اجتناب شود.نتایج توزیع تایید نشده است.تخلیه اتوماتیک غیرفعال است تا از توزیع شماره دوم اجتناب شود. |
بازگرداندن یک شی {"error":{"code":"…","message":"…"}} و عادل HTTP حالات 400/401/403/404/409/503.
{
"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"
}
}
}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.باقی مانده برای ادغام جدید
USD مبلغ مالیاتی به صورت دهم دقیق با 8 دوازدهمین مکان : 0.00300000 USD.
ارز تعادل USD است.مطالعات درخواست و پاسخ در دسترس هستند در OpenAPI.
/api/v1/catalogسرویسها و کشورها/api/v1/tariffsSMS قیمت ها در کشور/api/v1/offersقیمت ها و پاداش ها/api/v1/servicesدایرکتوری/api/v1/countriesدایرکتوری/api/v1/operatorsدایرکتوری/api/v1/availability?country=1تعداد در دسترس/api/v1/activationsجلسه جدید/api/v1/activations/batch?ids=42,43بررسی چند شماره/api/v1/activationsآخرین 200 جلسه: scope=history، انتظار یا همه/api/v1/activations/{id}جلسه و پیام ها/api/v1/activations/{id}/sms?after_id=0&limit=100SMS با Cursor/api/v1/activations/{id}/retryمنتظر SMS/api/v1/activations/{id}/finishتکمیل/api/v1/activations/{id}/cancelلغو/api/v1/activations/repeatشماره بازگشت/api/v1/keysAPI کلیدها/api/v1/keysایجاد کلید/api/v1/keys/{id}تغییر نام یا سیاست/api/v1/keys/{id}کلید ردیابی/api/v1/referralsکد مرجع و درآمد/api/v1/summaryتعادل و خلاصه/api/v1/balanceدر انتظار آزادسازی/api/v1/ledgerسودگام لند/api/v1/withdrawalsدرخواست پرداخت/api/v1/withdrawalsایجاد یک درخواست/api/v1/statisticsآمار کلی/api/v1/earnings/holdsدوره انتظار درآمددریافت فقط SMS جدید
GET /api/v1/activations/42/sms?after_id=0&limit=100
Authorization: Bearer YOUR_API_KEY{
"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 این کار فقط برای مالک در دسترس است.