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
Автоматты таңдау: соңғы сағатта, содан кейін 24 сағатта ең көп код. Нөмір жоқ болса, келесі оператор.
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
}Автоматты таңдау: соңғы сағатта, содан кейін 24 сағатта ең көп код. Нөмір жоқ болса, келесі оператор.
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 санды арнау, қайталану үшін керек, retry және кеңейту сұраулар. Бұл ерекше, бірақ шақырылмаған 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% | — |
| Ауызды реф | 5% | 5% |
| Қандай, қазір мен қазір | — | 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 жауапқа оператордың ID-сін қосады; 0 немесе параметр көрсетілмесе, үш бөлік қайтарылады. |
ref | string | Софтвермен салықты коды: 5% және гостем 5%; не реф - 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- Автоматты таңдау: соңғы сағатта, содан кейін 24 сағатта ең көп код. Нөмір жоқ болса, келесі оператор.
- Парақ Idempotency-Key: сұрау бір пернемен алдыңғы сеансты қайтарады. Параметрлерді өзгерту IDEMPOTENCY_CONFLICT.
- Ұяшықсыз ел - EMPTY_POOL; қате ел пішімі - BAD_COUNTRY.
- Өшірілген сеанстың кілттері қолданылады: осы пернемен бөлімді қайта ойнату қайтарады SESION_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 жұрнағы белгілі операторсыз таңдауды анықтау.
- Қол жеткізбестік табылғыштың жалпы қабылдауы. Таңдалған арна санды талдағанда тексерілген.
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 жауапқа оператордың ID-сін қосады; 0 немесе параметр көрсетілмесе, үш бөлік қайтарылады. |
ref | string | Софтвермен салықты коды: 5% және гостем 5%; не реф - 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 үшін бұл қабырға айналады.Секреттермен қабырға айналады.
- Өшірілген сеанстың кілттері қолданылады: осы пернемен бөлімді қайта ойнату қайтарады SESION_CLOSED және басқа санды жоқ.
GETgetSmsFullSMS қауымдастығының ұзақтығы+
Барлық хаттар ID, жібергіші, коды, мәтін және ел, қызметтер мен табылғыш деректерін орнату.
параметрі
| параметр | Өткен | Оғанды |
|---|---|---|
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.
GETgetSmsSMS-ті тек қағазды+
Бар клиенттердің бүкіл 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- Хабарлама пішімі: time көмек- текст. Бірнеше хаттар бөлігін бөлпейді.
- Мәтін 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 ID, атауы және сыйақыны ұстау мерзімі.
параметрі
| параметр | Өткен | Оғанды |
|---|---|---|
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).
GETgetRewardsSMS-дер өтірінен+
Меңзегендер елге ықтимал. Барлық кестенің өлшемдері ұқсатталған 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.php бизнес-издалары мен өмірінің өмірінің 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 Key-ті бар. |
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 | Сессия не алдыңғы сан тіркелгіңізге келмейді.Қандайды және тазалық. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Қаланың тұрақты тұрғындарының саны нысанды.Серіктің де, SMS-дер бар. |
SCOPE_BLOCKED | 200 | «Аяқтар, «Аяқтар» және «Аяқтар» бағдарламасы бойынша не күлері.Бұл үшін API Key-ның ең айқынды. |
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/activations200 жылдан кейінгі: мақала = история, жұлдыз және басқа да/api/v1/activations/{id}Сессиясы және ақпаратты/api/v1/activations/{id}/sms?after_id=0&limit=100SMS-дер мен курсор/api/v1/activations/{id}/retrySMS-дер қосылды/api/v1/activations/{id}/finishӨткен/api/v1/activations/{id}/cancelАнуға/api/v1/activations/repeatАуыздылық No/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Өзінің қабырға айналады.Серіктің қабырға айналады: 1–200Сессиясы және SMS Оның басты себебі бар.