Dokumentimi i API
Numrat, mesazhet dhe fitimet, drejtpërdrejt nga aplikacioni juaj.
Filloni me një kërkesë
Krijo një çelës API në dashboardin tuaj, merrni një numër dhe kontrolloni mesazhet çdo 20 sekonda.Paguesi kreditohet kur vjen një SMS me një kod; leximi i tij përsëri nuk ndikon në balancën tuaj.
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}'Adresa alternative e ndërfaqes së pajtueshme: /handler_api.php. Integrimet ekzistuese REST vazhdojnë të punojnë.
Ndërtues kërkesash
Idempotency-Key: UUID · POST · 8–128
Zgjedhje automatike: më shumë kode në orën e fundit, pastaj në 24 orë. Pa numra: operatori tjetër.
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.Çelësi nuk ruhet. Ky kontroll nuk cakton numra.
Rreth integrimit të ri
Shërbimet dhe shtetet
Zgjidhni një shërbim dhe vend. Pagesa me SMS varet nga vendi.
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)
Merrni një numër
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001
{
"service": "go",
"country": 86
}Zgjedhje automatike: më shumë kode në orën e fundit, pastaj në 24 orë. Pa numra: operatori tjetër.
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: stringNumri është i vlefshëm për 20 minuta. SMS kontrollohet çdo 20 sekonda. ju mund të anuloni menjëherë.
Kontrollo disa numra
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 messageBilanci · Në pritje
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 — Në dispozicion; held_balance — Në pritje. USD · 8
Mund të tërhiqen vetëm fondet të cilave u ka përfunduar periudha e mbajtjes.
Klientë të gatshëm
import {SmScash, SmScashError} from './smscash.mjs';
import {randomUUID} from 'node:crypto';
const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);
// Save this key before sending; keep it for retries of this operation.
const requestKey = randomUUID();
const session = await api.createNumber({service: 'go', country: 86}, requestKey);
// After 20 seconds:
const messages = await api.sms(session.id, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([session.id]);
const held = await api.holdBalance();
console.log(held); // Exact USD stringimport os
import uuid
from smscash import SmScash, SmScashError
api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])
# Save this key before sending; keep it for retries of this operation.
request_key = str(uuid.uuid4())
session = api.create_number({'service': 'go', 'country': 86}, request_key)
# After 20 seconds:
messages = api.sms(session['id'], after_id=0)
print(messages['sms'])
statuses = api.batch([session['id']])
held = api.hold_balance()
print(held) # Exact USD stringme() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
createNumber(parameters, requestKey) / create_number(parameters, request_key)
setStatus(id, "cancel") / set_status(id, "cancel")
setStatus(id, "retry", requestKey) / set_status(id, "retry", request_key)
Timeout: 15 s · no dependencies · no automatic retries
Error: code · status · hint · requestId/request_id · retryable
ALLOCATION_UNCERTAIN: contact support with request_id; never retry automatically.SMS-Activate / HeroSMS
https://smscash.org/sms-activate/stubs/handler_api.phphttps://smscash.org/hero-sms/stubs/handler_api.phpÇelësi personal API i përdoruesit.
Zgjidhni një shërbim dhe vend. Pagesa me SMS varet nga vendi.
| Kodi i | Përshkrimi |
|---|---|
getNumber / getNumberV2 | Merrni një numër |
getStatus / getStatusV2 | Merrni kodin më të fundit |
setStatus / finishActivation / cancelActivation | Menaxhimi i sesioneve |
getPrices / getNumbersStatus | Kontrolloni disponueshmërinë |
getRewards (SMScash) | Përshkrimi i SMS |
getServicesList / getServices | Shërbimet |
getCountries / getOperators | Shërbimet dhe shtetet |
getActiveActivations | Sesi |
getBalance | Bilanci i përdoruesit |
getHoldBalance (SMScash) | Në pritje |
cost = 0 USD · activationCost = 0 USDreward — Përshkrimi i 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.Numri është i vlefshëm për 20 minuta. SMS kontrollohet çdo 20 sekonda. ju mund të anuloni menjëherë.
Autentifikimi dhe tërheqja
REST: headerë Authorization: Bearer YOUR_API_KEY. Interface të përshtatshme: Parametrat api_key dhe actionPërdorni HTTPS
Për të menaxhuar çelësat e API, hyni në llogarinë tuaj.
Frekuenca e kërkesës API dhe numri i numrave të telefonit janë të pakufizuar. nuk ka tarifa të përditshme ose orare.
Numri është i vlefshëm për 20 minuta. SMS kontrollohet çdo 20 sekonda. ju mund të anuloni menjëherë.
Në të njëjtën kohë, një e veçantë Idempotency-Key është e nevojshme për shpërndarjen e numrave, përsëritjen e shpërndarjes, kërkesat e tërheqjes dhe të pagesës. është opsionale por rekomandohet në handler_api.php. Përdorni përsëri çelësin kur tërheq një kërkesë të rrjetit; përdorni një çelës të ri për një operacion të ri.
API hapësirë
Ju mund të kufizoni një çelës për shërbime të caktuara, vende dhe ofrues. listat e zbrazëta lejojnë të gjitha opsionet e disponueshme.
{
"label": "Softwareja ime",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} Ndryshimi i emrit dhe politikës plotësisht. sekreti shfaqet vetëm kur krijohet.
10% në total. 5% + 5% me kodin e softuerit.
Kur të jepni një numër, ju lutem jepni ref Kërkesa është autorizuar nga çelësi i ekzekutorit. Kodi është në seksionin "Refektet" dhe në GET /api/v1/referrals → software_ref.
| Kërkesa | ftesë | Software |
|---|---|---|
| pa ref | 10% | — |
| Me ref | 5% | 5% |
| Me ref, pa referencë | — | 5% |
Platforma paguan bonusin pa reduktuar të ardhurat e përdoruesit. pronari i softuerit dhe referuesi mund të jenë të njëjta persona. përdoruesi nuk mund të përdorë kodin e tij.
Termat janë të fiksuara kur krijohet një sesion; leximi i SMS dhe tërheqja nuk i ndryshojnë ato. kaloni ref përsëri për një sesion të ri të përsëritur. Në llogaritjen e tarifave, një shpërblim përdorues prej 0.003 USD jep USD 0.00015 secili për pronarin e softuerit dhe referrer. Bonuset totale janë USD 0.00030.
API Komandë
11 Metodat e stilit XVBC plus ekuilibri juaj SMScash.
GETgetNumberMerrni një numër+
Krijoni një seancë dhe rezervoni një numër të disponueshëm për përdoruesin.Rritja e shpërblimit dhe marrësit e referencës janë të fiksuara në shpërblim; shpërblimi kreditohet kur vjen një SMS me kod.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
service* | string | Kodi i shërbimit në dispozicion. përgjigja është e kufizuar në zonën e çelësit API. |
country* | integer | Merr ID nga getCountries. |
operator | string | Merr ID nga operators/getOperators (API). operator=1 · any/0 |
session_duration | integer | Sesioni zgjat 20 minuta. kaloni 20 ose hiqni dorë nga ky parameter. |
with_operator | integer | 1 shton ID-në e operatorit në përgjigje; 0 ose mungesa e parametrit kthen tre pjesë. |
ref | string | Kodi publik i pronarit të softuerit: 5% për të dhe 5% për ftuarin. pa ref - 10% për ftuarin. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getNumber.
Kërkesa e shembullit
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)Përgjigje
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Zgjedhje automatike: më shumë kode në orën e fundit, pastaj në 24 orë. Pa numra: operatori tjetër.
- Pasa Idempotency-Key: njëjta kërkesa me të njëjtën kyç kthehet sesionin e paraardhës. Ndrysho parametrat IDEMPOTENCY_CONFLICT.
- Një vend numëror pa një pishinë jep EMPTY_POOL; formatet e gabuara të vendit janë BAD_COUNTRY.
- Çelësi i një seanca të fshirë mbetet i përdorur: riprodhimi i shpërndarjes me atë çelës kthehet SESSION_CLOSED dhe nuk lëshon një numër tjetër.
- Rezultatet e shpërndarjes nuk janë konfirmuar.Retrimi automatik është i çaktivizuar për të shmangur shpërndarjen e një numri të dytë.
GETgetNumbersStatusKontrolloni disponueshmërinë+
Numrat e telefonit në dispozicion sipas shërbimit dhe vendit.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
country* | integer | Merr ID nga getCountries. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getNumbersStatus.
Kërkesa e shembullit
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())Përgjigje
{
"go_0": 0
}- _0 suffix do të thotë një zgjedhje pa një operator të veçantë.
- Disponueshmëria i referohet pishinës së përgjithshme të furnizuesit. kanali i zgjedhur kontrollohet kur një numër është caktuar.
GETgetStatusMerrni kodin më të fundit+
Kërkesa e lehtë për statusin e sesionit dhe kodin e fundit SMS. Zeroja kryesore në kodin mbahet.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
id* | integer | ID e sesionit tuaj, i marrë kur numri është lëshuar. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getStatus.
Kërkesa e shembullit
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)Përgjigje
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- Poll çdo 20 sekonda. leximi i një mesazhi përsëri nuk krijon një pagesë tjetër.
- Pas retry Kodi i vjetër nuk kthehet: getStatus pritja për tjetër SMS.
- Pas një numri pa SMS është shfuqizuar, getStatus dhe getSms kthim STATUS_CANCEL; getSmsFull kthehet statusin e mbyllur, një telefon të zbrazët dhe një telefon të zbrazët sms Lista e REST /activations/{id} dhe /sms kthim 404 NO_ACTIVATION.
GETsetStatusMenaxhimi i sesioneve+
Përfundon, anulohet ose rishikohet duke pritur për SMS.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
id* | integer | ID e sesionit tuaj, i marrë kur numri është lëshuar. |
status* | integer | 3 - të presin kodin e ardhshëm pa zgjatur seancën; 6 - të përfundojë pas SMS; 8 - të anulojë menjëherë. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=setStatus.
Kërkesa e shembullit
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)Përgjigje
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Kthimi pret kodin e ardhshëm brenda 20 minutave origjinale. data e daljes dhe kohëzgjatja e mbarimit nuk ndryshojnë.
- Për statusin =3 Përdorimi Idempotency-Key: përsëritjen e kërkesës nuk do të rivendosë kodin e ri tashmë të marrë. SMS mbetet në dispozicion.
- Anulimi nuk heq shpërblimet që tashmë janë fituar.
- Numrat me një SMS Numrat e anuluar dhe të mbaruar pa kod fshihen.
GETgetRepeatNumberPërsëri të shtoni të njëjtin numër+
Hap një sesion të ri me një numër të veçantë nga historia juaj. ju mund të zgjidhni një shërbim tjetër në dispozicion në të njëjtin vend.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
number* | string | Numri juaj i vjetër. vetëm numrat dhe një udhëheqës opsional + janë të lejuara. |
service* | string | Kodi i shërbimit në dispozicion. përgjigja është e kufizuar në zonën e çelësit API. |
session_duration | integer | Sesioni zgjat 20 minuta. kaloni 20 ose hiqni dorë nga ky parameter. |
with_operator | integer | 1 shton ID-në e operatorit në përgjigje; 0 ose mungesa e parametrit kthen tre pjesë. |
ref | string | Kodi publik i pronarit të softuerit: 5% për të dhe 5% për ftuarin. pa ref - 10% për ftuarin. |
operator | string | Merr ID nga operators/getOperators (API). operator=1 · any/0 |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getRepeatNumber.
Kërkesa e shembullit
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)Përgjigje
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Së pari, përfundoni ose anuloni seancën tuaj aktuale.Nëse numri është i zënë, nuk kryhet rishpërndarja.
- Sesi i ri merr një ID të ri dhe tarifin aktuale. SMS të vjetër nuk kopjohen në të. ref është vendosur përsëri.
- SMScash lejon përsëritjen e numrave vetëm nga historia e kësaj llogarie.
- Çelësi i një seanca të fshirë mbetet i përdorur: riprodhimi i shpërndarjes me atë çelës kthehet SESSION_CLOSED dhe nuk lëshon një numër tjetër.
GETgetSmsFullMerrni SMS si JSON+
Historia e strukturuar e të gjitha mesazheve me ID, dërgues, kod, tekst dhe vend, shërbim dhe të dhënat e furnizuesit.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
id* | integer | ID e sesionit tuaj, i marrë kur numri është lëshuar. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getSmsFull.
Kërkesa e shembullit
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())Përgjigje
{
"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"
}- Përdorni formatin e preferuar për integrim.Mos harroni SMS[].id për të përpunuar vetëm mesazhe të reja.
- Numerike status SMScash: 1 - aktiv, 6 - përfunduar, 8 - anuluar ose i mbaruar. status_name dallon midis pritjes, pranimit, përfundimit, anuluar, i mbaruar.
- Kodi i marrë mbetet i disponueshëm pas mbylljes së një seanca.Për volume të mëdha, përdorni REST /activations/{id}/sms me after_id.
- Pas një numri pa SMS është shfuqizuar, getStatus dhe getSms kthim STATUS_CANCEL; getSmsFull kthehet statusin e mbyllur, një telefon të zbrazët dhe një telefon të zbrazët sms Lista e REST /activations/{id} dhe /sms kthim 404 NO_ACTIVATION.
GETgetSmsMerrni SMS si një rresht tekst+
Kthimi i tërë historisë së SMS në format string për klientët ekzistues.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
id* | integer | ID e sesionit tuaj, i marrë kur numri është lëshuar. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getSms.
Kërkesa e shembullit
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)Përgjigje
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- Format mesazhi: koha e kodit të tekstit. mesazhet e shumta janë të ndara nga një kolonë.
- SMS vetë mund të përmbajë kolonat dhe rreshta vertikale. për parsing të besueshme, përdorni getSmsFull.
GETgetServicesShërbimet+
Kodi i shërbimit në dispozicion. përgjigja është e kufizuar në zonën e çelësit API.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
country | integer | Merr ID nga getCountries. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getServices.
Kërkesa e shembullit
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())Përgjigje
{
"go": {
"name": "Google",
"code": "go"
}
}- Direktori i shërbimit është i ndarë në të gjithë furnizuesit. numri i disponueshmërisë verifikohet veçmas.
GETgetCountriesShtetet+
ID, emrat dhe kodet e thirrjes për vendet në kanalin e zgjedhur.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getCountries.
Kërkesa e shembullit
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())Përgjigje
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsOperatorët+
Operatorët e disponueshëm: ID e API-së, emri dhe periudha e mbajtjes së shpërblimit.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
country | integer | Merr ID nga getCountries. |
operator | string | Merr ID nga operators/getOperators (API). operator=1 · any/0 |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getOperators.
Kërkesa e shembullit
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())Përgjigje
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "Оператор 1",
"earnings_hold_days": 45
}
}- Merr ID nga operators/getOperators (API).
GETgetRewardsPërshkrimi i SMS+
Çmimet varet nga vendi. të gjitha shuma e tabelës janë për SMS të paguar.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
country | integer | Merr ID nga getCountries. |
service | string | Kodi i shërbimit në dispozicion. përgjigja është e kufizuar në zonën e çelësit API. |
operator | string | Merr ID nga operators/getOperators (API). operator=1 · any/0 |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getRewards.
Kërkesa e shembullit
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())Përgjigje
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- Shuma tarife USD kthehet si rreshta të sakta dekimale me 8 vende dekimale:
- Shërbimet e lejuara në dispozicion për çelësin tuaj.
- country ID → service code → operator ID → reward (USD)
GETgetBalanceBilanci i përdoruesit+
Shtojcë SMScash: balanca e disponueshme duke marrë parasysh shpenzimet, bonuset e referencës dhe kërkesat e pagesës.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getBalance.
Kërkesa e shembullit
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)Përgjigje
ACCESS_BALANCE:0.00- getBalance kthehet në dispozicion USD balans me tek 8 vendet dhjetësore.
- Mund të tërhiqen vetëm fondet të cilave u ka përfunduar periudha e mbajtjes.
GETgetHoldBalanceNë pritje+
Pas marrjes së SMS, të ardhurat mbahen për periudhën e përcaktuar nga furnizuesi. Në datën e caktuar, shuma bëhet automatikisht e disponueshme për tërheqje.
Parametrat
| Parametrat | Lloji i | Përshkrimi |
|---|---|---|
api_key* | string | Çelësi personal API i përdoruesit. |
* Parametri i kërkuar. në të gjitha kërkesat gjithashtu kalon veprimin=getHoldBalance.
Kërkesa e shembullit
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)Përgjigje
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- Mund të tërhiqen vetëm fondet të cilave u ka përfunduar periudha e mbajtjes.
Kodi i përgjigjes dhe kërkesa të përsëritura
Nën handler_apiRezultatet e biznesit .php janë zakonisht me HTTP 200. Kontrollo tekstin e trupit. directorys dhe getSmsFull Kthehu JSON nëse të suksesshme; gabimet janë gjithmonë teksti.
| Kodi i | HTTP | Arsyeja dhe hapi i ardhshëm |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Tarifat nuk janë vendosur endeNumri i shpërndarjes do të fillojë pasi shpërblimet SMS janë konfiguruar. |
COUNTRY_BLOCKED | 200 | Numri i shpërndarjes për këtë vend është bllokuar.Zgjidhni një vend tjetër. |
BAD_SERVICE | 200 | Numri i shpërndarjes për këtë shërbim është bllokuar.Zgjidhni një shërbim tjetër. |
PROVIDER_NOT_READY | 200 | Numri i shpërndarjes është i papërshtatshëm përkohësishtPërmirësoni katalogun e API. |
BAD_KEY | 400 | Jo api_key ose formati i pavlefshëm.Kontrolloni çelësin në kërkesë. |
INVALID_API_KEY | 401 | Çelësi është i panjohur, i anuluar ose llogaria është e çaktivizuar.Krijo një çelës i vlefshëm API. |
BAD_COUNTRY | 400 | Po, në këtë vend mungon apo nuk ka një numër pozitiv.Merr ID nga getCountries. |
BAD_SESSION_DURATION | 400 | Numrat e telefonit janë dhënë për pikërisht 20 minuta.Korrekto session_duration. |
BAD_REQUEST | 400 | Parametri i pavlefshëm apo Idempotency-Key.Ju lutem korrigjoni kërkesën tuaj. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Të panjohur ose të çaktivizuar të adresës.Përmirësoni katalogun e API. |
BAD_NUMBER | 200 | Formati i gabuar i numrave.Shkruani numrin në numra. |
BAD_ACTION / BAD_STATUS | 200 | Një komandë e panjohur, ID ose operacion.Kontrolloni cilësimet |
EMPTY_POOL | 200 | Nuk ka numra të përshtatshëm të telefonit në dispozicion për momentin.Përsëriteni pas 10-30 Disa sekonda ose ndryshimi i filtrit. |
NUMBER_IN_USE | 200 | Një numër i veçantë është i zënë nga një seancë aktive.Mbyllni sesionin ose zgjidhni një numër tjetër. |
NO_ACTIVATION | 200 | Sesi ose numri i mëparshëm nuk i përket llogarisë suaj.Kontrolloni ID dhe çelësat. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Transformacioni shtetëror nuk është në dispozicion.Kontrolloni kushtet dhe disponueshmërinë e SMS. |
SCOPE_BLOCKED | 200 | Shërbimi, vendi ose ofruesi nuk është i autorizuar për çelësin.Përditësoni hapësirën e çelësit të API. |
IDEMPOTENCY_CONFLICT | 200 | Ky çelës i pyetjes tashmë është i lidhur me parametrat e tjerë.Për një operacion të ri, krijo një tjetër Idempotency-Key. |
BAD_REF / SELF_REF | 400 | Kodi i softuerit është i panjohur, i çaktivizuar ose i përket vetë përdoruesit.Shkruani kodin e pronarit të softuerit. |
INTERNAL_ERROR | 500 | gabim të serverit të përkohshëm ose të shitësit.Përsërit me një vonë dhe të njëjtën Idempotency-Key. |
ALLOCATION_PENDING | 200 | Përsëritje me të njëjtën Idempotency-Key.Përsëritje me të njëjtën Idempotency-Key. |
ALLOCATION_UNCERTAIN | 200 | Rezultatet e shpërndarjes nuk janë konfirmuar.Retrimi automatik është i çaktivizuar për të shmangur shpërndarjen e një numri të dytë.Rezultatet e shpërndarjes nuk janë konfirmuar.Retrimi automatik është i çaktivizuar për të shmangur shpërndarjen e një numri të dytë. |
Resto kthehet një objekt {"error":{"code":"…","message":"…"}} dhe statuset e rregullta të HTTP 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "Kontrolloni fushën e kërkesës.",
"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.Rreth integrimit të ri
Shuma tarife USD kthehet si rreshta të sakta dekimale me 8 vende dekimale: 0.00300000 USD.
Valuta e balancës është USD. Kërkesa dhe përgjigje sheme janë në dispozicion në OpenAPI.
/api/v1/catalogShërbimet dhe shtetet/api/v1/tariffsSMS shpërblim tarifa sipas vendit/api/v1/offersTarifat dhe shpërblimet/api/v1/servicesDrejtorë/api/v1/countriesDrejtorë/api/v1/operatorsDrejtorë/api/v1/availability?country=1Numri i disponueshmërisë/api/v1/activationsSesi i ri/api/v1/activations/batch?ids=42,43Kontrollo disa numra/api/v1/activations200 sesione të fundit: scope=history, waiting or all/api/v1/activations/{id}Sesi dhe mesazhet/api/v1/activations/{id}/sms?after_id=0&limit=100SMS me kursor të ri/api/v1/activations/{id}/retryDuhet të presim SMS/api/v1/activations/{id}/finishPërfundimi/api/v1/activations/{id}/cancelAnulimi/api/v1/activations/repeatNumri i kthimit/api/v1/keysAPI çelësat/api/v1/keysKrijo një çelës/api/v1/keys/{id}Ndryshimi i emrit ose politikës/api/v1/keys/{id}Kërkesa e kthimit/api/v1/referralsKodi referencë dhe fitimet/api/v1/summaryBalanca dhe përmbledhja/api/v1/balanceNë pritje/api/v1/ledgerFitues i të ardhurave/api/v1/withdrawalsKërkesat e pagesës/api/v1/withdrawalsKrijo një kërkesë/api/v1/statisticsTë gjitha statistikat/api/v1/earnings/holdsMbajtja e të ardhuraveDërgo vetëm SMS të reja
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": "Kodi i 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}Ruaj next_cursor Dhe e kaloni atë si after_id. Po has_more=true, faqja tjetër mund të lexohet menjëherë. kufizohet: 1–200. Seanca dhe SMS janë në dispozicion vetëm pronari.