API-Dokumentation
Zahlen, Nachrichten und Einnahmen direkt aus Ihrer App.
Beginnen Sie mit einer Anfrage
Erstelle eine API-Schlüssel in deinem Dashboard, erhalte eine Zahl und überprüfe die Nachrichten alle 20 Sekunden. Der Zahlungsvorgang wird abgewickelt, sobald ein SMS mit einem Code eintrifft; das Wiederlesen dieses Codes hat keinen Einfluss auf dein Guthaben.
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}'Alternative kompatible Schnittstellenadresse: /handler_api.php. Bestehende REST-Integrationen funktionieren weiterhin.
Anfragen erstellen
Idempotency-Key: UUID · POST · 8–128
Automatische Auswahl: die meisten Codes in der letzten Stunde, dann in 24 Stunden. Keine Nummern: nächster Betreiber.
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.Der Schlüssel wird nicht gespeichert. Diese Prüfung vergibt keine Nummern.
REST für neue Integrationen
Dienste und Länder
Wähle einen Dienst und ein Land. Die Vergütung pro SMS hängt vom Land ab.
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)
Holen Sie sich eine Nummer
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001
{
"service": "go",
"country": 86
}Automatische Auswahl: die meisten Codes in der letzten Stunde, dann in 24 Stunden. Keine Nummern: nächster Betreiber.
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: stringDie Telefonnummer ist 20 Minuten gültig. SMS werden alle 20 Sekunden geprüft. Die Sitzung kann sofort abgebrochen werden.
Mehrere Nummern prüfen
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 messageGuthaben · Gesperrt
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 — Verfügbar; held_balance — Gesperrt. USD · 8
Nur Beträge mit abgelaufener Sperrfrist können ausgezahlt werden.
Einsatzbereite Clients
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.phpDer persönliche API-Schlüssel des Benutzers.
Wähle einen Dienst und ein Land. Die Vergütung pro SMS hängt vom Land ab.
| Code | Beschreibung |
|---|---|
getNumber / getNumberV2 | Holen Sie sich eine Nummer |
getStatus / getStatusV2 | Holen Sie sich den neuesten Code |
setStatus / finishActivation / cancelActivation | Sitzung verwalten |
getPrices / getNumbersStatus | Verfügbarkeit prüfen |
getRewards (SMScash) | Belohnung für SMS |
getServicesList / getServices | Dienstleistungen |
getCountries / getOperators | Dienste und Länder |
getActiveActivations | Sitzungen |
getBalance | Benutzerguthaben |
getHoldBalance (SMScash) | Gesperrt |
cost = 0 USD · activationCost = 0 USDreward — Belohnung für 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.Die Telefonnummer ist 20 Minuten gültig. SMS werden alle 20 Sekunden geprüft. Die Sitzung kann sofort abgebrochen werden.
Authentifizierung und Wiederholungen
REST: Kopfzeile Authorization: Bearer YOUR_API_KEY. Kompatible Schnittstelle: Parameter api_key und action. Verwenden Sie HTTPS.
Um API-Schlüssel zu verwalten, geben Sie Ihr Konto ein.
Die Häufigkeit der API-Anfragen und die Anzahl der Telefonnummern sind unbegrenzt. Es gibt keine Tages- oder Stundenkontingente.
Die Telefonnummer ist 20 Minuten gültig. SMS werden alle 20 Sekunden geprüft. Die Sitzung kann sofort abgebrochen werden.
In REST ein Unikat Idempotency-Key wird für Rufnummernvergabe, Wiederholungsvergabe, retry und Auszahlungsanfragen benötigt. Es ist optional, wird aber in handler_api.php empfohlen. Verwenden Sie den Schlüssel erneut, wenn Sie eine Netzwerkanfrage erneut versuchen. Verwenden Sie einen neuen Schlüssel für eine neue Operation.
Geltungsbereich des API-Schlüssels
Ein Schlüssel kann auf bestimmte Dienste, Länder und Anbieter beschränkt werden. Leere Listen erlauben alle verfügbaren Optionen.
{
"label": "Meine Software",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} ändert den Namen und policy vollständig. Das Geheimnis wird erst beim Erstellen angezeigt.
Insgesamt 10 %. 5 % + 5 % mit Softwarecode.
Bei der Nummernvergabe bitte angeben ref Eigentümer der Software. Die Anfrage wird durch den Schlüssel des Benutzers autorisiert. Der Code befindet sich im Abschnitt „Empfehlungen“ und in GET /api/v1/referrals → software_ref.
| Anfrage | Werber | Software |
|---|---|---|
| Ohne ref | 10% | — |
| Mit ref | 5% | 5% |
| Bei ref kein Referrer | — | 5% |
Die Plattform zahlt den Bonus aus, ohne den Verdienst des Benutzers zu mindern. Der Softwarebesitzer und der Empfehlungsgeber können dieselbe Person sein. Ein Benutzer kann seinen eigenen Code nicht verwenden.
Die Bedingungen werden bei der Erstellung einer Sitzung festgelegt; das Lesen von SMS und retry ändern sie nicht. Pass ref erneut für eine neue wiederholte Sitzung. Bei der Tarifberechnung ergibt sich ein Benutzervergütung von USD 0.003, der USD 0.00015 pro Stück dem Softwarebesitzer und Referenznehmer zugutekommt. Die Gesamtbónus beträgt USD 0.00030.
API-Befehle
11 Methoden im XVBC-Stil plus Ihr SMScash-Guthaben.
GETgetNumberHolen Sie sich eine Nummer+
Erstellt eine Sitzung und reserviert eine verfügbare Nummer für den Nutzer. Der Vergütungssatz und die Empfänger der Empfehlungsboni werden bei der Zuteilung festgelegt; die Vergütung wird beim Empfang einer SMS mit Code gutgeschrieben.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
service* | string | Verfügbare Servicecodes. Die Antwort beschränkt sich auf den Bereich der API-Taste. |
country* | integer | Nehmen Sie ID von getCountries. |
operator | string | Nehmen Sie ID von operators/getOperators (API). operator=1 · any/0 |
session_duration | integer | Die Sitzung dauert 20 Minuten. Gehen Sie durch 20 oder vergessen Sie diesen Parameter. |
with_operator | integer | 1 fügt der Antwort die Operator-ID hinzu; 0 oder Weglassen liefert drei Abschnitte. |
ref | string | Öffentlicher Code des Softwarebesitzers: 5 % für ihn und 5 % für den Einladenden. Ohne ref - 10 % an den Einladenden. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getNumber.
Beispielanfrage
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)Antworten
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Automatische Auswahl: die meisten Codes in der letzten Stunde, dann in 24 Stunden. Keine Nummern: nächster Betreiber.
- Übergeben Sie Idempotency-Key: Dieselbe Anforderung mit demselben Schlüssel gibt die vorherige Sitzung zurück. Das Ändern der Parameter ruft IDEMPOTENCY_CONFLICT auf.
- Ein numerisches Land ohne Pool ergibt EMPTY_POOL; Das falsche Länderformat ist BAD_COUNTRY.
- Die Schlüssel für eine gelöschte Sitzung bleiben weiterhin in Gebrauch: die Wiederholung der Zuweisung mit diesem Schlüssel liefert SESSION_CLOSED und gibt keine weitere Zahl aus.
- Das Ergebnis der Nummernvergabe ist unbestätigt. Automatische Wiederholung ist deaktiviert, damit keine zweite Nummer vergeben wird.
GETgetNumbersStatusVerfügbarkeit prüfen+
Verfügbare Telefonnummern nach Dienst und Land.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
country* | integer | Nehmen Sie ID von getCountries. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getNumbersStatus.
Beispielanfrage
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())Antworten
{
"go_0": 0
}- Das Suffix _0 bedeutet eine Auswahl ohne einen bestimmten Operator.
- Die Verfügbarkeit bezieht sich auf den gesamten Nummernpool des Anbieters. Der gewählte Kanal wird bei der Nummernvergabe geprüft.
GETgetStatusHolen Sie sich den neuesten Code+
Einfache Abfrage des Sitzungsstatus und des letzten SMS-Codes. Führende Nullen im Code bleiben erhalten.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
id* | integer | ID Ihrer Sitzung, erhalten bei der Nummernvergabe. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getStatus.
Beispielanfrage
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)Antworten
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- Ab alle 20 Sekunden abfragen. Das Wiederlesen einer Nachricht führt nicht zu einer weiteren Zahlung.
- Nach retry wird der alte Code nicht zurückgegeben: getStatus wartet auf den nächsten SMS.
- Nachdem eine Zahl ohne SMS gelöscht wurde, kehren getStatus und getSms zu STATUS_CANCEL zurück; getSmsFull gibt den geschlossenen Zustand, ein leeres Telefon und eine leere SMS-Liste an. REST /activations/{id} und /sms kehren 404 NO_ACTIVATION zurück.
GETsetStatusSitzung verwalten+
Fertigstellung, Absage oder Wiederaufnahme – Wartezeit für SMS. Die Laufzeit der Sitzung bleibt unverändert.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
id* | integer | ID Ihrer Sitzung, erhalten bei der Nummernvergabe. |
status* | integer | 3 – Warte auf den nächsten Code, ohne die Sitzung zu verlängern; 6 – beende das Ganze nach SMS; 8 – storniere sofort. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=setStatus.
Beispielanfrage
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)Antworten
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Wiederholen – Warte auf den nächsten Code innerhalb der ursprünglichen 20 Minuten. Die Probleme und Ablaufzeiten ändern sich nicht.
- Für Status=3 verwenden Sie Idempotency-Key: Durch die Wiederholung der Anfrage wird der bereits empfangene neue Code nicht zurückgesetzt. Die Historie von SMS bleibt verfügbar.
- Eine Stornierung zieht bereits verdiente Vergütungen nicht ab.
- Nur Zahlen mit einem SMS-Code werden in der Historie aufbewahrt. Geschaffene und abgelaufene Zahlen ohne Code werden gelöscht.
GETgetRepeatNumberGeben Sie die gleiche Nummer erneut aus+
Öffnet eine neue Sitzung mit einer bestimmten Nummer aus Ihrem Verlauf. Sie können einen anderen verfügbaren Dienst im selben Land auswählen.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
number* | string | Ihre alte Nummer. Es sind nur Zahlen und ein optionales führendes + zulässig. |
service* | string | Verfügbare Servicecodes. Die Antwort beschränkt sich auf den Bereich der API-Taste. |
session_duration | integer | Die Sitzung dauert 20 Minuten. Gehen Sie durch 20 oder vergessen Sie diesen Parameter. |
with_operator | integer | 1 fügt der Antwort die Operator-ID hinzu; 0 oder Weglassen liefert drei Abschnitte. |
ref | string | Öffentlicher Code des Softwarebesitzers: 5 % für ihn und 5 % für den Einladenden. Ohne ref - 10 % an den Einladenden. |
operator | string | Nehmen Sie ID von operators/getOperators (API). operator=1 · any/0 |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getRepeatNumber.
Beispielanfrage
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)Antworten
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Beenden oder brechen Sie zunächst Ihre aktuelle Sitzung ab. Wenn die Nummer besetzt ist, wird keine Neuzuteilung durchgeführt.
- Die neue Sitzung erhält einen neuen ID und den aktuellen Tarif. Alte SMS werden nicht hineinkopiert. ref wird wieder gesetzt.
- Mit SMScash können nur Nummern aus dem Verlauf dieses Kontos wiederholt werden. Das Land wird durch eine Nummer identifiziert.
- Die Schlüssel für eine gelöschte Sitzung bleiben weiterhin in Gebrauch: die Wiederholung der Zuweisung mit diesem Schlüssel liefert SESSION_CLOSED und gibt keine weitere Zahl aus.
GETgetSmsFullHolen Sie sich SMS als JSON+
Strukturierte Historie aller Nachrichten mit ID, Absender, Code, Text und Land, Service- und Lieferantendaten.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
id* | integer | ID Ihrer Sitzung, erhalten bei der Nummernvergabe. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getSmsFull.
Beispielanfrage
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())Antworten
{
"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"
}- Bevorzugtes Format für die Integration. Denken Sie daran, dass sms[].id nur neue Nachrichten verarbeitet.
- Numerischer Status SMScash: 1 – aktiv, 6 – abgeschlossen, 8 – abgebrochen oder abgelaufen. status_name unterscheidet zwischen wartend, empfangen, beendet, abgebrochen und abgelaufen.
- Die erhaltenen Codes sind nach dem Beenden einer Sitzung noch verfügbar. Für große Mengen verwenden Sie REST /activations/{id}/sms mit after_id.
- Nachdem eine Zahl ohne SMS gelöscht wurde, kehren getStatus und getSms zu STATUS_CANCEL zurück; getSmsFull gibt den geschlossenen Zustand, ein leeres Telefon und eine leere SMS-Liste an. REST /activations/{id} und /sms kehren 404 NO_ACTIVATION zurück.
GETgetSmsHolen Sie sich SMS als Textzeichenfolge+
Gibt den gesamten SMS-Verlauf im String-Format für vorhandene Clients zurück.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
id* | integer | ID Ihrer Sitzung, erhalten bei der Nummernvergabe. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getSms.
Beispielanfrage
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)Antworten
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- Nachrichtenformat: Zeit|Code|Text. Mehrere Nachrichten werden durch einen Doppelpunkt getrennt.
- Der Text SMS selbst kann Doppelpunkte und vertikale Balken enthalten. Für eine zuverlässige Analyse verwenden Sie getSmsFull.
GETgetServicesDienstleistungen+
Verfügbare Servicecodes. Die Antwort beschränkt sich auf den Bereich der API-Taste.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
country | integer | Nehmen Sie ID von getCountries. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getServices.
Beispielanfrage
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())Antworten
{
"go": {
"name": "Google",
"code": "go"
}
}- Der Dienstverzeichnis ist bei dem Anbieter gemeinsam genutzt. Die Verfügbarkeit der Nummern wird separat überprüft.
GETgetCountriesLänder+
Identifikatoren, Namen und Anrufnummern für die Länder im ausgewählten Kanal.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getCountries.
Beispielanfrage
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())Antworten
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsBetreiber+
Verfügbare Betreiber: API-ID, Name und Sperrfrist der Vergütung.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
country | integer | Nehmen Sie ID von getCountries. |
operator | string | Nehmen Sie ID von operators/getOperators (API). operator=1 · any/0 |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getOperators.
Beispielanfrage
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())Antworten
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "Оператор 1",
"earnings_hold_days": 45
}
}- Nehmen Sie ID von operators/getOperators (API).
GETgetRewardsBelohnung für SMS+
Die Preise hängen vom Land ab. Alle Beträge in der Tabelle sind pro bezahlten SMS.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
country | integer | Nehmen Sie ID von getCountries. |
service | string | Verfügbare Servicecodes. Die Antwort beschränkt sich auf den Bereich der API-Taste. |
operator | string | Nehmen Sie ID von operators/getOperators (API). operator=1 · any/0 |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getRewards.
Beispielanfrage
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())Antworten
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- USD Die Tarifbeträge werden als exakte Dezimalzahlen mit 8 Dezimalstellen zurückgegeben:
- Aktivierte Anbieter, die für Ihren Schlüssel verfügbar sind.
- country ID → service code → operator ID → reward (USD)
GETgetBalanceBenutzerguthaben+
Zusatz SMScash: verfügbarer Saldo unter Berücksichtigung von Rückstellungen, Empfehlungsboni und Zahlungsaufforderungen.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getBalance.
Beispielanfrage
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)Antworten
ACCESS_BALANCE:0.00- getBalance liefert das verfügbare USD-Guthaben mit bis zu 8 Nachkommastellen.
- Nur Beträge mit abgelaufener Sperrfrist können ausgezahlt werden.
GETgetHoldBalanceGesperrt+
Nach Eingang einer SMS werden die Einnahmen für die vom Anbieter festgelegte Dauer gesperrt. Am angegebenen Datum wird der Betrag automatisch zur Auszahlung verfügbar.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
api_key* | string | Der persönliche API-Schlüssel des Benutzers. |
* Erforderlicher Parameter. Übergeben Sie in allen Anfragen auch action=getHoldBalance.
Beispielanfrage
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)Antworten
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- Nur Beträge mit abgelaufener Sperrfrist können ausgezahlt werden.
Antwortcodes und Wiederholungsanfragen
In handler_api.php werden Geschäftsergebnisse normalerweise mit HTTP 200 angegeben. Überprüfen Sie den Textkörper. Verzeichnisse und getSmsFull geben bei Erfolg JSON zurück; Fehler sind immer Text.
| Code | HTTP | Ursache und nächster Schritt |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Die Preise sind noch nicht festgelegtDie Nummerzuweisung beginnt, sobald die SMS-Belohnungen konfiguriert sind. |
COUNTRY_BLOCKED | 200 | Die Zuteilung der Nummern für dieses Land ist blockiert.Wählen Sie ein anderes Land. |
BAD_SERVICE | 200 | Die Nummernvergabe für diesen Dienst ist gesperrt.Wählen Sie einen anderen Dienst. |
PROVIDER_NOT_READY | 200 | Die Zuweisung der Nummern ist vorübergehend nicht verfügbarAktualisieren Sie die API-Kataloge. |
BAD_KEY | 400 | Kein api_key oder ungültiges Format.Überprüfen Sie den Schlüssel in der Anfrage. |
INVALID_API_KEY | 401 | Der Schlüssel ist unbekannt, widerrufen oder das Konto ist deaktiviert.Erstellen Sie einen gültigen API-Schlüssel. |
BAD_COUNTRY | 400 | Land fehlt oder ist keine positive Zahl.Nehmen Sie ID von getCountries. |
BAD_SESSION_DURATION | 400 | Telefonnummern werden für exakt 20 Minuten vergeben.Richtig session_duration. |
BAD_REQUEST | 400 | Ungültiger Parameter oder Idempotency-Key.Bitte korrigieren Sie Ihre Anfrage. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Unbekanntes oder deaktiviertes Verzeichniselement.Aktualisieren Sie die API-Kataloge. |
BAD_NUMBER | 200 | Falsches Zahlenformat.Geben Sie die Zahl in Ziffern an. |
BAD_ACTION / BAD_STATUS | 200 | Unbekannter Befehl, ID oder Vorgang.Überprüfen Sie die Einstellungen. |
EMPTY_POOL | 200 | Derzeit sind keine passenden Telefonnummern verfügbar.Nach 10–30 Sekunden wiederholen oder Filter wechseln. |
NUMBER_IN_USE | 200 | Eine bestimmte Nummer ist durch eine aktive Sitzung belegt.Beenden Sie Ihre Sitzung oder wählen Sie eine andere Nummer. |
NO_ACTIVATION | 200 | Die Sitzungs- oder vorherige Nummer gehört nicht zu Ihrem Konto.Überprüfen Sie ID und Schlüssel. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Der Statusübergang ist derzeit nicht verfügbar.Überprüfen Sie den Zustand und die Verfügbarkeit von SMS. |
SCOPE_BLOCKED | 200 | Der Dienst, das Land oder der Anbieter ist für den Schlüssel nicht autorisiert.Aktualisieren Sie den Bereich des API-Schlüssels. |
IDEMPOTENCY_CONFLICT | 200 | Dieser Abfrageschlüssel ist bereits mit anderen Parametern verknüpft.Erstellen Sie für eine neue Operation ein weiteres Idempotency-Key. |
BAD_REF / SELF_REF | 400 | Der Softwarecode ist unbekannt, deaktiviert oder gehört dem Benutzer selbst.Geben Sie den Code des Softwarebesitzers weiter. |
INTERNAL_ERROR | 500 | Temporärer Server- oder Anbieterfehler.Wiederholen Sie dies mit einer Verzögerung und demselben Idempotency-Key. |
ALLOCATION_PENDING | 200 | Die Nummernvergabe läuft bereits. Wiederhole die Anfrage mit demselben Idempotency-Key.Die Nummernvergabe läuft bereits. Wiederhole die Anfrage mit demselben Idempotency-Key. |
ALLOCATION_UNCERTAIN | 200 | Das Ergebnis der Nummernvergabe ist unbestätigt. Automatische Wiederholung ist deaktiviert, damit keine zweite Nummer vergeben wird.Das Ergebnis der Nummernvergabe ist unbestätigt. Automatische Wiederholung ist deaktiviert, damit keine zweite Nummer vergeben wird. |
REST gibt ein Objekt zurück {"error":{"code":"…","message":"…"}} und reguläre HTTP-Status 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "Überprüfen Sie die Anforderungsfelder.",
"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.REST für neue Integrationen
USD Die Tarifbeträge werden als exakte Dezimalzahlen mit 8 Dezimalstellen zurückgegeben: 0.00300000 USD.
Die Währung des Guthabens ist USD. Anfrage- und Antwortschemata finden Sie in OpenAPI.
/api/v1/catalogDienste und Länder/api/v1/tariffsSMS Belohnungsraten nach Land/api/v1/offersTarife und Prämien/api/v1/servicesVerzeichnis/api/v1/countriesVerzeichnis/api/v1/operatorsVerzeichnis/api/v1/availability?country=1Nummernverfügbarkeit/api/v1/activationsNeue Sitzung/api/v1/activations/batch?ids=42,43Mehrere Nummern prüfen/api/v1/activationsNeueste 200 Sitzungen: scope=history, Warten oder alle/api/v1/activations/{id}Sitzung und Nachrichten/api/v1/activations/{id}/sms?after_id=0&limit=100Neues SMS mit Cursor/api/v1/activations/{id}/retryWarten auf SMS/api/v1/activations/{id}/finishFertigstellung/api/v1/activations/{id}/cancelAbbrechen/api/v1/activations/repeatNeuvergabe der Nummer/api/v1/keysAPI-Tasten/api/v1/keysErstellen Sie einen Schlüssel/api/v1/keys/{id}Namen ändern oder policy/api/v1/keys/{id}Schlüssel widerrufen/api/v1/referralsEmpfehlungscode und Einnahmen/api/v1/summaryBilanz und Zusammenfassung/api/v1/balanceGesperrt/api/v1/ledgerErtragsbuch/api/v1/withdrawalsAuszahlungsanfragen/api/v1/withdrawalsErstellen Sie eine Anfrage/api/v1/statisticsGesamtstatistik/api/v1/earnings/holdsGesperrte EinnahmenIch erhalte nur neue 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": "Code: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}Speichern Sie next_cursor und geben Sie es als after_id weiter. Wenn has_more=true, kann die nächste Seite sofort gelesen werden. limit: 1–200. Sitzungen und SMS stehen nur dem Eigentümer zur Verfügung.