API dokümantasyonu
Tek bir istekle başlayın
Panelinizde bir API anahtarı oluşturun, bir sayı alın ve her 10 saniye de bir mesaj kontrol edin. Kodlu bir SMS geldiğinde ödeme işlemi gerçekleşir; bunu tekrar okumanız hesabınızı etkilemez.
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'Alternatif uyumlu arayüz adresi: /handler_api.php. Mevcut REST entegrasyonları çalışmaya devam etmektedir.
İstek oluşturucu
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.Anahtar kaydedilmez. Bu kontrol numara tahsis etmez.
Yeni entegrasyonlar için REST
Hizmetler ve ülkeler
Bir hizmet ve ülke seçin. SMS başına ödeme ülkeye bağlıdır.
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)
Bir numara al
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86Otomatik seçim: uygun sağlayıcılardan rastgele seçim.
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: stringSayı 20 dakika için geçerlidir. SMS her 10 saniyede bir kontrol edilir. Hemen iptal edebilirsiniz.
Birden fazla numarayı kontrol et
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 messageBakiye · Bekletiliyor
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 — Mevcut; held_balance — Bekletiliyor. USD · 8
Yalnızca bekletme süresi sona ermiş tutarlar çekilebilir.
Kullanıma hazır istemciler
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.phpKullanıcının kişisel API anahtarı.
Bir hizmet ve ülke seçin. SMS başına ödeme ülkeye bağlıdır.
| Kod | Açıklama |
|---|---|
getNumber / getNumberV2 | Bir numara al |
getStatus / getStatusV2 | En son kodu alın |
setStatus / finishActivation / cancelActivation | Oturumu yönet |
getPrices / getNumbersStatus | Müsaitliği kontrol et |
getRewards (SMScash) | SMS için ödül |
getServicesList / getServices | Hizmetler |
getCountries / getOperators | Hizmetler ve ülkeler |
getActiveActivations | Oturumlar |
getBalance | Kullanıcı bakiyesi |
getHoldBalance (SMScash) | Bekletiliyor |
cost = 0 USD · activationCost = 0 USDreward — SMS için ödül
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.Sayı 20 dakika için geçerlidir. SMS her 10 saniyede bir kontrol edilir. Hemen iptal edebilirsiniz.
Kimlik doğrulama ve yeniden deneme
REST: başlık Authorization: Bearer YOUR_API_KEY. Uyumlu Arayüz: parametreler api_key ve action. HTTPS'yi kullanın.
API anahtarlarını yönetmek için hesabınıza girin.
İstek sıklığı ve telefon numarası sayısı sınırsızdır. Günlük veya saatlik kota yoktur.
Sayı 20 dakika için geçerlidir. SMS her 10 saniyede bir kontrol edilir. Hemen iptal edebilirsiniz.
API anahtarının kapsamı
Bir anahtarı belirli hizmetlere, ülkelere ve sağlayıcılara bağlayabilirsiniz. Boş listeler mevcut tüm seçeneklere izin verir.
{
"label": "Yazılımım",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} adı ve policy'yi tamamen değiştirir. Sır yalnızca oluşturulduğunda gösterilir.
Toplamda %10. Yazılım koduyla birlikte %5 + %5.
Numara verirken lütfen belirtin ref yazılımın sahibi. İstek, kullanıcının anahtarı tarafından yetkilendirilir. Kod "Yönlendirmeler" bölümünde ve GET /api/v1/referrals → software_ref.
| Talep | Davet eden | Yazılım |
|---|---|---|
| ref olmadan | 10% | — |
| ref ile | 5% | 5% |
| ref ile yönlendiren yok | — | 5% |
Platform, ikramiyeyi kullanıcının kazancını azaltmadan ödüyor. Yazılımın sahibi ve yönlendiren aynı kişi olabilir. Kullanıcı kendi kodunu kullanamaz.
Şartlar bir oturum oluşturulduğunda belirlenir; SMS ve retry okunması bunları değiştirmez. Yeni bir tekrar oturumu için ref'yı tekrar gönderin. Tarife hesaplamasında, USD 0.003 kullanıcı ödülü, yazılım sahibine ve referans sağlayıcıya USD 0.00015 verir. Toplam bonus ise USD 0.00030'dır.
API komutları
11 XVBC tarzı yöntem artı SMScash bakiyeniz.
GETgetNumberBir numara al+
Bir oturum oluşturur ve kullanıcı için uygun bir numara ayırır. Ücret ve referans paylarının alıcıları tahsis sırasında belirlenir; kod içeren bir SMS geldiğinde kazanç bakiyeye eklenir.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
service* | string | Mevcut servis kodları. Cevap API anahtarının alanıyla sınırlıdır. |
country* | integer | getCountries'den ID'yi alın. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
session_duration | integer | Süre 20 dakika sürer. 20 geçiş yapın veya bu parametreyi eklemeyin. |
with_operator | integer | 1 yanıta operatör ID’sini ekler; 0 veya parametrenin atlanması üç bölüm döndürür. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getNumber'yi de iletin.
Örnek istek
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)Yanıtlar
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Otomatik seçim: uygun sağlayıcılardan rastgele seçim.
- Havuzu olmayan sayısal bir ülke EMPTY_POOL'yi verir; yanlış ülke formatı BAD_COUNTRY'dir.
- Silinmiş bir oturumun anahtarı hala kullanılır: o anahtara göre yeniden dağıtım yapıldığında SESSION_CLOSED döner ve başka bir numara verilmez.
- Numara isteğinin sonucu doğrulanmadı. İkinci bir numara verilmemesi için otomatik tekrar kapatıldı.
GETgetNumbersStatusMüsaitliği kontrol et+
Hizmete ve ülkeye göre kullanılabilir telefon numarası sayısı.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
country* | integer | getCountries'den ID'yi alın. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getNumbersStatus'yi de iletin.
Örnek istek
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())Yanıtlar
{
"go_0": 0
}- _0 son eki, belirli bir işleci olmayan bir seçim anlamına gelir.
- Stok, sağlayıcının genel havuzunu gösterir. Seçilen kanalın uygunluğu numara verilirken kontrol edilir.
GETgetStatusEn son kodu alın+
Oturum durumu ve son SMS kodu için kolay talep. Kodun başındaki sıfırlar korunur.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
id* | integer | Numara verildiğinde alınan oturumunuzun ID'si. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getStatus'yi de iletin.
Örnek istek
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)Yanıtlar
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- Her 20 saniye de bir kez anket yapın. Bir mesajı tekrar okumak yeni bir ödeme oluşturmaz.
- retry'den sonra eski kod döndürülmez: getStatus sonraki SMS'yi bekler.
- SMS içermeyen bir sayı silindikten sonra, getStatus ve getSms STATUS_CANCEL’e geri döner; getSmsFull kapalı durum, boş bir telefon ve boş bir SMS listesi durumuna geri döner. REST, /activations/{id} ve /sms 404 NO_ACTIVATION’e geri döner.
GETsetStatusOturumu yönet+
Bitim, iptal veya yeniden başlatma bekleniyor SMS. Sırasının sonu süresi aynı kalıyor.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
id* | integer | Numara verildiğinde alınan oturumunuzun ID'si. |
status* | integer | 3 — oturumu genişletmeden bir sonraki kodı bekleyin; 6 — SMS sonrasında bitirin; 8 — hemen iptal edin. |
* Gerekli parametre. Tüm isteklerde ayrıca action=setStatus'yi de iletin.
Örnek istek
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)Yanıtlar
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Bir sonraki kodun gelmesini bekleyerek 20 dakika süresi içinde tekrar deneyin. Sorun ve süreler değişmez.
- İptal, daha önce kazanılan tutarı silmez.
- Sadece SMS koduna sahip rakamlar tarihte saklanır. Kodu olmayan iptal edilmiş ve süresi dolmuş rakamlar silinir.
GETgetRepeatNumberAynı numarayı tekrar ver+
Geçmişinizden belirli bir numarayla yeni bir oturum açar. Aynı ülkede mevcut olan başka bir hizmeti seçebilirsiniz.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
number* | string | Eski numaran. Yalnızca sayılara ve isteğe bağlı olarak baştaki +'ya izin verilir. |
service* | string | Mevcut servis kodları. Cevap API anahtarının alanıyla sınırlıdır. |
session_duration | integer | Süre 20 dakika sürer. 20 geçiş yapın veya bu parametreyi eklemeyin. |
with_operator | integer | 1 yanıta operatör ID’sini ekler; 0 veya parametrenin atlanması üç bölüm döndürür. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Gerekli parametre. Tüm isteklerde ayrıca action=getRepeatNumber'yi de iletin.
Örnek istek
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)Yanıtlar
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Öncelikle mevcut oturumunuzu sonlandırın veya iptal edin. Numaranın meşgul olması durumunda yeniden düzenleme yapılmaz.
- Yeni oturum yeni bir ID ve mevcut tarifeyi alır. Eski SMS buna kopyalanmaz. ref yeniden ayarlandı.
- SMScash yalnızca bu hesabın geçmişindeki sayıların tekrarlanmasına izin verir. Ülke numarasıyla tanımlanır.
- Silinmiş bir oturumun anahtarı hala kullanılır: o anahtara göre yeniden dağıtım yapıldığında SESSION_CLOSED döner ve başka bir numara verilmez.
GETgetSmsFullSMS'yi JSON olarak alın+
ID, gönderen, kod, metin ve ülke, hizmet ve tedarikçi verilerini içeren tüm mesajların yapılandırılmış geçmişi.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
id* | integer | Numara verildiğinde alınan oturumunuzun ID'si. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getSmsFull'yi de iletin.
Örnek istek
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())Yanıtlar
{
"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"
}- Entegrasyon için tercih edilen format. Yalnızca yeni mesajları işlemek için sms[].id'yi unutmayın.
- Sayısal durum SMScash: 1 - etkin, 6 - tamamlandı, 8 - iptal edildi veya süresi dolmuş. status_name bekleme, alınan, biten, iptal edilen, süresi dolan arasındaki ayrımları yapar.
- Bir oturum sona erdikten sonra alınan kodlar hala kullanılabilir. Büyük miktarlarda, after_id ile REST /activations/{id}/sms kullanın.
- SMS içermeyen bir sayı silindikten sonra, getStatus ve getSms STATUS_CANCEL’e geri döner; getSmsFull kapalı durum, boş bir telefon ve boş bir SMS listesi durumuna geri döner. REST, /activations/{id} ve /sms 404 NO_ACTIVATION’e geri döner.
GETgetSmsSMS'yi metin dizesi olarak alın+
Mevcut istemciler için SMS geçmişinin tamamını dize biçiminde döndürür.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
id* | integer | Numara verildiğinde alınan oturumunuzun ID'si. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getSms'yi de iletin.
Örnek istek
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)Yanıtlar
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- Mesaj formatı: zaman|kod|metin. Birden fazla mesaj iki nokta üst üste işaretiyle ayrılır.
- SMS metninin kendisi iki nokta üst üste ve dikey çubuklar içerebilir. Güvenilir ayrıştırma için getSmsFull kullanın.
GETgetServicesHizmetler+
Mevcut servis kodları. Cevap API anahtarının alanıyla sınırlıdır.
Rehber
Yayınlama…
| İsim | Hizmet kodu service |
|---|
Hizmet dizini tedarikçiler arasında paylaşılır. Sayfa sayısı mevcutluğu ayrı olarak kontrol edilir.
Bir anahtarı belirli hizmetlere, ülkelere ve sağlayıcılara bağlayabilirsiniz. Boş listeler mevcut tüm seçeneklere izin verir.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
country | integer | getCountries'den ID'yi alın. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getServices'yi de iletin.
Örnek istek
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())Yanıtlar
{
"go": {
"name": "Google",
"code": "go"
}
}- Hizmet dizini tedarikçiler arasında paylaşılır. Sayfa sayısı mevcutluğu ayrı olarak kontrol edilir.
GETgetCountriesÜlkeler+
Seçilen kanaldaki ülkelerin kimlikleri, isimleri ve arama kodları.
Rehber
Yayınlama…
| İsim | Ülke ID country |
|---|
Bir anahtarı belirli hizmetlere, ülkelere ve sağlayıcılara bağlayabilirsiniz. Boş listeler mevcut tüm seçeneklere izin verir.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getCountries'yi de iletin.
Örnek istek
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())Yanıtlar
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsOperatörler+
Kullanılabilir operatörler: API kimliği, ad ve ödül bekletme süresi.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
country | integer | getCountries'den ID'yi alın. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Gerekli parametre. Tüm isteklerde ayrıca action=getOperators'yi de iletin.
Örnek istek
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())Yanıtlar
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "operator=1",
"earnings_hold_days": 45
}
}- Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsSMS için ödül+
Oranlar ülkeye bağlıdır. Tüm tablo miktarları ödenen SMS başına verilmiştir.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
country | integer | getCountries'den ID'yi alın. |
service | string | Mevcut servis kodları. Cevap API anahtarının alanıyla sınırlıdır. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Gerekli parametre. Tüm isteklerde ayrıca action=getRewards'yi de iletin.
Örnek istek
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())Yanıtlar
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- USD tarife tutarları 8 ondalık basamakla tam ondalık diziler olarak verilir:
- Anahtarınızın kullanabileceği etkin sağlayıcılar.
- country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису+
До 10 стран с лучшей доставкой смс кодов за последние 24 часа
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
service* | string | Код сервиса из getServices. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getTopCountriesByService'yi de iletin.
Örnek istek
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())Yanıtlar
Структура ответа
| Ключ в примере | Açıklama | Rehber |
|---|---|---|
["12"], ["36"] | Ülke ID Первый, внешний уровень 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 не задаёт места в рейтинге.
GETgetBalanceKullanıcı bakiyesi+
İlave SMScash: tahakkuklar, yönlendirme ikramiyeleri ve ödeme talepleri dikkate alınarak mevcut bakiye.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getBalance'yi de iletin.
Örnek istek
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)Yanıtlar
ACCESS_BALANCE:0.00- getBalance kullanılabilir USD bakiyesini 8 ondalık basamağa kadar döndürür.
- Yalnızca bekletme süresi sona ermiş tutarlar çekilebilir.
GETgetHoldBalanceBekletiliyor+
SMS alındıktan sonra kazanç, sağlayıcının belirlediği süre boyunca bekletilir. Belirtilen tarihte tutar otomatik olarak çekilebilir hâle gelir.
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
api_key* | string | Kullanıcının kişisel API anahtarı. |
* Gerekli parametre. Tüm isteklerde ayrıca action=getHoldBalance'yi de iletin.
Örnek istek
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)Yanıtlar
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- Yalnızca bekletme süresi sona ermiş tutarlar çekilebilir.
Yanıt kodları ve tekrarlanan istekler
handler_api.php'de iş sonuçları genellikle HTTP 200 ile birlikte gelir. Gövde metnini kontrol edin. Dizinler ve getSmsFull, başarılı olursa JSON'yi döndürür; hatalar her zaman metindir.
| Kod | HTTP | Nedeni ve sonraki adım |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Oranlar henüz belirlenmediSMS ödülleri yapılandırıldığında sayı tahsisatı başlayacaktır. |
COUNTRY_BLOCKED | 200 | Bu ülke için sayı tahsisi engellenmiştir.Başka bir ülke seçin. |
BAD_SERVICE | 200 | Bu hizmet için numara tahsisi engellenmiştir.Başka bir hizmet seçin. |
PROVIDER_NOT_READY | 200 | Sayı tahsisi geçici olarak kullanılamıyorAPI kataloglarını yenileyin. |
BAD_KEY | 400 | api_key yok veya geçersiz biçim.İstekteki anahtarı kontrol edin. |
INVALID_API_KEY | 401 | Anahtar bilinmiyor, iptal edilmiş veya hesap devre dışı bırakılmış.Geçerli bir API anahtarı oluşturun. |
BAD_COUNTRY | 400 | ülke eksik veya pozitif bir sayı değil.getCountries'den ID'yi alın. |
BAD_SESSION_DURATION | 400 | Telefon numaraları tam olarak 20 dakika için verilir.Doğru session_duration. |
BAD_REQUEST | 400 | İstek alanlarını kontrol edin.Lütfen isteğinizi düzeltin. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Bilinmeyen veya devre dışı bırakılan dizin öğesi.API kataloglarını yenileyin. |
BAD_NUMBER | 200 | Yanlış sayı biçimi.Sayıyı rakamla verin. |
BAD_ACTION / BAD_STATUS | 200 | Bilinmeyen komut, ID veya işlem.Ayarları kontrol edin. |
EMPTY_POOL | 200 | Şu anda eşleşen telefon numarası yok.10-30 saniye sonra tekrarlayın veya filtreleri değiştirin. |
NUMBER_IN_USE | 200 | Belirli bir sayı aktif bir oturum tarafından kullanılıyor.Oturumunuzu sonlandırın veya başka bir numara seçin. |
NO_ACTIVATION | 200 | Oturum veya önceki numara hesabınıza ait değil.ID'yi ve anahtarı kontrol edin. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Durum geçişi şu anda kullanılamıyor.SMS'nin durumunu ve kullanılabilirliğini kontrol edin. |
SCOPE_BLOCKED | 200 | Hizmet, ülke veya satıcının anahtar için yetkisi yok.API anahtarının kapsamını güncelleyin. |
INTERNAL_ERROR | 500 | Geçici sunucu veya satıcı hatası.İletişim ve destek · X-Request-ID |
ALLOCATION_PENDING | 200 | BekliyorgetActiveActivations · getStatus |
ALLOCATION_UNCERTAIN | 200 | Numara isteğinin sonucu doğrulanmadı. İkinci bir numara verilmemesi için otomatik tekrar kapatıldı.Numara isteğinin sonucu doğrulanmadı. İkinci bir numara verilmemesi için otomatik tekrar kapatıldı. |
REST bir nesne döndürür {"error":{"code":"…","message":"…"}} ve normal HTTP durumları 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "İstek alanlarını kontrol edin.",
"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.Yeni entegrasyonlar için REST
USD tarife tutarları 8 ondalık basamakla tam ondalık diziler olarak verilir: 0.00300000 USD.
Bakiye para birimi USD’dir. İstek ve yanıt şemaları şu belgede yer alır: OpenAPI.
/api/v1/catalogHizmetler ve ülkeler/api/v1/tariffsSMS ülkelere göre ödül oranları/api/v1/offersOranlar ve ödüller/api/v1/servicesRehber/api/v1/countriesRehber/api/v1/operatorsRehber/api/v1/availability?country=1Numara kullanılabilirliği/api/v1/activationsYeni oturum/api/v1/activations/batch?ids=42,43Birden fazla numarayı kontrol et/api/v1/activationsEn yeni 200 oturumları: scope=history, bekleme veya tüm/api/v1/activations/{id}Oturum ve mesajlar/api/v1/activations/{id}/sms?after_id=0&limit=100İmleçli yeni SMS/api/v1/activations/{id}/retrySMS bekleniyor/api/v1/activations/{id}/finishTamamlama/api/v1/activations/{id}/cancelİptal/api/v1/activations/repeatNumaranın yeniden düzenlenmesi/api/v1/keysAPI tuşları/api/v1/keysBir anahtar oluşturun/api/v1/keys/{id}Adı değiştirin veya policy/api/v1/keys/{id}Anahtarı iptal et/api/v1/referralsReferans kodu ve kazançlar/api/v1/summaryBakiye ve Özet/api/v1/balanceBekletiliyor/api/v1/ledgerKazanç defteri/api/v1/withdrawalsÖdeme talepleri/api/v1/withdrawalsBir istek oluştur/api/v1/statisticsGenel istatistikler/api/v1/earnings/holdsBekletilen kazançlarYalnızca yeni SMS alınıyor
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": "Kod: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}next_cursor'yi kaydedin ve after_id olarak aktarın. has_more=true ise sonraki sayfa hemen okunabilir. limit: 1–200. Oturumlar ve SMS yalnızca sahibin kullanımına açıktır.