API Dokumentacion
Bir islanga başlar.
Bir API key sizda, bir numir sizda, 10 sekonda mesajlar üçün kontrol edin. SMS-i kodla qaytarda qodib.
https://smscash.org/api/v1https://smscash.org/stubs/handler_api.phpcurl --get 'https://smscash.org/stubs/handler_api.php' \
--data-urlencode 'api_key=YOUR_API_KEY' \
--data-urlencode 'action=getNumber' \
--data-urlencode 'service=go' \
--data-urlencode 'country=86'Alternatif uyumayan interfesi adres: /handler_api.php. REST integrasyonlar bilan bilan bilan bilan.
Soʻrov tuzuvchi
https://smscash.org/stubs/handler_api.phpcurl --max-time 15 --fail-with-body 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1'package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"time"
)
func main() {
endpoint, err := url.Parse("https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1")
if err != nil { panic(err) }
query := endpoint.Query()
query.Set("api_key", os.Getenv("SMSCASH_API_KEY"))
endpoint.RawQuery = query.Encode()
req, err := http.NewRequest("GET", endpoint.String(), nil)
if err != nil { panic(err) }
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) }
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
fmt.Println(res.StatusCode, string(body))
}// Node.js 18+: set SMSCASH_API_KEY in your environment.
const url = new URL("https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1");
url.searchParams.set("api_key", process.env.SMSCASH_API_KEY);
const response = await fetch(url, {
method: 'GET',
signal: AbortSignal.timeout(15000),
redirect: 'error',
});
const result = await response.text();
console.log(response.status, result);
// SMS codes are strings: keep leading zeros. Never repeat issuance automatically.import json
import os
import urllib.error
import urllib.parse
import urllib.request
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
url = "https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1"
parts = urllib.parse.urlsplit(url)
params = dict(urllib.parse.parse_qsl(parts.query))
params["api_key"] = os.environ["SMSCASH_API_KEY"]
url = urllib.parse.urlunsplit(parts._replace(query=urllib.parse.urlencode(params)))
request = urllib.request.Request(url, method='GET')
try:
with urllib.request.build_opener(NoRedirect).open(request, timeout=15) as response:
result = response.read().decode("utf-8")
print(response.status, result)
except urllib.error.HTTPError as error:
print(error.code, error.read().decode('utf-8'))
raise
# No automatic retries; SMS codes remain strings.Kalit saqlanmaydi. Bu tekshiruv raqam bermaydi.
Yeni integrasyonlar üçün
Xizmatlar va mamlakatlar
Bir servis və bir ülke seç. SMS-ga payat bilan bilan bilan.
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)
Bir numirga
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86Avtomatik tanlash: mavjud provayder tasodifiy tanlanadi.
ACCESS_NUMBER: session ID · phone number
service + country · session_duration: 20
ref: software owner code (optional)
operator: public ID (e.g. 1) or comma-separated IDs (e.g. "1,3")
optional · omitted/any/0: random eligible provider
country: integer · service: string · SMS code: stringRaqam 20 daqiqa uchun haqiqiy emas. SMS 10 soniya orasidagi tekshirildi. Butunlay bekor qilishingiz mumkin.
Bir nechta raqamni tekshirish
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": 10
}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 messageBalans · Ushlab turilgan
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 — Mavjud; held_balance — Ushlab turilgan. USD · 8
Faqat ushlab turish muddati tugagan mablag‘ni yechish mumkin.
Tayyor mijoz dasturlari
import {SmScash, SmScashError} from './smscash.mjs';
const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);
const messages = await api.sms(42, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([42]);
const held = await api.holdBalance();
console.log(held); // Exact USD stringimport os
from smscash import SmScash, SmScashError
api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])
messages = api.sms(42, after_id=0)
print(messages['sms'])
statuses = api.batch([42])
held = api.hold_balance()
print(held) # Exact USD stringme() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
setStatus(id, "cancel") / set_status(id, "cancel")
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.phpFoydalanuvchining shaxsiy API kaliti.
Bir servis və bir ülke seç. SMS-ga payat bilan bilan bilan.
| Kod | Tadiq |
|---|---|
getNumber / getNumberV2 | Bir numirga |
getStatus / getStatusV2 | U‘ziyda koodlar |
setStatus / finishActivation / cancelActivation | Sesi bilan |
getPrices / getNumbersStatus | Tadiqlar bilan bilan bilan |
getRewards (SMScash) | SMS-dan qaytadi |
getServicesList / getServices | Xizmatlar |
getCountries / getOperators | Xizmatlar va mamlakatlar |
getActiveActivations | Sesi |
getBalance | Foydalanuvchi balansi |
getHoldBalance (SMScash) | Ushlab turilgan |
cost = 0 USD · activationCost = 0 USDreward — SMS-dan qaytadi
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'{
"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, e.g. 1,3); 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.
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.Raqam 20 daqiqa uchun haqiqiy emas. SMS 10 soniya orasidagi tekshirildi. Butunlay bekor qilishingiz mumkin.
Authentication və retries
REST: Tadiq Authorization: Bearer YOUR_API_KEY. Kompatiblik interfac: Parametri api_key va actionHTTPS qizizga.
API key'lar qadi, hesabinizdir.
API-dan qurtlar frekanslar, telefon numirlar saylar qurtlar. Günlük ya qurtlar yok.
Raqam 20 daqiqa uchun haqiqiy emas. SMS 10 soniya orasidagi tekshirildi. Butunlay bekor qilishingiz mumkin.
API key gap
Boʻsh roʻyxatlarning barcha mavjud parametrlarini kerak boʻlishi mumkin.
{
"label": "Software‘m",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} U'qizga, ismi və politikadi qaytadi.Sahdi yalnız yaratilgan.
10% total. 5% + 5% software kod.
Raqam boʻlganda, iltimos koʻrsating ref Dastur egasi. Talab qilishda xatolik roʻy berdi. Kod "Terferals" boʻyicha va bunda GET /api/v1/referrals → software_ref.
| Yatama | Tadiq | Software |
|---|---|---|
| Refa‘mga | 10% | — |
| Ref bilan | 5% | 5% |
| Ref bilan hech qanday emas | — | 5% |
Platform bonusni ushbu qilishda qilib moslash. Dastur egasi va referer bir xil odam bo'lishi mumkin. Foydalanuvchining oʻz kodidan foydalanib bo'lmaydi.
Seans yaratilganda shartlar oʻrnatiladi SMS va retry Ularni oʻzgartirish yoʻq. ref Yangi seans uchun qaytadan yuklash. Tarif hisoblashda foydalanuvchi moslamasi USD 0.003 Qidirish USD 0.00015 har bir dastur egasi va referer. Jami bonus USD 0.00030.
API komando
11 XVBC-style metodlar plus siz SMScash bilan.
GETgetNumberBir numirga+
Seansni yaratish va ishga tushirish uchun mavjud raqamlarni saqlab qolish. Moslama va tahrirlash qiymatini tahril qilishda oʻrnatilgan. SMS Kod bilan keladi.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
service* | string | Mavjud xizmat kodlari. Javob API kalitining maydoniga cheksiz. |
country* | integer | Qidirish ID Kimdan getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
session_duration | integer | Sesi 20 min. 20 min. o‘zayga bu parametrini kayga. |
with_operator | integer | 1 javobga operator ID sini qo‘shadi; 0 yoki parametr berilmasa, uchta qism qaytariladi. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getNumber pass.
Muallif soʻrov
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1'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) }
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");
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",
timeout=15,
)
print(response.status_code, response.text)Reagib
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Avtomatik tanlash: mavjud provayder tasodifiy tanlanadi.
- Bir pool olmadan numeral bir zemni EMPTY_POOL, bad country format is BAD_COUNTRY.
- Oʻchirilgan seans kalitda qoʻllanilmaydi: shu tugma bilan tahrirlashni qaytadan oʻynash, SESION_CLOSED'dan foydalanish va boshqa raqam boʻlmaydi.
- Tahrirlash natijasi tasdiqlanmagan. Ikkining raqamni tahrirlanmasin uchun avtomatik qaytadan keraklashni oʻchirib boʻladi.
GETgetNumbersStatusTadiqlar bilan bilan bilan+
Xizmat va maʼlumot boʻyicha mavjud telefon raqami.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
country* | integer | Qidirish ID Kimdan getCountries. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getNumbersStatus pass.
Muallif soʻrov
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())Reagib
{
"go_0": 0
}- _0 suffix o‘zari bir seçim o‘zari bir operator.
- Mavjud boʻlgan faylning umumiy oʻlchamiga koʻrsatiladi. Tanlangan kanal raqam berilganda tekshirildi.
GETgetStatusU‘ziyda koodlar+
Sesi statusni və son SMS kodni qaytadi. kodda qizizizlar kaygan.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
id* | integer | Seansning ID'si, raqam kiritilganda olib tashlangan. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getStatus pass.
Muallif soʻrov
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)Reagib
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- Har 20 soniya koʻrsatiladi. Xabarni qayta oʻqish boshqa moslama yaratilmagan.
- Retrikdan sonra eski kod qaytarmay: getStatus bir sonraki SMS'i qaytarmaygan.
- SMS orqali raqam oʻchirilmagandan keyin, getStatus va getSmss STATUS_CANCEL qaytadan qayta; getSmsFull yopish holati, boʻsh telefon va bosh sms roʻyxatini qayta qiladi. REST /activations/{id} va /smss 404 NO_ACTIVATION' ga qaytarish.
GETsetStatusSesi bilan+
U'qiz, xiyim o'qiz, SMS'i qaytarga.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
id* | integer | Seansning ID'si, raqam kiritilganda olib tashlangan. |
status* | integer | 3 - Seansni bajarishdan keyingi kodni kutib koʻrish; 6 - SMS; 8 - butunlay bekor qilish. |
* Parametri va‘z. Bütün isilimlarda da aksiya=setStatus pass.
Muallif soʻrov
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3'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) }
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");
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",
timeout=15,
)
print(response.status_code, response.text)Reagib
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Keyingi kodni asl 20 daqiqada urinib koʻrish. Muddati va oʻchirish vaqti oʻzgartirilmaydi.
- Bekor qilish allaqachon oʻchirilmagan moslamalarni olib tashlash.
- SMS kodlu number qotʻlar kayan. kodlu olmayan kayanlar kayanlar kayanlar.
GETgetRepeatNumberBitta raqamni bosib chiqarish+
Siz istoriyadan bir numaradan yeni bir sesyon qotlar. Siz bir başka servis seçib.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
number* | string | Sizga eski numir. Yal numirlar və seçkin bir lider + qothatlar. |
service* | string | Mavjud xizmat kodlari. Javob API kalitining maydoniga cheksiz. |
session_duration | integer | Sesi 20 min. 20 min. o‘zayga bu parametrini kayga. |
with_operator | integer | 1 javobga operator ID sini qo‘shadi; 0 yoki parametr berilmasa, uchta qism qaytariladi. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Parametri va‘z. Bütün isilimlarda da aksiya=getRepeatNumber pass.
Muallif soʻrov
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go'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) }
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");
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",
timeout=15,
)
print(response.status_code, response.text)Reagib
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Birincisi, sizga qurtlan o‘ziz. Sizga numir bo‘ziz, re-exuansi ko‘ziz.
- Yeni sezyon o‘zayni yeni ID o‘zayni. eski SMS o‘zayni ko‘zayni. ref o‘zayni.
- SMScash bu hesabın tarihini yalnız numirlar qaytarmadi.
- Oʻchirilgan seans kalitda qoʻllanilmaydi: shu tugma bilan tahrirlashni qaytadan oʻynash, SESION_CLOSED'dan foydalanish va boshqa raqam boʻlmaydi.
GETgetSmsFullJSON sifatida SMSni olish+
Bütün mesajlar ID, sendir, kod, tekst, land, servis, ve supplier data ile kayan bilan.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
id* | integer | Seansning ID'si, raqam kiritilganda olib tashlangan. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getSmsFull pass.
Muallif soʻrov
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())Reagib
{
"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": "operator=1"
}
}
],
"expires_at": "2026-10-09T12:20:00Z"
}- Birlashtirish uchun koʻrsatilgan formati. sms[].id'ni faqat yangi xabarlarni koʻrsatish uchun eslab qolish.
- Raqamli holat SMScash: 1 - aktiv, 6 - bajarildi. 8 - bekor qilindi yoki muddati oʻchirildi. status_name Kutilmoqda, olib tashlangan, tugadi, bekor qilindi, muddati oʻtish.
- Seans yopishdan soʻng mavjud boʻlmaydi. Katta disk qismlar uchun REST /activations/{id}/sms'dan after_id bilan foydalaning.
- SMS orqali raqam oʻchirilmagandan keyin, getStatus va getSmss STATUS_CANCEL qaytadan qayta; getSmsFull yopish holati, boʻsh telefon va bosh sms roʻyxatini qayta qiladi. REST /activations/{id} va /smss 404 NO_ACTIVATION' ga qaytarish.
GETgetSmsSMS bir texta string kimi qaytadi+
Mavjud klientlar uchun qator formatida butun SMS tarixini qaytadan qayta qiladi.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
id* | integer | Seansning ID'si, raqam kiritilganda olib tashlangan. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getSms pass.
Muallif soʻrov
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)Reagib
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- Xabarning koʻrinishi:
- SMS-i özni kolonlar və vertikal barlar qo‘yadi. güvenilir parsing, getSmsFull'u kullan.
GETgetServicesXizmatlar+
Mavjud xizmat kodlari. Javob API kalitining maydoniga cheksiz.
Direktor
Nashriyot…
| Nimi | Service kod service |
|---|
Servisdi direktori isshadi isshadi. Number disponibility is checked separat.
Boʻsh roʻyxatlarning barcha mavjud parametrlarini kerak boʻlishi mumkin.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
country | integer | Qidirish ID Kimdan getCountries. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getServices pass.
Muallif soʻrov
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())Reagib
{
"go": {
"name": "Google",
"code": "go"
}
}- Servisdi direktori isshadi isshadi. Number disponibility is checked separat.
GETgetCountriesMamlakatlar+
IDs, nomlar, calling codes qiya'lar seçkin kanalda.
Direktor
Nashriyot…
| Nimi | ID qadi country |
|---|
Boʻsh roʻyxatlarning barcha mavjud parametrlarini kerak boʻlishi mumkin.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getCountries pass.
Muallif soʻrov
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())Reagib
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsOperatorlar+
Mavjud operatorlar: API ID, nomi va mukofotni ushlab turish muddati.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
country | integer | Qidirish ID Kimdan getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Parametri va‘z. Bütün isilimlarda da aksiya=getOperators pass.
Muallif soʻrov
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())Reagib
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "operator=1",
"earnings_hold_days": 45
}
}- Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsSMS-dan qaytadi+
Jadvalning qiymati boʻlishi mumkin. Hamma qiymatlar moslamadi SMS.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
country | integer | Qidirish ID Kimdan getCountries. |
service | string | Mavjud xizmat kodlari. Javob API kalitining maydoniga cheksiz. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Parametri va‘z. Bütün isilimlarda da aksiya=getRewards pass.
Muallif soʻrov
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())Reagib
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- USD tariff bilan bilan bilan bilan 8 decimal qotlarga xiyimlik bir decimal qotlarga qaytarga:
- Kalitga yoqilgan providerlar mavjud.
- country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису+
До 10 стран с лучшей доставкой смс кодов за последние 24 часа
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
service* | string | Код сервиса из getServices. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getTopCountriesByService pass.
Muallif soʻrov
curl 'https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go", 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=getTopCountriesByService&api_key=YOUR_API_KEY&service=go");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go",
timeout=15,
)
print(response.status_code, response.json())Reagib
Структура ответа
| Ключ в примере | Tadiq | Direktor |
|---|---|---|
["12"], ["36"] | ID qadi Первый, внешний уровень JSON. Каждая запись объединяет операторов одной страны. | getCountries |
["12"]["1"], ["12"]["3"] | ID оператора Второй уровень JSON, внутри страны. Это публичный ID оператора (поставщика), который передаётся в параметре operator. | getOperators |
{
"12": {
"1": {
"reward": 0.012,
"count": 542
},
"3": {
"reward": 0.014,
"count": 301
}
},
"36": {
"1": {
"reward": 0.011,
"count": 190
}
}
}{}- В примере ["12"]["1"] — данные оператора 1 в стране 12. ID стран берутся из getCountries, ID операторов — из getOperators.
- reward — действующее личное вознаграждение в USD, JSON-число. count — количество выданных номеров за последние 24 часа, включая сессии без кода.
- Рейтинг рассчитывается как все полученные непустые коды, делённые на все выдачи номеров за последние 24 часа для выбранного сервиса.
- Повторные непустые коды увеличивают числитель; конверсия может превышать 100%. Начальные нули сохраняются.
- Суточная статистика сервиса кэшируется на 10 минут. Тарифы и ограничения ключа проверяются при каждом запросе. Момент среза — в заголовке X-Statistics-As-Of.
- Нет данных или доступных связок — пустой объект {}. Страны с выдачами и нулём кодов имеют нулевую конверсию. Порядок ключей JSON не задаёт места в рейтинге.
GETgetBalanceFoydalanuvchi balansi+
Qoʻshimcha SMScash: mavjud balanchasini hisoblash, boshqaruvlar va moslamalar soʻroviga oʻtish.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getBalance pass.
Muallif soʻrov
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)Reagib
ACCESS_BALANCE:0.00- getBalance mavjud USD balansasini 8 oʻnlik boʻyiga koʻrsatadi.
- Faqat ushlab turish muddati tugagan mablag‘ni yechish mumkin.
GETgetHoldBalanceUshlab turilgan+
SMS olinganidan keyin daromad yetkazib beruvchi belgilagan muddatga ushlab turiladi. Belgilangan sanada summa avtomatik ravishda yechish uchun mavjud bo‘ladi.
Parametri
| Parametrik | Tip | Tadiq |
|---|---|---|
api_key* | string | Foydalanuvchining shaxsiy API kaliti. |
* Parametri va‘z. Bütün isilimlarda da aksiya=getHoldBalance pass.
Muallif soʻrov
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)Reagib
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- Faqat ushlab turish muddati tugagan mablag‘ni yechish mumkin.
Reply kodlar və tekrarlarlar
handler_api.php biznes natijasida oddiy HTTP 200 bilan boʻladi. Burcha matnni tekshiring. Direktoriyalar va getSmsFull return JSON agar muvaffaqiyat boʻlsa, xatolar har doim matn boʻlishi mumkin.
| Kod | HTTP | Bir sonraki yadi |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Davom emasRaqamni tahrirlash bir bitta SMS moslamalarini moslash mumkin. |
COUNTRY_BLOCKED | 200 | @ info: whatsthisBir başka zemni seçin. |
BAD_SERVICE | 200 | Bu servisin numblar bloklar.Di‘zari bir servis seçib. |
PROVIDER_NOT_READY | 200 | Raqamni tahrirlash vaqtinchalik mavjud emasAPI kataloglarini yangilash. |
BAD_KEY | 400 | Yoʻq api_key yoki xato format.Talab uchun kalitni tekshirish. |
INVALID_API_KEY | 401 | Key is unknown, rebound o‘qont is disabled.Bir API key qadi. |
BAD_COUNTRY | 400 | Manzil yoki muhim raqam yoʻq.Qidirish ID Kimdan getCountries. |
BAD_SESSION_DURATION | 400 | Telefon numirlar 20 dakikadan qotʻlar.Taʼrifi session_duration. |
BAD_REQUEST | 400 | Talab qilish maydonlarini tekshirish.Sizga isilini koruyun. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Unknown o disabled directory item.API kataloglarini yangilash. |
BAD_NUMBER | 200 | Raqamning notoʻgʻri formati.Siz numirni digitlarda qo‘z. |
BAD_ACTION / BAD_STATUS | 200 | Unnan, ID o operasyon.Parametrlarni tekshirish. |
EMPTY_POOL | 200 | Joriy telefon raqami mavjud emas.10-30 sekni sonra tekrarlar o‘ziz o‘ziz filtrarlar. |
NUMBER_IN_USE | 200 | Bir aktiv seanssiya bir numir o‘zizib.Seansni tugatish yoki boshqa raqamni tanlang. |
NO_ACTIVATION | 200 | Sesi ya o‘zari number sizga hesabda olmaygan.ID və key bilan bilan bilan bilan. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Holat uzatish joriy mavjud emas.SMS'nin qotlamadini və qotlamadini kontrol. |
SCOPE_BLOCKED | 200 | Service, country, o vendlar bu key için yetkilimiz olmaygan.API key'nin yasanni yasanni. |
INTERNAL_ERROR | 500 | Server o vendor error.Aloqa va yordam · X-Request-ID |
ALLOCATION_PENDING | 200 | TadiqgetActiveActivations · getStatus |
ALLOCATION_UNCERTAIN | 200 | Tahrirlash natijasi tasdiqlanmagan. Ikkining raqamni tahrirlanmasin uchun avtomatik qaytadan keraklashni oʻchirib boʻladi.Tahrirlash natijasi tasdiqlanmagan. Ikkining raqamni tahrirlanmasin uchun avtomatik qaytadan keraklashni oʻchirib boʻladi. |
REST bir objekti qaytarga {"error":{"code":"…","message":"…"}} va doim HTTP holati 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "Talab qilish maydonlarini tekshirish.",
"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.Yeni integrasyonlar üçün
USD tariff bilan bilan bilan bilan 8 decimal qotlarga xiyimlik bir decimal qotlarga qaytarga: 0.00300000 USD.
Balansa pul USD. Talab qilish va javob qoliplari mavjud emas OpenAPI.
/api/v1/catalogXizmatlar va mamlakatlar/api/v1/tariffsSMS Raqamlar/api/v1/offersTariflar və premi/api/v1/servicesDirektor/api/v1/countriesDirektor/api/v1/operatorsDirektor/api/v1/availability?country=1Tadiqlarda disponibility/api/v1/activationsYeni seansat/api/v1/activations/batch?ids=42,43Bir nechta raqamni tekshirish/api/v1/activationsSon 200 seats: scope=history, o‘qot o‘qot o‘qot/api/v1/activations/{id}Sesiya və mesajlar/api/v1/activations/{id}/sms?after_id=0&limit=100SMS qizizizga qizizizga/api/v1/activations/{id}/retrySMS'i qaytadi/api/v1/activations/{id}/finishTadiq/api/v1/activations/{id}/cancelYatmadi/api/v1/activations/repeatNumerari qaytar/api/v1/keysAPI Key/api/v1/keysBir key ko‘zadi/api/v1/keys/{id}Nominadi ya politikan./api/v1/keys/{id}Key qiziziz/api/v1/referralsReferral kodlar və qaytarlar/api/v1/summaryName/api/v1/balanceUshlab turilgan/api/v1/ledgerLeddari bilan/api/v1/withdrawalsPaytlarga qaytarga/api/v1/withdrawalsBir islanni/api/v1/statisticsStatistika bilan/api/v1/earnings/holdsDaromadni ushlab turishYeni SMS'i qaytadi
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": "Kood: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}Saqlash next_cursor Uni boshlab qoʻyish after_id. Agar has_more=trueKeyingi sahifa butunlay oʻqish mumkin. limit: 1–200. Seans va SMS faqat egasi uchun mavjud.