API dokumentacija
Počnite s jednim zahtjevom
Stvorite API ključ u vašem dashboard, dobijte broj i provjerite poruke svakih 10 sekundi.Plaćanje se kreditira kada SMS s kodom stiže; čitanje ga ponovno ne utječe na vašu ravnotežu.
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 kompatibilna adresa su: /handler_api.php. postojeći REST integracije i dalje rade.
Izrada zahtjeva
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 pohranjuje. Ova provjera ne dodjeljuje brojeve.
Ostalo za nove integracije
Usluge i zemlje
Izaberite uslugu i zemlju. plaćanje putem SMS-a ovisi o zemlji.
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)
Dobijte broj
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86Automatski odabir: nasumični dostupni 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: stringBroj je valjan 20 minuta. SMS se provjerava svakih 10 sekundi. možete odmah otkazati.
Provjeri više brojeva
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 — Dostupno; held_balance — Zadržano. USD · 8
Mogu se isplatiti samo sredstva kojima je završilo razdoblje zadržavanja.
Klijenti spremni za uporabu
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.phpOsobni API ključ korisnika.
Izaberite uslugu i zemlju. plaćanje putem SMS-a ovisi o zemlji.
| Kodovi | Opis |
|---|---|
getNumber / getNumberV2 | Dobijte broj |
getStatus / getStatusV2 | Dobijte najnovije kodove |
setStatus / finishActivation / cancelActivation | Upravljanje sjednicama |
getPrices / getNumbersStatus | Provjerite dostupnost |
getRewards (SMScash) | Nagrada za SMS |
getServicesList / getServices | Usluge |
getCountries / getOperators | Usluge i zemlje |
getActiveActivations | Sjednice |
getBalance | Stanje korisnika |
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.Broj je valjan 20 minuta. SMS se provjerava svakih 10 sekundi. možete odmah otkazati.
Autentifikacija i povlačenje
REST: Naslovnica Authorization: Bearer YOUR_API_KEY. Kompatibilni su interfejsi: parametri api_key i actionKoristite HTTPS
Da biste upravljali API ključima, unesite svoj račun.
API zahtijeva frekvenciju i broj telefonskih brojeva su neograničeni. nema dnevnih ili satnih kvota.
Broj je valjan 20 minuta. SMS se provjerava svakih 10 sekundi. možete odmah otkazati.
API ključni raspon
Možete ograničiti ključ na određene usluge, zemlje i pružatelje. prazne popise omogućuju sve dostupne opcije.
{
"label": "Moj softver",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} Promijenite ime i politiku u potpunosti. tajna se pokazuje samo kada je stvorena.
10% u ukupnom. 5% + 5% sa softverskim kodom.
Kada izdati broj, molimo dajte ref vlasnik softvera. zahtjev je ovlašten ključem izvršitelja. kod je u odjeljku "Referral" i u GET /api/v1/referrals → software_ref.
| zahtjev | Poziv | softver |
|---|---|---|
| Bez ref | 10% | — |
| S ref | 5% | 5% |
| S ref, bez referera | — | 5% |
Platforma plaća bonus bez smanjenja zarade korisnika. vlasnik softvera i referer mogu biti ista osoba. korisnik ne može koristiti svoj kod.
Uvjeti su fiksirani kada se stvori sjednica; čitanje SMS-a i povlačenje ih ne mijenjaju. Prođite ref ponovno za novu ponavljanu sjednicu. U izračunu tarifa, korisnik nagrada od USD 0.003 daje USD 0.00015 svaki vlasniku softvera i referer. Ukupni bonus je USD 0.00030.
API zapovijedi
11 XVBC-stila metoda plus vaš SMScash ravnoteža.
GETgetNumberDobijte broj+
Stvara se sjednica i rezervira broj koji je dostupan za korisnika. nagrada i referralni primatelji su fiksni na dodjeli; nagrada se kreditira kada SMS s kodom stiže.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
service* | string | Dostupni servisni kodi.Odgovor je ograničen na područje API ključa. |
country* | integer | Uzmi ID od getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
session_duration | integer | Sesija traje 20 minuta. proći 20 ili propustiti ovaj parametar. |
with_operator | integer | 1 dodaje ID operatera u odgovor; 0 ili izostavljen parametar vraća tri dijela. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getNumber.
Primjer zahtjeva
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- Automatski odabir: nasumični dostupni operater.
- Brojna zemlja bez bazena daje EMPTY_POOL; pogrešan format zemlje je BAD_COUNTRY.
- Klavir za uklonjenu sjednicu ostaje upotrijebljen: ponovna raspodjela s tim ključem vraća SESSION_CLOSED i ne izda drugi broj.
- Rezultati dodjele nisu potvrđeni. automatski povlačenje je onemogućeno kako bi se izbjeglo dodjelu drugog broja.
GETgetNumbersStatusProvjerite dostupnost+
Dostupni broj telefona po službi i zemlji.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
country* | integer | Uzmi ID od getCountries. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getNumbersStatus.
Primjer zahtjeva
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 znači izbor bez određenog operatera.
- Dostupnost se odnosi na ukupni bazen dobavljača.Odabran kanal se provjerava kada se dodjeljuje broj.
GETgetStatusDobijte najnovije kodove+
Jednostavna zahteva za status sjednice i posljednji SMS kod. Čuvani su vodeći zerovi u kodu.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
id* | integer | ID sjednice, primljen kada je izdan broj. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getStatus.
Primjer zahtjeva
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 svaki 20 Čitanje poruke ponovno ne stvara novu plaćanje.
- Poslije retry stari kod nije vraćeni: getStatus čeka na sljedeću SMS.
- Nakon broja bez SMS i uklonjen je, getStatus i getSms povratak STATUS_CANCEL; getSmsFull vraća zatvoren status, prazan telefon i prazan sms Na popisu. REST /activations/{id} i /sms povratak 404 NO_ACTIVATION.
GETsetStatusUpravljanje sjednicama+
Završava, otkaže ili ponovno čeka SMS.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
id* | integer | ID sjednice, primljen kada je izdan broj. |
status* | integer | 3 – čekati sljedeći kod bez produljenja sjednice; 6 – završiti nakon SMS-a; 8 – odmah otkazati. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=setStatus.
Primjer zahtjeva
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- Povratak čeka sljedeći kod u roku od 20 minuta. izlazak i vremenski uvjeti ne mijenjaju se.
- Otkaz ne uklanja nagrade koje su već zaradili.
- Samo brojevi s SMS kodom čuvaju se u povijesti. otkazani i istekli brojevi bez koda brišu se.
GETgetRepeatNumberPonovno iskoristite isti broj+
Otvorite novu sjednicu s određenim brojem iz povijesti. možete odabrati još jednu dostupnu uslugu u istoj zemlji.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
number* | string | Samo brojevi i opcionalni voditelj + dopušteni su. |
service* | string | Dostupni servisni kodi.Odgovor je ograničen na područje API ključa. |
session_duration | integer | Sesija traje 20 minuta. proći 20 ili propustiti ovaj parametar. |
with_operator | integer | 1 dodaje ID operatera u odgovor; 0 ili izostavljen parametar vraća tri dijela. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getRepeatNumber.
Primjer zahtjeva
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- Prvo, završite ili otkazujte trenutnu sjednicu.Ako je broj zauzet, ponovna izlaska se ne izvodi.
- Nova sjednica dobiva novi ID i trenutni tarif. stari SMS se ne kopira u njega. ref se ponovno postavlja.
- SMScash omogućuje ponavljanje samo brojeva iz povijesti ovog računa.
- Klavir za uklonjenu sjednicu ostaje upotrijebljen: ponovna raspodjela s tim ključem vraća SESSION_CLOSED i ne izda drugi broj.
GETgetSmsFullSMS poruka kao JSON+
Struktura povijest svih poruka s ID, pošiljatelj, kod, tekst i zemlja, usluga i podaci o dobavljaču.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
id* | integer | ID sjednice, primljen kada je izdan broj. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getSmsFull.
Primjer zahtjeva
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 integraciju. zapamtite SMS[].id da biste obrađivali samo nove poruke.
- Numerski status SMScash: 1 - aktivan, 6 - završena, 8 - otkazana ili istekla. status_name razlikuje između čekanja, primanja, završetka, otkazivanja, isteka.
- Primljene šibe ostaje dostupne nakon zatvaranja sesije. Za velike volume, koristite REST /activations/{id}/sms s after_id.
- Nakon broja bez SMS i uklonjen je, getStatus i getSms povratak STATUS_CANCEL; getSmsFull vraća zatvoren status, prazan telefon i prazan sms Na popisu. REST /activations/{id} i /sms povratak 404 NO_ACTIVATION.
GETgetSmsSMS kao tekst string+
Povratak cijele povijesti SMS-a u formatu struka za postojeće klijente.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
id* | integer | ID sjednice, primljen kada je izdan broj. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getSms.
Primjer zahtjeva
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- Format poruke: vrijeme, kod, tekst. Mnoge poruke su odvojene kolonom.
- Sam tekst SMS može sadržavati kolone i vertikalne trake. za pouzdanu parsing, koristite getSmsFull.
GETgetServicesUsluge+
Dostupni servisni kodi.Odgovor je ograničen na područje API ključa.
Direktorat
Izdavaštvo…
| Ime | Službeni kod service |
|---|
Direktorat usluga dijeli se po svim dobavljačima. broj dostupnosti provjerava se odvojeno.
Možete ograničiti ključ na određene usluge, zemlje i pružatelje. prazne popise omogućuju sve dostupne opcije.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
country | integer | Uzmi ID od getCountries. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getServices.
Primjer zahtjeva
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"
}
}- Direktorat usluga dijeli se po svim dobavljačima. broj dostupnosti provjerava se odvojeno.
GETgetCountriesDržave+
ID-ovi, imena i poziva kodovi za zemlje u odabranom kanalu.
Direktorat
Izdavaštvo…
| Ime | ID zemlje country |
|---|
Možete ograničiti ključ na određene usluge, zemlje i pružatelje. prazne popise omogućuju sve dostupne opcije.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getCountries.
Primjer zahtjeva
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"
}
}GETgetOperatorsOperatori+
Dostupni operateri: API ID, naziv i razdoblje zadržavanja naknade.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
country | integer | Uzmi ID od getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getOperators.
Primjer zahtjeva
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+
Cijene ovise o zemlji. sve su tablice iznose po plaćeni SMS.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
country | integer | Uzmi ID od getCountries. |
service | string | Dostupni servisni kodi.Odgovor je ograničen na područje API ključa. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getRewards.
Primjer zahtjeva
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"
}
}
}{}- USD tarifni iznosi vraćaju se kao točni desimalni vijek s 8 desimalnih mjesta:
- Omogućeni pružatelji dostupni su na vašem ključu.
- country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису+
До 10 стран с лучшей доставкой смс кодов за последние 24 часа
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
service* | string | Код сервиса из getServices. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getTopCountriesByService.
Primjer zahtjeva
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 | Direktorat |
|---|---|---|
["12"], ["36"] | ID zemlje Первый, внешний уровень 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 korisnika+
Dodatno SMScash: dostupna bilanca uzimajući u obzir akruale, referralne bonuse i zahtjeve za plaćanje.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getBalance.
Primjer zahtjeva
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 vraća dostupnu USD ravnoteženje na 8 decimalno mjesto.
- Mogu se isplatiti samo sredstva kojima je završilo razdoblje zadržavanja.
GETgetHoldBalanceZadržano+
Nakon primitka SMS poruke, zarada se zadržava tijekom razdoblja koje odredi dobavljač. Na navedeni datum iznos automatski postaje dostupan za isplatu.
Parametri
| Parametri | Tipovi | Opis |
|---|---|---|
api_key* | string | Osobni API ključ korisnika. |
* Potrebni parametri. u svim zahtjevima također prođe akcija=getHoldBalance.
Primjer zahtjeva
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
- Mogu se isplatiti samo sredstva kojima je završilo razdoblje zadržavanja.
Kodovi odgovora i ponavljanje zahtjeva
U handler_api.php poslovni rezultati obično dolazi s HTTP 200. Provjeri tekst tijela. direktorije i getSmsFull Vraćanje JSON ako je uspešno; greške su uvijek tekst.
| Kodovi | HTTP | Uzrok i sljedeći korak |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Stopa još nije postavljenaBroj dodjele počinje nakon što se konfigure SMS nagrade. |
COUNTRY_BLOCKED | 200 | Broj dodjele za ovu zemlju je blokiran.Izaberite drugu zemlju. |
BAD_SERVICE | 200 | Broj dodjele za ovu uslugu je blokiran.Izaberite još jednu uslugu. |
PROVIDER_NOT_READY | 200 | Broj dodjele privremeno nije dostupanOživljajte API kataloge. |
BAD_KEY | 400 | Ne api_key ili nevažeći format.Provjerite ključ u zahtjevu. |
INVALID_API_KEY | 401 | Ključ je nepoznat, otkazan ili račun je isključen.Stvorite valjan API ključ. |
BAD_COUNTRY | 400 | Država je nedostajala ili ne pozitivna brojka.Uzmi ID od getCountries. |
BAD_SESSION_DURATION | 400 | Telefonski brojevi se izdaju za točno 20 minuta.Ispravno session_duration. |
BAD_REQUEST | 400 | Provjerite polja za zahtjev.Molimo ispravite zahtjev. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Nepoznati ili isključeni članak direktora.Oživljajte API kataloge. |
BAD_NUMBER | 200 | Neispravan brojni format.Upišite broj u brojke. |
BAD_ACTION / BAD_STATUS | 200 | Nepoznata zapovijed, ID ili operacija.Provjerite postavke |
EMPTY_POOL | 200 | Trenutno nema odgovarajućih telefonskih brojeva.Ponovite nakon 10-30 sekundi ili promijeniti filtre. |
NUMBER_IN_USE | 200 | Poseban broj je zauzet aktivnom sjednicom.Završite sjednicu ili odaberite još jedan broj. |
NO_ACTIVATION | 200 | Sjednica ili prethodni broj ne pripada vašem računu.Provjerite ID i ključ. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Trenutno je državna tranzicija nedostupna.Provjerite stanje i dostupnost SMS poruka. |
SCOPE_BLOCKED | 200 | Služba, zemlja ili dobavljač nije ovlašten za ključ.Obavijest o opsegu API ključa. |
INTERNAL_ERROR | 500 | Vrijeme je da se provede pogreška servera ili prodavca.Kontakt i podrška · X-Request-ID |
ALLOCATION_PENDING | 200 | ČekanjegetActiveActivations · getStatus |
ALLOCATION_UNCERTAIN | 200 | Rezultati dodjele nisu potvrđeni. automatski povlačenje je onemogućeno kako bi se izbjeglo dodjelu drugog broja.Rezultati dodjele nisu potvrđeni. automatski povlačenje je onemogućeno kako bi se izbjeglo dodjelu drugog broja. |
REST vraća predmet {"error":{"code":"…","message":"…"}} i redoviti HTTP statusi 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "Provjerite polja za zahtjev.",
"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.Ostalo za nove integracije
USD tarifni iznosi vraćaju se kao točni desimalni vijek s 8 desimalnih mjesta: 0.00300000 USD.
Valuta bilance je USD. rasporedi zahtjeva i odgovora dostupni su u OpenAPI.
/api/v1/catalogUsluge i zemlje/api/v1/tariffsSMS nagrada po zemlji/api/v1/offersCijene i nagrade/api/v1/servicesDirektorat/api/v1/countriesDirektorat/api/v1/operatorsDirektorat/api/v1/availability?country=1Broj dostupnosti/api/v1/activationsNova sjednica/api/v1/activations/batch?ids=42,43Provjeri više brojeva/api/v1/activationsPosljednjih 200 sjednica: scope=history, čekanje ili sve/api/v1/activations/{id}Sjednica i poruke/api/v1/activations/{id}/sms?after_id=0&limit=100Novi SMS s kurzorom/api/v1/activations/{id}/retryČekajući SMS/api/v1/activations/{id}/finishZavršetak/api/v1/activations/{id}/cancelotkazivanje/api/v1/activations/repeatBroj povratka/api/v1/keysAPI Ključ/api/v1/keysStvorite ključ/api/v1/keys/{id}Promjena imena ili politike/api/v1/keys/{id}Odbijanje ključa/api/v1/referralsReferentni kod i zarada/api/v1/summaryBalansa i sažetak/api/v1/balanceZadržano/api/v1/ledgerDobitnik Ledger/api/v1/withdrawalsZahtjevi za plaćanje/api/v1/withdrawalsStvorite zahtjev/api/v1/statisticsOpća statistika/api/v1/earnings/holdsZadržavanje zaradePrihvaćanje samo novih SMS poruka
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": "Koda: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}Snimi next_cursor i prodaje ga kao after_id. Ako has_more=true, sljedeća stranica može se odmah pročitati. 1–200. Sesije i SMS Dostupna je samo vlasnika.