API dokumentacija
Začnite z eno zahtevo
Ustvarite API ključ v vaši plošči, dobite številko in preverite sporočila vsake 10 sekund. Plačilo se kredito, ko SMS s kodo pride; branje znova ne vpliva na vaš ravnotežje.
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'Alternativna združljiva vmesna adresa: /handler_api.php. Obstoječe integracije REST še vedno delujejo.
Ustvarjanje zahtev
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.Ključ se ne shrani. To preverjanje ne dodeljuje številk.
Ostanejo nove integracije
Storitve in države
Izberite storitev in državo. plačilo po SMS je odvisno od države.
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)
Pridobite številko
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86Samodejna izbira: naključni razpoložljivi operater.
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Številka je veljavna 20 minut. SMS se preverja vsakih 10 sekund. lahko takoj preklicate.
Preveri več številk
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 messageStanje · Zadržano
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 — Na voljo; held_balance — Zadržano. USD · 8
Dvignete lahko samo sredstva, za katera se je obdobje zadržanja končalo.
Odjemalci, pripravljeni za uporabo
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.phpOsebni API ključ uporabnika.
Izberite storitev in državo. plačilo po SMS je odvisno od države.
| Koda | opis |
|---|---|
getNumber / getNumberV2 | Pridobite številko |
getStatus / getStatusV2 | Pridobite najnovejši kodo |
setStatus / finishActivation / cancelActivation | Upravljanje seje |
getPrices / getNumbersStatus | Preverite razpoložljivost |
getRewards (SMScash) | Nagrada za SMS |
getServicesList / getServices | Storitve |
getCountries / getOperators | Storitve in države |
getActiveActivations | Sedež |
getBalance | Stanje uporabnika |
getHoldBalance (SMScash) | Zadržano |
cost = 0 USD · activationCost = 0 USDreward — Nagrada za 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.Številka je veljavna 20 minut. SMS se preverja vsakih 10 sekund. lahko takoj preklicate.
Avtentikacija in upokojitev
REST: naslovnik Authorization: Bearer YOUR_API_KEY. Združljiv vmesnik: Parametri api_key in actionUporabljajte HTTPS
Če želite upravljati API ključe, vnesite svoj račun.
Pogostost zahtevkov API in število telefonskih številk je neomejeno. ni dnevnih ali urnih kvote.
Številka je veljavna 20 minut. SMS se preverja vsakih 10 sekund. lahko takoj preklicate.
API ključni obseg
Lahko omejite ključ na določene storitve, države in ponudnike. prazne sezname omogočajo vse razpoložljive možnosti.
{
"label": "Moja programska oprema",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} spremeni ime in politiko v celoti. skrivnost se kaže le, ko je ustvarjena.
10% v skupnem. 5% + 5% z programsko kodo.
Ko izdajete številko, prosimo, da ref lastnik programske opreme. zahtevo pooblaščena je ključ izvršitelja. kodo je v oddelku »Poročila« in v GET /api/v1/referrals → software_ref.
| zahtevo | povabilo | Programska oprema |
|---|---|---|
| Brez ref | 10% | — |
| Z ref | 5% | 5% |
| Z ref, brez refererjev | — | 5% |
Platforma plača bonus, ne da bi zmanjšala zaslužke uporabnika. lastnik programske opreme in referer lahko isto osebo. uporabnik ne more uporabljati lastnega koda.
Pogoj je določen, ko se začne seja; branje SMS in odhod ne spreminjajo jih. Prehod ref znova za novo ponavljajočo sejo. V izračunu tarife, uporabnik nagrada USD 0.003 daje USD 0.00015 vsakemu lastniku programske opreme in refererju. Skupni bonus je USD 0.00030.
API zapovedi
11 XVBC-stila metod plus vaš SMScash ravnovesje.
GETgetNumberPridobite številko+
Ustvarja sejo in rezervira razpoložljivo številko za uporabnika. nagradna stopnja in prejemniki reference so fiksni na dodelitvi; nagrada se kredito, ko pride SMS s kodo.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
service* | string | Dostopni kodo storitev. Odgovor je omejen na območje API ključa. |
country* | integer | Vzemi ID iz getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
session_duration | integer | Sedenje traja 20 minut. premaknite 20 ali izogibajte se tem parametru. |
with_operator | integer | 1 doda ID operaterja v odgovor; 0 ali izpuščen parameter vrne tri dele. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getNumber.
Primeri zahteve
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)Odgovori
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Samodejna izbira: naključni razpoložljivi operater.
- Številna država brez bazena daje EMPTY_POOL; napačen državni format je BAD_COUNTRY.
- Ključ izbrisane seje se še vedno uporablja: ponovna predvajanja dodelitve s tem ključem vrne SESSION_CLOSED in ne izda drugega številke.
- Rezultati dodelitve niso potrjeni. avtomatsko povračilo je onemogočeno, da se izogne dodelitvi drugega števila.
GETgetNumbersStatusPreverite razpoložljivost+
Razpoložljive telefonske številke po storitvi in državi.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
country* | integer | Vzemi ID iz getCountries. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getNumbersStatus.
Primeri zahteve
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())Odgovori
{
"go_0": 0
}- _0 suffix pomeni izbiro brez določenega operaterja.
- Razpoložljivost se nanaša na celoten bazen dobavitelja. izvoljeni kanal se preveri, ko je dodeljen številka.
GETgetStatusPridobite najnovejši kodo+
Enostavno zahtevo za stanje seje in zadnje SMS koda. vodilne ničle v kodi so ohranjene.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
id* | integer | ID vaše seje, ki je bil prejeti, ko je bil izdan številka. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getStatus.
Primeri zahteve
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)Odgovori
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- Poll vsakih 20 sekund. branje sporočila znova ne ustvari dodatne plačila.
- Po tem retry staro oznako ni vrnjeno: getStatus počakajo na naslednje SMS.
- Po številki brez SMS je bil odstranjen, getStatus in getSms vrnitev STATUS_CANCEL; getSmsFull vrne zaprto stanje, prazen telefon in prazen telefon sms seznam je. REST /activations/{id} in /sms vrnitev 404 NO_ACTIVATION.
GETsetStatusUpravljanje seje+
Konča, preklopi ali ponovno počaka na SMS. seja poteka enako.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
id* | integer | ID vaše seje, ki je bil prejeti, ko je bil izdan številka. |
status* | integer | 3 - počakajte na naslednji kodo brez podaljšanja seje; 6 - konča po SMS; 8 - takoj preklic. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =setStatus.
Primeri zahteve
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)Odgovori
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Vrne se počaka na naslednji kodo v prvotnih 20 minutah. izhod in čas izteka se ne spreminjajo.
- Odstranitev ne odstrani že zaslužene nagrade.
- V zgodovini se hranijo samo številke z SMS kodo. odložene in iztekajoče številke brez koda se izbrišejo.
GETgetRepeatNumberZnova izberite isto številko+
Odprite novo sejo z določeno številko iz zgodovine. lahko izberete drugo razpoložljivo storitev v isti državi.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
number* | string | Samo številke in opcionalni vodilni + so dovoljeni. |
service* | string | Dostopni kodo storitev. Odgovor je omejen na območje API ključa. |
session_duration | integer | Sedenje traja 20 minut. premaknite 20 ali izogibajte se tem parametru. |
with_operator | integer | 1 doda ID operaterja v odgovor; 0 ali izpuščen parameter vrne tri dele. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getRepeatNumber.
Primeri zahteve
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)Odgovori
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Najprej končajte ali prekličite trenutno sejo. če je število zasedeno, ponovno izhod ni opravljen.
- V novem delu se je pridružila nova ID in trenutni tarif. stare SMS V njej se ne kopirajo. ref se ponovno postavlja.
- SMScash omogoča ponavljanje le številk iz zgodovine tega računa.
- Ključ izbrisane seje se še vedno uporablja: ponovna predvajanja dodelitve s tem ključem vrne SESSION_CLOSED in ne izda drugega številke.
GETgetSmsFullSMS sporočilo kot JSON+
Struktura zgodovine vseh sporočil z ID, pošiljatelj, kodo, besedilo in državo, podatke o storitvi in dobavitelju.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
id* | integer | ID vaše seje, ki je bil prejeti, ko je bil izdan številka. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getSmsFull.
Primeri zahteve
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())Odgovori
{
"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"
}- Preferirani format za integracijo.Pomnite si sms[].id za obdelavo samo novih sporočil.
- Številni status SMScash: 1 - aktivni, 6 - končan, 8 - preklic ali izteka. status_name razlikuje med počakanjem, prejetim, končanim, preklic, izteka.
- Prejete kode ostajajo razpoložljive po zaključku zasedanja. Za velike obsega uporabite REST /activations/{id}/sms z after_id.
- Po številki brez SMS je bil odstranjen, getStatus in getSms vrnitev STATUS_CANCEL; getSmsFull vrne zaprto stanje, prazen telefon in prazen telefon sms seznam je. REST /activations/{id} in /sms vrnitev 404 NO_ACTIVATION.
GETgetSmsSMS kot besedilna vrstica+
Povrnitev celotne zgodovine SMS v obliki vrstice za obstoječe stranke.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
id* | integer | ID vaše seje, ki je bil prejeti, ko je bil izdan številka. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getSms.
Primeri zahteve
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)Odgovori
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- Oblikovanje sporočila: časovni kodo, besedilo. več sporočil je ločeno s stolpcem.
- Sam SMS lahko vsebuje stolpce in vertikalne vrstice. za zanesljivo parsing, uporabite getSmsFull.
GETgetServicesStoritve+
Dostopni kodo storitev. Odgovor je omejen na območje API ključa.
Direktorji
Založništvo…
| Ime | servisni kodo service |
|---|
Področje storitev je razdeljeno na vse ponudnike.Prednost številk se preveri ločeno.
Lahko omejite ključ na določene storitve, države in ponudnike. prazne sezname omogočajo vse razpoložljive možnosti.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
country | integer | Vzemi ID iz getCountries. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getServices.
Primeri zahteve
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())Odgovori
{
"go": {
"name": "Google",
"code": "go"
}
}- Področje storitev je razdeljeno na vse ponudnike.Prednost številk se preveri ločeno.
GETgetCountriesDržave+
ID, imena in klicni kodi za države v izbranem kanalu.
Direktorji
Založništvo…
| Ime | ID države country |
|---|
Lahko omejite ključ na določene storitve, države in ponudnike. prazne sezname omogočajo vse razpoložljive možnosti.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getCountries.
Primeri zahteve
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())Odgovori
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsOperatorji+
Razpoložljivi operaterji: API ID, ime in obdobje zadržanja nagrade.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
country | integer | Vzemi ID iz getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getOperators.
Primeri zahteve
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())Odgovori
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "operator=1",
"earnings_hold_days": 45
}
}- Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsNagrada za SMS+
Stopnje so odvisne od države.Vse zneske za tabelo so na plačan SMS.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
country | integer | Vzemi ID iz getCountries. |
service | string | Dostopni kodo storitev. Odgovor je omejen na območje API ključa. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getRewards.
Primeri zahteve
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())Odgovori
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- Zneski tarifne vrednosti USD se vrnejo kot natančne desetine z 8 desetimi točkami:
- Omogočene ponudnike, ki so na voljo za vaš ključ.
- country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису+
До 10 стран с лучшей доставкой смс кодов за последние 24 часа
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
service* | string | Код сервиса из getServices. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getTopCountriesByService.
Primeri zahteve
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())Odgovori
Структура ответа
| Ключ в примере | opis | Direktorji |
|---|---|---|
["12"], ["36"] | ID države Первый, внешний уровень 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 не задаёт места в рейтинге.
GETgetBalanceStanje uporabnika+
Dodatna SMScash: razpoložljiva bilanca, ki upošteva akruale, referralne bonuse in zahteve za plačilo.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getBalance.
Primeri zahteve
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)Odgovori
ACCESS_BALANCE:0.00- getBalance vrne razpoložljive USD ravnovesje z do 8 Desetih mest je.
- Dvignete lahko samo sredstva, za katera se je obdobje zadržanja končalo.
GETgetHoldBalanceZadržano+
Po prejemu SMS se zaslužek zadrži za obdobje, ki ga določi dobavitelj. Na navedeni datum je znesek samodejno na voljo za dvig.
Parametri
| Parametri | tip | opis |
|---|---|---|
api_key* | string | Osebni API ključ uporabnika. |
* Zahtevani parametri.V vseh zahtevah tudi preide akcija =getHoldBalance.
Primeri zahteve
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)Odgovori
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- Dvignete lahko samo sredstva, za katera se je obdobje zadržanja končalo.
Odgovorne kode in ponavljajoče se zahteve
V handler_apiPoslovne rezultate .php običajno pride s HTTP 200. Preveri besedilo tela. getSmsFull vrnitev JSON če je uspešno; napake so vedno besedila.
| Koda | HTTP | Vzrok in naslednji korak |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Stopnje še niso določeneŠtevilka dodelitve se začne, ko so nastavljeni SMS nagrade. |
COUNTRY_BLOCKED | 200 | Številka dodelitve za to državo je blokirana.Izberite drugo državo. |
BAD_SERVICE | 200 | Številka dodelitve za to storitev je blokirana.Izberite drugo storitev. |
PROVIDER_NOT_READY | 200 | Številka dodelitve je začasno nedostopnaOdstranite katalog API. |
BAD_KEY | 400 | Brez api_key ali nevažno obliko.Preverite ključ v zahtevi. |
INVALID_API_KEY | 401 | Ključ je neznan, preklic ali račun je onemogočen.Ustvarite veljaven API ključ. |
BAD_COUNTRY | 400 | Država je manjka ali ne pozitivna številka.Vzemi ID iz getCountries. |
BAD_SESSION_DURATION | 400 | Telefonske številke so izdali za natančno 20 minut.Popravitev session_duration. |
BAD_REQUEST | 400 | Preverite polja za zahtevo.Prosimo, da popravite vašo zahtevo. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Neznani ali onemogočeni element v naslovu.Odstranite katalog API. |
BAD_NUMBER | 200 | Nepravilna številka v obliki.Vnesite številko v številke. |
BAD_ACTION / BAD_STATUS | 200 | Neznano poveljstvo, ID ali operacija.Preverite nastavitve |
EMPTY_POOL | 200 | Trenutno ni na voljo nobenih telefonskih številk.Ponovite po 10-30 sekundah ali spremenite filtre. |
NUMBER_IN_USE | 200 | Posebno število je zasedeno z aktivno sejo.Končajte sejo ali izberite drugo številko. |
NO_ACTIVATION | 200 | Sedež ali prejšnje številke ne spadajo v vaš račun.Preverite ID in ključ. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Državni prehod trenutno ni na voljo.Preverite stanje in razpoložljivost SMS. |
SCOPE_BLOCKED | 200 | Storitev, država ali dobavitelj ni dovoljen za ključ.Posodobite obseg API ključa. |
INTERNAL_ERROR | 500 | Napaka v ponudniku ali ponudniku.Kontakt in podpora · X-Request-ID |
ALLOCATION_PENDING | 200 | ČakajogetActiveActivations · getStatus |
ALLOCATION_UNCERTAIN | 200 | Rezultati dodelitve niso potrjeni. avtomatsko povračilo je onemogočeno, da se izogne dodelitvi drugega števila.Rezultati dodelitve niso potrjeni. avtomatsko povračilo je onemogočeno, da se izogne dodelitvi drugega števila. |
Ostalo vrne predmet {"error":{"code":"…","message":"…"}} in redni HTTP statusi 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "Preverite polja za zahtevo.",
"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.Ostanejo nove integracije
Zneski tarifne vrednosti USD se vrnejo kot natančne desetine z 8 desetimi točkami: 0.00300000 USD.
Valuta je USD. sheme zahteve in odziva so na voljo v OpenAPI.
/api/v1/catalogStoritve in države/api/v1/tariffsSMS nagradne stopnje po državi/api/v1/offersStopnje in nagrade/api/v1/servicesDirektorji/api/v1/countriesDirektorji/api/v1/operatorsDirektorji/api/v1/availability?country=1Številka razpoložljivosti/api/v1/activationsNova seja/api/v1/activations/batch?ids=42,43Preveri več številk/api/v1/activationsZadnje 200 sej: obseg = zgodovina, čakanje ali vse/api/v1/activations/{id}Sedež in sporočila/api/v1/activations/{id}/sms?after_id=0&limit=100SMS z novimi kurzorji/api/v1/activations/{id}/retryČakajo na SMS/api/v1/activations/{id}/finishdokončanje/api/v1/activations/{id}/cancelodpoved/api/v1/activations/repeatŠtevilo vračanja/api/v1/keysAPI ključavnice/api/v1/keysUstvarite ključ/api/v1/keys/{id}Spreminjanje imena ali politike/api/v1/keys/{id}Odstranite ključ/api/v1/referralsReferenčni kodo in dobiček/api/v1/summaryBalanca in povzetek/api/v1/balanceZadržano/api/v1/ledgerZaslužek Ledger/api/v1/withdrawalsZahteve za plačilo/api/v1/withdrawalsUstvarite zahtevo/api/v1/statisticsSplošna statistika/api/v1/earnings/holdsZadržanje zaslužkovPrejemanje samo novih 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": "Številka: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}Spravite next_cursor in prenesite ga, kot after_id. Če has_more=true, naslednji strani se lahko takoj preberi. meja: 1–200. Zasede in SMS so na voljo samo lastnika.