API Dokumentų
Numerai, pranešimai ir pajamos, tiesiogiai iš jūsų programos.
Pradėkite nuo vieno prašymo
Sukurkite API raktą savo lentynos, gaukite skaičių ir peržiūrėkite pranešimus kas 20 sekundžių. mokėjimas yra kredituojamas, kai atvyksta SMS su kodu; vėl skaityti nepažeidžia jūsų balanso.
https://smscash.org/api/v1https://smscash.org/stubs/handler_api.phpcurl -X POST 'https://smscash.org/api/v1/activations' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: request-unique-001' \
-d '{"service":"go","country":86}'Alternatyvi suderinama sąsajos adresas: /handler_api.php. esamos REST integracijos ir toliau veikia.
Užklausų kūrimo įrankis
Idempotency-Key: UUID · POST · 8–128
Automatinis pasirinkimas: daugiausia kodų per paskutinę valandą, tada per 24 valandas. Numerių nėra: kitas operatorius.
curl --max-time 15 --fail-with-body -X POST 'https://smscash.org/api/v1/activations' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: request-unique-001' \
--data '{"service":"go","country":86}'package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
payload := []byte("{\"service\":\"go\",\"country\":86}")
req, err := http.NewRequest("POST", "https://smscash.org/api/v1/activations", bytes.NewReader(payload))
if err != nil { panic(err) }
req.Header.Set("Authorization", "Bearer " + os.Getenv("SMSCASH_API_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second, CheckRedirect: func(_ *http.Request, _ []*http.Request) error { return http.ErrUseLastResponse }}
res, err := client.Do(req)
if err != nil { panic(err) } // Keep the same operation key after a network error.
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
if res.StatusCode >= 300 {
fmt.Fprintf(os.Stderr, "HTTP %d, request_id=%s\n%s\n", res.StatusCode, res.Header.Get("X-Request-ID"), body)
os.Exit(1)
}
fmt.Println(string(body))
}// Node.js 18+: set SMSCASH_API_KEY in your environment.
const response = await fetch("https://smscash.org/api/v1/activations", {
method: "POST",
headers: {
Authorization: 'Bearer ' + process.env.SMSCASH_API_KEY,
'Content-Type': 'application/json',
'Idempotency-Key': "request-unique-001",
},
body: JSON.stringify({
"service": "go",
"country": 86
}),
signal: AbortSignal.timeout(15000),
redirect: 'error',
});
const result = await response.json();
if (!response.ok) {
const error = result.error || {};
console.error(response.status, error.code, error.hint, error.request_id);
throw new Error(error.message || 'API error');
}
console.log(result);
// SMS codes are strings: keep leading zeros. Never retry writes automatically.import json
import os
import urllib.error
import urllib.request
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
headers = {
'Authorization': 'Bearer ' + os.environ['SMSCASH_API_KEY'],
'Content-Type': 'application/json',
'Idempotency-Key': "request-unique-001",
}
request = urllib.request.Request(
"https://smscash.org/api/v1/activations",
headers=headers,
data="{\"service\":\"go\",\"country\":86}".encode('utf-8'),
method="POST",
)
try:
with urllib.request.build_opener(NoRedirect).open(request, timeout=15) as response:
result = json.load(response)
print(result)
except urllib.error.HTTPError as error:
details = json.load(error).get('error', {})
print(error.code, details.get('code'), details.get('hint'), details.get('request_id'))
raise
# No automatic retries; SMS codes remain strings.Raktas neišsaugomas. Šis patikrinimas nesuteikia numerių.
Naujų integracijų laukia
Paslaugos ir šalys
Pasirinkite paslaugą ir šalį. mokėjimas SMS priklauso nuo šalies.
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)
Gaukite skaičių
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001
{
"service": "go",
"country": 86
}Automatinis pasirinkimas: daugiausia kodų per paskutinę valandą, tada per 24 valandas. Numerių nėra: kitas operatorius.
201: new session · 200: replay of the same operation
service + country OR offer_id · duration_minutes: 20
ref: software owner code (optional)
operator: public ID (e.g. 1 for Operator 1), optional · any/0: automatic
country: integer · service: string · SMS code: stringŠis skaičius galioja 20 Minutės SMS Kiekvienas tikrinamas 20 Anksčiau galite atšaukti.
Patikrinti kelis numerius
GET /api/v1/activations/batch?ids=42,43
Authorization: Bearer YOUR_API_KEY{
"rows": [
{
"id": 42,
"found": true,
"phone": "12025550123",
"status": "received",
"service": "go",
"country_id": 86,
"provider_id": 1,
"operator": 1,
"expires_at": "2026-10-10T12:15:00Z",
"sms_count": 1,
"code": "001234",
"last_sms": {
"id": 101,
"code": "001234",
"sender": "Service",
"text": "Code: 001234",
"received_at": "2026-10-10T12:01:00Z"
}
},
{
"id": 43,
"found": false,
"error": {
"code": "NO_ACTIVATION",
"message": "Session not found."
}
}
],
"as_of": "2026-10-10T12:01:00Z",
"poll_interval_seconds": 20
}ids: 1–100 positive session IDs, separated by commas
Input order preserved · duplicates removed
Foreign, unavailable or out-of-scope IDs: found=false
Read only · no supplier requests · last_sms is the latest messageLikutis · Sulaikyta
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 — Galima naudoti; held_balance — Sulaikyta. USD · 8
Galima išsiimti tik lėšas, kurių sulaikymo laikotarpis pasibaigė.
Paruošti klientai
import {SmScash, SmScashError} from './smscash.mjs';
import {randomUUID} from 'node:crypto';
const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);
// Save this key before sending; keep it for retries of this operation.
const requestKey = randomUUID();
const session = await api.createNumber({service: 'go', country: 86}, requestKey);
// After 20 seconds:
const messages = await api.sms(session.id, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([session.id]);
const held = await api.holdBalance();
console.log(held); // Exact USD stringimport os
import uuid
from smscash import SmScash, SmScashError
api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])
# Save this key before sending; keep it for retries of this operation.
request_key = str(uuid.uuid4())
session = api.create_number({'service': 'go', 'country': 86}, request_key)
# After 20 seconds:
messages = api.sms(session['id'], after_id=0)
print(messages['sms'])
statuses = api.batch([session['id']])
held = api.hold_balance()
print(held) # Exact USD stringme() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
createNumber(parameters, requestKey) / create_number(parameters, request_key)
setStatus(id, "cancel") / set_status(id, "cancel")
setStatus(id, "retry", requestKey) / set_status(id, "retry", request_key)
Timeout: 15 s · no dependencies · no automatic retries
Error: code · status · hint · requestId/request_id · retryable
ALLOCATION_UNCERTAIN: contact support with request_id; never retry automatically.SMS-Activate / HeroSMS
https://smscash.org/sms-activate/stubs/handler_api.phphttps://smscash.org/hero-sms/stubs/handler_api.phpAsmeninis naudotojo API raktas.
Pasirinkite paslaugą ir šalį. mokėjimas SMS priklauso nuo šalies.
| Kodas | Aprašymas |
|---|---|
getNumber / getNumberV2 | Gaukite skaičių |
getStatus / getStatusV2 | Gaukite naujausią kodą |
setStatus / finishActivation / cancelActivation | Sėkmės vadybos |
getPrices / getNumbersStatus | Peržiūrėkite prieinamumą |
getRewards (SMScash) | Apdovanojimai SMS |
getServicesList / getServices | Paslaugos |
getCountries / getOperators | Paslaugos ir šalys |
getActiveActivations | sesijos |
getBalance | Naudotojo likutis |
getHoldBalance (SMScash) | Sulaikyta |
cost = 0 USD · activationCost = 0 USDreward — Apdovanojimai SMS
curl --get 'https://smscash.org/hero-sms/stubs/handler_api.php' \
--data-urlencode 'api_key=YOUR_API_KEY' \
--data-urlencode 'action=getNumberV2' \
--data-urlencode 'service=go' \
--data-urlencode 'country=86' \
-H 'Idempotency-Key: request-unique-001'{
"activationId": "42",
"phoneNumber": "393331234567",
"activationCost": 0,
"currency": 840,
"countryCode": 86,
"canGetAnotherSms": true,
"activationTime": "2026-10-11T12:00:00Z",
"activationEndTime": "2026-10-11T12:15:00Z",
"reward": "0.00300000"
}GET or POST application/x-www-form-urlencoded
api_key · action · service · country · ref (optional)
setStatus: 1 → ACCESS_READY · 3 → ACCESS_RETRY_GET
6 → ACCESS_ACTIVATION · 8 → ACCESS_CANCEL
getStatus: STATUS_WAIT_CODE · STATUS_OK:001234 · STATUS_CANCEL
getStatusV2: {"verificationType":1,"sms":null,"call":null}
getServicesList: {"status":"success","services":[{"code":"go","name":"Google"}]}
getCountries: {"86":{"id":86,"eng":"Italy","visible":1,"retry":1,"rent":0}}
getPrices: {"86":{"go":{"cost":0,"count":12,"reward":"0.00300000","currency":"USD"}}}
getRewards: {"59":{"vi":{"1":"0.01000000"}}}
getRewards filters: country · service · operator (optional); any/0: all permitted providers
getActiveActivations: start=0 · limit=1–100 · activeActivations / data
Business/key errors: HTTP 200 + plain text · server errors: HTTP 500
Availability: actual supplier pool, shared cache up to 20 s; not a reservation
No automatic retries after a transport error or ALLOCATION_UNCERTAIN.
Keep the original Idempotency-Key and parameters.
Unsupported: rent · calls · forwarding · multiple services per number · prolong
Unsupported options return BAD_REQUEST; unsupported actions return BAD_ACTION.
SMScash keys and country/service codes; configure this base URL in your software.Šis skaičius galioja 20 Minutės SMS Kiekvienas tikrinamas 20 Anksčiau galite atšaukti.
Autentika ir atleidimas
REST: Širdis Authorization: Bearer YOUR_API_KEY. Suderinamas sąsajas: Parametrai api_key ir actionNaudokite HTTPS
Norėdami valdyti API raktus, įveskite savo sąskaitą.
API prašymo dažnis ir telefono numeriai yra neribotos. nėra kasdieninių ar valandinių kvotų.
Šis skaičius galioja 20 Minutės SMS Kiekvienas tikrinamas 20 Anksčiau galite atšaukti.
Iš kitos pusės – unikalus Idempotency-Key numerių skyrimo, pakartotinio skyrimo, atleidimo ir mokėjimo prašymų reikalavimas. tai yra pasirinktinai, bet rekomenduojama handler_api.php. Atsinaujinant tinklų prašymui, klaviatūra naudojama; naudoti naują klaviatūrą naujiems veiksmams.
Pagrindinis API
Galite apriboti raktą konkrečioms paslaugoms, šalims ir teikėjams. tuštieji sąrašai leidžia visus turimus variantus.
{
"label": "Mano programinė įranga",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} Pavadinimas ir politika visiškai keičiasi. paslaptis rodomas tik tada, kai sukurta.
10% bendra. 5% + 5% su programinės įrangos kodu.
Kai išduodate numerį, prašome pateikti ref programinės įrangos savininkas. prašymą patvirtina vykdytojo raktas. kodas yra "Referral" skyriuje ir GET /api/v1/referrals → software_ref.
| Prašymas | Kvietimas | Programinė įranga |
|---|---|---|
| Be ref | 10% | — |
| Su ref | 5% | 5% |
| Su ref, be referer | — | 5% |
Platforma moka premiją, nesumažinant naudotojo pajamų. programinės įrangos savininkas ir referentas gali būti tas pats asmuo.
Terminai nustatomi, kai yra sukurta sesijos; skaityti SMS ir atleidimas nesikeičia. vėl perkelti ref naujo pasikartojimo sesijos. tarifo apskaičiavime naudotojo atlyginimas USD 0.003 suteikia USD 0.00015 kiekvienam programinės įrangos savininkui ir referer. bendras premijos dydis yra USD 0.00030.
API Įsakymai
11 XVBC stiliaus metodai ir jūsų SMScash balansas.
GETgetNumberGaukite skaičių+
Sėkmė sukuriama ir naudotojams išsaugomas numeris. atlyginimo norma ir atsiliepimų gavėjai nustatomi paskirstymo metu; atlyginimas kredituojamas, kai atvyksta SMS su kodu.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
service* | string | Paslaugų kodai. Atsakymas yra ribotas API raktų srityje. |
country* | integer | Paimkite ID iš getCountries. |
operator | string | Paimkite ID iš operators/getOperators (API). operator=1 · any/0 |
session_duration | integer | Sėkmė trunka 20 minučių. praleiskite 20 arba pamirškite šį parametrą. |
with_operator | integer | 1 prideda operatoriaus ID prie atsakymo; 0 arba praleistas parametras grąžina tris dalis. |
ref | string | Viešasis programinės įrangos savininkas: 5% jam ir 5% svečiui. be ref - 10% svečiui. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getNumber.
Pavyzdinis prašymas
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1' \
-H 'Idempotency-Key: request-unique-001'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1", nil)
if err != nil { panic(err) }
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1", {
headers: {"Idempotency-Key": "request-unique-001"}
});
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)Atsakymai
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Automatinis pasirinkimas: daugiausia kodų per paskutinę valandą, tada per 24 valandas. Numerių nėra: kitas operatorius.
- Perėjimas Idempotency-Key: tą pačią prašymą su tą patį raktą grąžina ankstesnį sesiją. Pakeičiant parametrus IDEMPOTENCY_CONFLICT.
- Numerinė šalis be baseino suteikia EMPTY_POOL; neteisinga šalis yra BAD_COUNTRY.
- Ištrintos sesijos raktas išlieka naudojamas: atnaujinant paskirties su tuo raktu grąžinama SESSION_CLOSED ir neatsisako kito numero.
- Automatinis atleidimas neįjungtas, kad būtų išvengta antrojo numero paskirstymo.
GETgetNumbersStatusPeržiūrėkite prieinamumą+
Telefonų numeriai pagal paslaugą ir šalį.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
country* | integer | Paimkite ID iš getCountries. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getNumbersStatus.
Pavyzdinis prašymas
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())Atsakymai
{
"go_0": 0
}- _0 suffix reiškia pasirinkimą be konkrečios operatorius.
- Galimybė reiškia tiekėjo bendrą baseiną. pasirinktas kanalas tikrinamas, kai numeris yra paskirstytas.
GETgetStatusGaukite naujausią kodą+
Lengvas prašymas sesijos būklės ir paskutinio SMS kodo. pirmaujančių nulų kodas išsaugotas.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
id* | integer | Jūsų sesijos ID, gautas, kai buvo išduotas numeris. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getStatus.
Pavyzdinis prašymas
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)Atsakymai
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- Poll kas 20 sekundžių. skaityti pranešimą vėl nesukelia kito mokėjimo.
- Po retry senos kodas nėra grąžintas: getStatus laukia kitą SMS.
- Po skaičiaus be SMS Jis ištrintas, getStatus ir getSms Grįžimas STATUS_CANCEL; getSmsFull grąžina uždarą statusą, tuščią telefoną ir tuščią sms Įrašas . REST /activations/{id} ir /sms Grįžimas 404 NO_ACTIVATION.
GETsetStatusSėkmės vadybos+
Pasibaigia, atšaukia arba atnaujina laukiant SMS. Sesijos pabaiga išlieka ta pati.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
id* | integer | Jūsų sesijos ID, gautas, kai buvo išduotas numeris. |
status* | integer | 3 – laukti kito kodo be pratęsimo sesijos; 6 – baigti po SMS; 8 – nedelsiant atšaukti. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =setStatus.
Pavyzdinis prašymas
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3' \
-H 'Idempotency-Key: request-unique-001'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3", nil)
if err != nil { panic(err) }
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3", {
headers: {"Idempotency-Key": "request-unique-001"}
});
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)Atsakymai
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Grąžinimas laukia kito kodo per 20 minučių. išleidimo ir pabaigos laikas nesikeičia.
- Dėl statuso =3 Naudojimas Idempotency-Key: pakartotinai prašymas nebus atkurti naujas kodas jau gautas. SMS Jis lieka prieinamas.
- Atšaukimas neatmeta jau uždirbtų atlyginimų.
- Istorijoje laikomi tik numeriai su SMS kodu. atšaukti ir pasibaigę numeriai be kodo ištrinami.
GETgetRepeatNumberVėl įdėti tą patį skaičių+
Atidarykite naują sesiją su konkrečiu skaičiumi iš savo istorijos. galite pasirinkti kitą prieinamą paslaugą toje pačioje šalyje.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
number* | string | Tik numerius ir pasirinktas lyderis + leidžiama. |
service* | string | Paslaugų kodai. Atsakymas yra ribotas API raktų srityje. |
session_duration | integer | Sėkmė trunka 20 minučių. praleiskite 20 arba pamirškite šį parametrą. |
with_operator | integer | 1 prideda operatoriaus ID prie atsakymo; 0 arba praleistas parametras grąžina tris dalis. |
ref | string | Viešasis programinės įrangos savininkas: 5% jam ir 5% svečiui. be ref - 10% svečiui. |
operator | string | Paimkite ID iš operators/getOperators (API). operator=1 · any/0 |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getRepeatNumber.
Pavyzdinis prašymas
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go' \
-H 'Idempotency-Key: request-unique-001'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go", nil)
if err != nil { panic(err) }
req.Header.Set("Idempotency-Key", "request-unique-001")
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go", {
headers: {"Idempotency-Key": "request-unique-001"}
});
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)Atsakymai
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Pirma, užbaigti arba atšaukti dabartinę sesiją.Jei skaičius yra užimtas, pakartotinis išleidimas neįvyksta.
- Naujoji sesija gauna naują ID ir dabartinę tarifą. senas SMS nėra kopijuotas į ją. ref yra vėl nustatytas.
- SMScash leidžia kartoti tik skaičius iš šio sąskaitos istorijos. šalis yra nustatyta pagal skaičių.
- Ištrintos sesijos raktas išlieka naudojamas: atnaujinant paskirties su tuo raktu grąžinama SESSION_CLOSED ir neatsisako kito numero.
GETgetSmsFullSMS siunčiama kaip JSON+
Struktūrizuota visų pranešimų istorija su ID, siuntėjo, kodo, teksto ir šalies, paslaugų ir tiekėjo duomenimis.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
id* | integer | Jūsų sesijos ID, gautas, kai buvo išduotas numeris. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getSmsFull.
Pavyzdinis prašymas
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())Atsakymai
{
"success": true,
"session_id": 42,
"phone": "380670000000",
"status": 1,
"status_name": "received",
"sms_count": 1,
"sms": [
{
"id": 101,
"external_id": "message-101",
"sender": "Service",
"code": "001234",
"text": "Код подтверждения: 001234",
"received_at": "2026-10-09T12:00:00Z",
"country": {
"id": 86,
"name": "Italy"
},
"service": {
"code": "go",
"name": "Google"
},
"provider": {
"id": 1,
"name": "Оператор 1"
}
}
],
"expires_at": "2026-10-09T12:20:00Z"
}- Atminkite SMS[].id, kad galėtumėte apdoroti tik naujus pranešimus.
- Numerinis statusas SMScash: 1 - aktyvus, 6 - baigtas, 8 - atšauktas arba baigtas. status_name atskiria laukimą, gautą, baigtą, atšauktas, baigtas.
- Gavę kodai lieka prieinami po sesijos uždarymo. dideliems tūriams naudokite REST /activations/{id}/sms su after_id.
- Po skaičiaus be SMS Jis ištrintas, getStatus ir getSms Grįžimas STATUS_CANCEL; getSmsFull grąžina uždarą statusą, tuščią telefoną ir tuščią sms Įrašas . REST /activations/{id} ir /sms Grįžimas 404 NO_ACTIVATION.
GETgetSmsSMS kaip tekstinio srauto+
Grąžina visą SMS istoriją esamiems klientams sričių formatu.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
id* | integer | Jūsų sesijos ID, gautas, kai buvo išduotas numeris. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getSms.
Pavyzdinis prašymas
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)Atsakymai
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- Žinutės formatas: laikas, kodas, tekstas.Daugelis pranešimų atskiriamas kolonomis.
- Savo tekstą SMS gali būti kolonų ir vertikalių juostų. patikimai parsinguoti, naudokite getSmsFull.
GETgetServicesPaslaugos+
Paslaugų kodai. Atsakymas yra ribotas API raktų srityje.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
country | integer | Paimkite ID iš getCountries. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getServices.
Pavyzdinis prašymas
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())Atsakymai
{
"go": {
"name": "Google",
"code": "go"
}
}- Paslaugų katalogas yra pasidalintas tarp tiekėjo. numerių prieinamumas tikrinamas atskirai.
GETgetCountriesŠalys+
ID, vardai ir skambučių kodai pasirinktoje kanalo šalyse.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getCountries.
Pavyzdinis prašymas
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())Atsakymai
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsOperatorių+
Galimi operatoriai: API ID, pavadinimas ir atlygio sulaikymo laikotarpis.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
country | integer | Paimkite ID iš getCountries. |
operator | string | Paimkite ID iš operators/getOperators (API). operator=1 · any/0 |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getOperators.
Pavyzdinis prašymas
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())Atsakymai
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "Оператор 1",
"earnings_hold_days": 45
}
}- Paimkite ID iš operators/getOperators (API).
GETgetRewardsApdovanojimai SMS+
Kainos priklauso nuo šalies. Visos lentelės sumos yra už mokamą SMS.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
country | integer | Paimkite ID iš getCountries. |
service | string | Paslaugų kodai. Atsakymas yra ribotas API raktų srityje. |
operator | string | Paimkite ID iš operators/getOperators (API). operator=1 · any/0 |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getRewards.
Pavyzdinis prašymas
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())Atsakymai
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- USD tarifų sumos grąžinamos kaip tikslios dešimties juostelės su 8 dešimties vietomis:
- Įgalinti paslaugų teikėjai, prieinami jūsų raktui.
- country ID → service code → operator ID → reward (USD)
GETgetBalanceNaudotojo likutis+
Papildomas SMScash: turimas balansas, atsižvelgiant į akrualus, atskaitos premijas ir mokėjimo prašymus.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getBalance.
Pavyzdinis prašymas
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)Atsakymai
ACCESS_BALANCE:0.00- getBalance grąžina prieinamumą USD balans su mažiau 8 dešimtinė vieta.
- Galima išsiimti tik lėšas, kurių sulaikymo laikotarpis pasibaigė.
GETgetHoldBalanceSulaikyta+
Gavus SMS, pajamos sulaikomos tiekėjo nustatytam laikotarpiui. Nurodytą dieną suma automatiškai tampa prieinama išsiimti.
Parametrai
| parametrų | Tipas | Aprašymas |
|---|---|---|
api_key* | string | Asmeninis naudotojo API raktas. |
* Reikalingas parametras. visose prašymuose taip pat perduodamas veiksmas =getHoldBalance.
Pavyzdinis prašymas
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)Atsakymai
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- Galima išsiimti tik lėšas, kurių sulaikymo laikotarpis pasibaigė.
Atsakymų kodai ir pakartotiniai prašymai
Į handler_api.pp verslo rezultatai paprastai atsiranda su HTTP 200. Patikrinkite kūno tekstą. aplankai ir getSmsFull grąžinamas JSON jei sėkmingai; klaidų yra visada tekstas.
| Kodas | HTTP | Priežastis ir kitas žingsnis |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Palūkanų norma dar nėra nustatytaSkaičius skiriant bus pradėtas, kai SMS atlyginimai yra konfigūruoti. |
COUNTRY_BLOCKED | 200 | Šio šalies numerių paskirstymas yra užblokuotas.Pasirinkite kitą šalį. |
BAD_SERVICE | 200 | Šio paslaugų numeris yra užblokuotas.Pasirinkite kitą paslaugą. |
PROVIDER_NOT_READY | 200 | Numerų paskirstymas laikinai nepateikiamasAtnaujinkite API katalogus. |
BAD_KEY | 400 | Nėra api_key arba negalima formata.Patikrinkite raktą prašyme. |
INVALID_API_KEY | 401 | Atsisiųsti sąskaitą, atšaukti arba sąskaita yra išjungta.Sukurkite galiojantį API raktą. |
BAD_COUNTRY | 400 | Šalis trūksta arba ne teigiamas skaičius.Paimkite ID iš getCountries. |
BAD_SESSION_DURATION | 400 | Telefoniniai numeriai išduodami tiksliai 20 minučių.Tikrinimas session_duration. |
BAD_REQUEST | 400 | Neįgali parametras arba Idempotency-Key.Prašome ištaisyti Jūsų prašymą. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Nežinomas arba neįgali katalogas elementas.Atnaujinkite API katalogus. |
BAD_NUMBER | 200 | Neteisingas skaičius formatas.Įveskite numerį skaitmenimis. |
BAD_ACTION / BAD_STATUS | 200 | Nežinomas komandos, ID ar operacijos.Peržiūrėkite nustatymus. |
EMPTY_POOL | 200 | Šiuo metu nėra jokių atitinkamų telefono numeriai.Pakartokite po 10-30 sekundės arba keisti filtrus. |
NUMBER_IN_USE | 200 | Konkrečiojo skaičiaus užima aktyvus posėdis.Užbaigti sesiją arba pasirinkti kitą numerį. |
NO_ACTIVATION | 200 | Sėkmė ar ankstesnis numeris nepriklauso jūsų sąskaitai.Patikrinkite ID ir raktą. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Valstybės perėjimas šiuo metu nėra prieinamas.Patikrinkite SMS sąlygas ir prieinamumą. |
SCOPE_BLOCKED | 200 | Paslauga, šalis ar pardavėjas nėra leidžiamas raktui.Atnaujinkite API raktų apimtį. |
IDEMPOTENCY_CONFLICT | 200 | Šis užklausos raktas jau yra susijęs su kitais parametrais.Norėdami atlikti naują operaciją, sukurkite kitą Idempotency-Key. |
BAD_REF / SELF_REF | 400 | Programinės įrangos kodas yra nežinomas, neįjungtas arba priklauso naudotojui.Paspauskite programinės įrangos savininkės kodą. |
INTERNAL_ERROR | 500 | Laikinosios serverio arba pardavėjo klaidos.Pakartokite su vėlavimu ir tuo pačiu Idempotency-Key. |
ALLOCATION_PENDING | 200 | Numerų paskirstymas jau yra progresuojantis. grįžti su tuo pačiu Idempotency-Key.Numerų paskirstymas jau yra progresuojantis. grįžti su tuo pačiu Idempotency-Key. |
ALLOCATION_UNCERTAIN | 200 | Automatinis atleidimas neįjungtas, kad būtų išvengta antrojo numero paskirstymo.Automatinis atleidimas neįjungtas, kad būtų išvengta antrojo numero paskirstymo. |
Kitas dalykas grąžina objektą {"error":{"code":"…","message":"…"}} ir reguliarių HTTP statuso 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "Peržiūrėkite prašymo laukus.",
"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.Naujų integracijų laukia
USD tarifų sumos grąžinamos kaip tikslios dešimties juostelės su 8 dešimties vietomis: 0.00300000 USD.
Valiutos balansas yra USD. prašymo ir atsakymo schemos yra prieinamos OpenAPI.
/api/v1/catalogPaslaugos ir šalys/api/v1/tariffsSMS atlyginimo tarifai pagal šalį/api/v1/offersPalūkanos ir apdovanojimai/api/v1/servicesDirektorius/api/v1/countriesDirektorius/api/v1/operatorsDirektorius/api/v1/availability?country=1Numeris prieinamumas/api/v1/activationsNaujoji sesijos/api/v1/activations/batch?ids=42,43Patikrinti kelis numerius/api/v1/activationsPaskutinis 200 sesijų: apimtis = istorija, laukimas ar visi/api/v1/activations/{id}Sesijos ir pranešimai/api/v1/activations/{id}/sms?after_id=0&limit=100Naujas SMS su kurzoru/api/v1/activations/{id}/retryLaukiame SMS/api/v1/activations/{id}/finishUžbaigimas/api/v1/activations/{id}/cancelAtšaukti/api/v1/activations/repeatAtgal numeris/api/v1/keysAPI raktas/api/v1/keysSukurkite raktą/api/v1/keys/{id}Pakeisti vardą ar politiką/api/v1/keys/{id}Atsisakymas raktas/api/v1/referralsReferencinis kodas ir pelnas/api/v1/summaryBalanas ir santrauka/api/v1/balanceSulaikyta/api/v1/ledgerUždirbti Ledger/api/v1/withdrawalsMokėjimo prašymai/api/v1/withdrawalsSukurkite prašymą/api/v1/statisticsBendrosios statistikos/api/v1/earnings/holdsPajamų sulaikymasTik naujų 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": "Kodas: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}Išsaugoti next_cursor ir perduoti jį kaip after_id. Jei has_more=true, kitą puslapį galima nedelsdami skaityti. ribojimas: 1–200. Sesijas ir SMS turi tik savininkui.