API Документација
Počnite sa jednim zahtevom
Stvorite jedan API Кључ у вашем тастатури, добијте број и проверите за поруке сваки 10 Плаћање се прикупља када је SMS са кодом долази; читање га поново не утиче на вашу равнотежу.
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'Алтернативна компатибилна интерфејс адреса: /handler_api.php. постојеће интеграције РЕСТ-а и даље раде.
Израда захтева
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.Кључ се не чува. Ова провера не додељује бројеве.
Остали за нове интеграције
Услуге и земље
Избор услуге и земље. плаћање по SMS To zavisi od zemlje.
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)
Добијте број
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86Аутоматски избор: насумични доступни оператер.
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: stringБрој је важећи за 20 Минута је SMS Проверено је свако 10 секунде. можете одмах да откажете.
Провера више бројева
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 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';
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.phpЛични API кључ корисника.
Избор услуге и земље. плаћање по SMS To zavisi od zemlje.
| Код | Опис |
|---|---|
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'{
"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.Број је важећи за 20 Минута је SMS Проверено је свако 10 секунде. можете одмах да откажете.
Аутентификација и ретроверзије
REST: Главни Authorization: Bearer YOUR_API_KEY. компатибилни интерфејс: параметри api_key и actionKoristite HTTPS
Да бисте управљали API кључевима, унесите свој налог.
API честота захтева и број телефонских бројева су неограничени. нема дневне или сатне квоте.
Број је важећи за 20 Минута је SMS Проверено је свако 10 секунде. можете одмах да откажете.
API ključni skop
Можете ограничити кључ на одређене услуге, земље и провајдере. празни листи омогућавају све доступне опције.
{
"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). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
session_duration | integer | Сесија траје 20 минута. прођете 20 или пропустите овај параметар. |
with_operator | integer | 1 додаје ID оператера у одговор; 0 или изостављен параметар враћа три дела. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
* Потребан параметар. у свим захтевима такође пролази акција =getNumber.
Пример захтева
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)Одговори
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Аутоматски избор: насумични доступни оператер.
- Бројна земља без базена даје ЕМПТИ_ПООЛ; погрешан формат земље је БАД_КОУНТРИ.
- Кључ за избрисану сесију остаје у употреби: репродукција распореда са тим кључем враћа СЕСИЈ_ЦЛОСЕН и не издаје други број.
- Резултат распореда није потврђен.Автоматски повлачење је онемогућено да би се избегло распоређивање другог броја.
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 Čekaj na sledeće 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'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)Одговори
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Повратак чека следећи код у року од 20 минута. излаз и време истека се не мењају.
- Анулација не уклања награде које су већ зарађене.
- Само број са 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% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Потребан параметар. у свим захтевима такође пролази акција =getRepeatNumber.
Пример захтева
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)Одговори
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Прво, завршите или отклоните вашу тренутну сесију.Ако је број заузет, поновно излазак се не врши.
- Нови састанак добија нови ID А садашњи тариф. стари SMS Не копирају се у њега. ref Поново се поставља.
- SMScash дозвољава понављање само бројева из историје овог рачуна. земља се идентификује бројем.
- Кључ за избрисану сесију остаје у употреби: репродукција распореда са тим кључем враћа СЕСИЈ_ЦЛОСЕН и не издаје други број.
GETgetSmsFullSMS sa 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": "operator=1"
}
}
],
"expires_at": "2026-10-09T12:20:00Z"
}- Преферирани формат за интеграцију. запамтите СМС[].ИД да бисте обрадили само нове поруке.
- бројни статус 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 kao tekst string+
Враћа се цео 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 Кључ је
Директорија
Публисхинг…
| Име | Код услуга service |
|---|
Дијалог услуга је подељен кроз добављача. број доступности се проверава одвојено.
Можете ограничити кључ на одређене услуге, земље и провајдере. празни листи омогућавају све доступне опције.
параметри
| параметри | Тип | Опис |
|---|---|---|
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Државе+
ИД, имена и позивни кодови за земље у изабраном каналу.
Директорија
Публисхинг…
| Име | ИД земље country |
|---|
Можете ограничити кључ на одређене услуге, земље и провајдере. празни листи омогућавају све доступне опције.
параметри
| параметри | Тип | Опис |
|---|---|---|
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). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · 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": "operator=1",
"earnings_hold_days": 45
}
}- Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsНаграда за SMS+
Ставка зависи од земље.Сви столови су по плаћању SMS.
параметри
| параметри | Тип | Опис |
|---|---|---|
api_key* | string | Лични API кључ корисника. |
country | integer | Узми ID од getCountries. |
service | string | Доступни код услуга.Одговор је ограничен на подручје API Кључ је |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · 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 tarifni iznosi se vraćaju kao tačni desimalni redovi sa 8 desimalnih mesta:
- Дозвољени провајдери доступни за ваш кључ.
- country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису+
До 10 стран с лучшей доставкой смс кодов за последние 24 часа
параметри
| параметри | Тип | Опис |
|---|---|---|
api_key* | string | Лични API кључ корисника. |
service* | string | Код сервиса из getServices. |
* Потребан параметар. у свим захтевима такође пролази акција =getTopCountriesByService.
Пример захтева
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())Одговори
Структура ответа
| Ключ в примере | Опис | Директорија |
|---|---|---|
["12"], ["36"] | ИД земље Первый, внешний уровень 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 не задаёт места в рейтинге.
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 | Cene još uvek nisu postavljeneБрој прикупљања ће почети једном 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 | Država nedostaje ili ne ima pozitivan broj.Узми ID од getCountries. |
BAD_SESSION_DURATION | 400 | Телефонски бројеви се издају тачно 20 минута.Исправљање session_duration. |
BAD_REQUEST | 400 | Проверите поље за захтеве.Molim vas da ispravite Vašu zahtev. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Непознати или инвалидирани директоријски елемент.освежавају се API Каталог је |
BAD_NUMBER | 200 | Неправилан број формат.Унесите број у дигитима. |
BAD_ACTION / BAD_STATUS | 200 | Непозната команда, идентификатор или операција.Проверите подешавања |
EMPTY_POOL | 200 | Trenutno nema odgovarajućih telefonskih brojeva.Понављају се након 10-30 секунде или промене филтера. |
NUMBER_IN_USE | 200 | Посебан број је заузет активном сесијом.Завршите сесију или изаберите други број. |
NO_ACTIVATION | 200 | Сесију или претходни број не припада вашем рачуну.Проверите идентификацију и кључ. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Државна транзиција је тренутно недоступна.Проверите услов и доступност SMS. |
SCOPE_BLOCKED | 200 | Услуга, земља или продавац није овлашћен за кључ.Ажурирајте на API Кључ је опсег. |
INTERNAL_ERROR | 500 | Привремена грешка сервера или продавца.Контакт и подршка · X-Request-ID |
ALLOCATION_PENDING | 200 | ЧекајућиgetActiveActivations · getStatus |
ALLOCATION_UNCERTAIN | 200 | Резултат распореда није потврђен.Автоматски повлачење је онемогућено да би се избегло распоређивање другог броја.Резултат распореда није потврђен.Автоматски повлачење је онемогућено да би се избегло распоређивање другог броја. |
Остатак враћа објекат {"error":{"code":"…","message":"…"}} и редовни ХТТП статуси 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 tarifni iznosi se vraćaju kao tačni desimalni redovi sa 8 desimalnih mesta: 0.00300000 USD.
Валута баланса је USD. схеми за захтеве и одговоре су доступни у OpenAPI.
/api/v1/catalogУслуге и земље/api/v1/tariffsSMS nagrada po zemlji/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 сесија: опсег = историја, чекање или све/api/v1/activations/{id}Сесије и поруке/api/v1/activations/{id}/sms?after_id=0&limit=100Нови SMS са курсором/api/v1/activations/{id}/retryČekajući SMS/api/v1/activations/{id}/finishДовршеност/api/v1/activations/{id}/cancelотклањање/api/v1/activations/repeatБрој поновног/api/v1/keysAPI Кључ/api/v1/keysStvorite ključ/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/withdrawalsStvorite zahtev/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 Доступни су само власници.