Zum Hauptinhalt springen
100+
Länder
1000+ Dienste. Bezahlen mit Krypto, kein KYC.
Nummer kaufen

SMS-Verifizierungs-API — SMSBurner

OTP-Verifizierung automatisiert und skalierbar durchführen. Virtuelle Telefonnummern in 190+ Ländern kaufen, SMS-Codes in Sekunden empfangen, dedizierte Langzeitnummern mieten und alle Bestellungen über einen einzigen REST-Endpunkt verwalten – kein API-Schlüssel, kein KYC, Abrechnung in Kryptowährung.

Lesezeit: 5 Min. REST · JSON · OpenAPI 3.0 OpenAPI-Spezifikation →

Authentifizierung erforderlich. Alle API-Anfragen verwenden cookie-basierte Sitzungsauthentifizierung. Sie müssen in Ihrem SMSBurner-Konto angemeldet sein, um die API zu nutzen. Melden Sie sich über die Weboberfläche an oder verwenden Sie den Authentifizierungs-Endpunkt, um eine Sitzung zu erstellen.

Warum Entwickler die SMSBurner-API wählen

SMSBurner ist die flexibelste SMS-Verifizierungs-API für Entwickler, die Anonymität, globale Abdeckung und kalkulierbare Preise benötigen. Anders als herkömmliche SMS-OTP-Anbieter, die den Zugang hinter Enterprise-Verträgen, monatlichen Mindestabnahmen und KYC-Fragebögen verstecken, funktioniert SMSBurner mit jedem HTTPS-Client, berechnet strikt pro Nummer und akzeptiert 8 Kryptowährungen, darunter Bitcoin, Monero, Ethereum, USDT, Solana, Litecoin und TRON.

Typische Anwendungsfälle umfassen die Automatisierung von Account-Registrierungen für skaliertes QA, das Abrufen von Einmalpasswörtern für Headless-Agents und CI-Bots, die Validierung von Telefon-pflichtigen Abläufen in der Continuous Integration, die Miete dedizierter Langzeitnummern für Telegram- oder WhatsApp-Konten mit unterbrechungsfreiem SMS-Empfang sowie die Bereitstellung geo-verteilter Verifizierung in 190+ Ländern mit expliziter Betreiber-Tier-Kontrolle – virtuell, physisch oder Premium.

Authentifizierung

Die API verwendet cookie-basierte Sitzungsauthentifizierung. Um sich programmatisch zu authentifizieren:

  1. Senden Sie eine POST-Anfrage an /auth-api.php mit Ihrer Seed-Phrase
  2. Speichern Sie das Sitzungs-Cookie aus der Antwort
  3. Fügen Sie das Cookie allen nachfolgenden API-Anfragen hinzu
POST /auth-api.php

Authentifizieren Sie sich mit Ihrer Seed-Phrase und erstellen Sie eine Sitzung.

ParameterTypErforderlichBeschreibung
actionstringerforderlichMuss "login" sein
seedstringerforderlichIhr 16-Zeichen-Zugangs-Seed (z.B. AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://smsburner.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://smsburner.com/auth-api.php", data={ "action": "login", "seed": "AbC3-dEf4-gHj5-kLm6" }) data = resp.json() print(data) # {"success": true, "user": {...}} # session object now holds the cookie for all future requests
const resp = await fetch("https://smsburner.com/auth-api.php", { method: "POST", credentials: "include", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "action=login&seed=AbC3-dEf4-gHj5-kLm6" }); const data = await resp.json(); console.log(data); // {success: true, user: {...}}
Erfolgsantwort
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
Fehlerantwort
{ "success": false, "error": "Invalid seed." }

Basis-URL

Alle API-Endpunkte sind relativ zu:

https://smsburner.com/api.php?action={action}

Alle Antworten sind im JSON-Format. POST-Endpunkte akzeptieren sowohl application/json- als auch application/x-www-form-urlencoded-Anfragekörper.

Anfragelimits

Die API erzwingt folgende Ratenbegrenzungen:

EndpunktLimitZeitfenster
Authentifizierung5 Versuche15 Minuten
Alle anderen EndpointsKein festes Limit

Ratenbegrenzung: Die Authentifizierung ist auf 5 Versuche pro 15 Minuten begrenzt. Andere Endpoints sind derzeit nicht ratenbegrenzt, aber übermäßige Nutzung kann gedrosselt werden. Verwenden Sie angemessene Anfrage-Intervalle.

Fehlerbehandlung

Alle Fehler geben ein JSON-Objekt mit einem <code>error</code>-Feld zurück:

{ "error": "Description of what went wrong" }
HTTP-CodeBedeutung
200Erfolg (prüfen Sie den Antwortkörper auf Anwendungsfehler)
403Ungültiger CSRF-Token
405Falsche HTTP-Methode (z.B. GET auf einem POST-only Endpoint)
429Ratenlimit überschritten

Häufige Fehler auf Anwendungsebene:

FehlerUrsache
"Login required"Sitzung abgelaufen oder nicht authentifiziert
"Insufficient balance"Nicht genügend Guthaben — enthält die Felder need und have
"Service not available for this country"Kein Bestand oder Dienst inaktiv für das ausgewählte Land
"Missing country or service"Erforderliche Parameter wurden nicht angegeben

Länder auflisten

GET /api.php?action=countries

Gibt alle aktiven Länder mit verfügbaren virtuellen Nummern zurück. Keine Authentifizierung erforderlich.

cURL
Python
JavaScript
curl https://smsburner.com/api.php?action=countries
resp = session.get("https://smsburner.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://smsburner.com/api.php?action=countries"); const countries = await resp.json();
Antwort
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

Dienste auflisten

GET /api.php?action=services&country={code}

Gibt verfügbare Dienste für ein bestimmtes Land zurück, einschließlich Preise und Bestand. Ohne Ländercode werden alle Dienste ohne Preise zurückgegeben.

ParameterTypErforderlichBeschreibung
countrystringoptionalISO 3166-1 Alpha-2-Ländercode (z.B. us, gb, de)
Antwort (mit Land)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

Betreiber auflisten

GET /api.php?action=operators&country={code}

Gibt verfügbare Betreiber (Anbieter) für ein bestimmtes Land zurück. Jeder Betreiber hat einen Typ und einen Preismultiplikator, der auf den Basispreis des Dienstes angewendet wird.

ParameterTypErforderlichBeschreibung
countrystringerforderlichISO 3166-1 Alpha-2-Ländercode
Antwort
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

Betreibertypen: virtual — VoIP-Nummern, am günstigsten, können von einigen Diensten blockiert werden. physical — echte SIM-Karten, höhere Erfolgsrate. premium — schnellste Lieferung (~10s), höchste Erfolgsrate.

Nummer kaufen (SMS-Aktivierung)

POST /api.php?action=buy

Kaufen Sie eine virtuelle Nummer für einmalige SMS-Verifizierung. Die Nummer ist 20 Minuten aktiv. Wenn keine SMS empfangen wird, wird Ihr Guthaben automatisch erstattet.

ParameterTypErforderlichBeschreibung
countrystringerforderlichLändercode (z.B. us)
service_idintegererforderlichDienst-ID aus Dienstliste
operator_idintegeroptionalBetreiber-ID aus Betreiberliste. Leer lassen für Standardbetreiber.
cURL
Python
JavaScript
curl -X POST https://smsburner.com/api.php?action=buy \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"country":"us","service_id":12,"operator_id":5}'
resp = session.post("https://smsburner.com/api.php?action=buy", json={ "country": "us", "service_id": 12, "operator_id": 5 }) order = resp.json() print(f"Order #{order['order_id']} — ${order['price']}")
const resp = await fetch("https://smsburner.com/api.php?action=buy", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ country: "us", service_id: 12, operator_id: 5 }) }); const order = await resp.json();
Erfolgsantwort
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
Fehler: Unzureichendes Guthaben
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

Bestellungen auflisten

GET /api.php?action=orders

Gibt Ihre 50 neuesten Bestellungen zurück, einschließlich Telefonnummern und SMS-Codes. Fragen Sie diesen Endpoint ab, um eingehende SMS-Codes bei aktiven Bestellungen zu prüfen.

Antwort
[ { "id": 1847, "price": "0.53", "status": "completed", "phone_number": "+12025551234", "sms_code": "847293", "created_at": "2026-04-09 14:32:00", "country_code": "us", "country_name": "USA", "service_name": "WhatsApp", "operator_name": "T-Mobile" } ]

Bestellstatus: active — wartet auf SMS. completed — SMS empfangen. cancelled — vom Benutzer storniert. refunded — automatisch erstattet (keine SMS vor Zeitüberschreitung empfangen). expired — abgelaufen.

Mietpreis abrufen

GET /api.php?action=rental_price&country={code}&operator_id={id}&duration={days}

Erhalten Sie den Preis für die Anmietung einer dedizierten Nummer von einem bestimmten Betreiber für eine bestimmte Dauer.

ParameterTypErforderlichBeschreibung
countrystringerforderlichLändercode
operator_idintegererforderlichBetreiber-ID
durationintegererforderlichMietdauer in Tagen: 7, 14, 30 oder 90
Antwort
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

Nummer mieten

POST /api.php?action=rental_buy

Mieten Sie eine oder mehrere dedizierte Telefonnummern. Die Nummer gehört während der gesamten Mietdauer ausschließlich Ihnen und empfängt unbegrenzt eingehende SMS.

ParameterTypErforderlichBeschreibung
countrystringerforderlichLändercode
operator_idintegererforderlichBetreiber-ID
durationintegererforderlich7, 14, 30 oder 90 Tage
qtyintegeroptionalAnzahl der zu mietenden Nummern (1–10, Standard: 1)
Erfolgsantwort
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

Benutzerinformationen abrufen

GET /api.php?action=user

Gibt die Kontoinformationen und das Guthaben des aktuellen Benutzers zurück. Verwenden Sie dies, um den Authentifizierungsstatus und verfügbare Mittel zu prüfen.

Authentifiziert
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
Nicht authentifiziert
{ "logged_in": false }

Vollständiges Workflow-Beispiel

Hier ist ein vollständiges Python-Beispiel, das sich authentifiziert, einen Dienst findet, eine Nummer kauft und den SMS-Code abfragt:

Python
import requests, time BASE = "https://smsburner.com" SEED = "AbC3-dEf4-gHj5-kLm6" s = requests.Session() # 1. Authenticate s.post(f"{BASE}/auth-api.php", data={"action": "login", "seed": SEED}) # 2. Check balance user = s.get(f"{BASE}/api.php?action=user").json() print(f"Balance: ${user['balance']}") # 3. Get services for USA services = s.get(f"{BASE}/api.php?action=services&country=us").json() whatsapp = next(svc for svc in services if svc["name"] == "WhatsApp") print(f"WhatsApp: ${whatsapp['price']} ({whatsapp['stock']} in stock)") # 4. Buy a number order = s.post(f"{BASE}/api.php?action=buy", json={ "country": "us", "service_id": whatsapp["id"] }).json() print(f"Order #{order['order_id']} created") # 5. Poll for SMS code for _ in range(60): orders = s.get(f"{BASE}/api.php?action=orders").json() my_order = next(o for o in orders if o["id"] == order["order_id"]) if my_order["sms_code"]: print(f"SMS code: {my_order['sms_code']}") print(f"Phone: {my_order['phone_number']}") break print("Waiting for SMS...") time.sleep(5) else: print("Timeout — balance will be refunded automatically")

Häufig gestellte Fragen

Was kann ich mit der SMSBurner-SMS-Verifizierungs-API tun?

Die SMSBurner-API bietet Entwicklern programmatischen Zugriff auf virtuelle Telefonnummern in 190+ Ländern zur einmaligen SMS-Verifizierung (OTP-Codes) und zur Langzeitmiete von Nummern (7, 14, 30 oder 90 Tage). Dienste auflisten, Live-Preise abfragen, Nummern zuweisen, eingehende SMS-Codes abrufen und fehlgeschlagene Aktivierungen erstatten lassen – alles über ein JSON-REST-Interface, ohne KYC und mit reiner Krypto-Abrechnung.

Benötige ich einen API-Schlüssel oder ein OAuth-Token zur Nutzung der API?

Nein. Die SMSBurner-API verwendet Cookie-basierte Session-Authentifizierung: Eine einzige POST-Anfrage an /auth-api.php mit Ihrem 16-stelligen Access-Seed senden, anschließend den zurückgegebenen Session-Cookie bei jedem weiteren Aufruf wiederverwenden. Es gibt keinen API-Schlüssel, der provisioniert, rotiert oder widerrufen werden müsste – Sie authentifizieren sich einmal pro Session und bleiben für die gesamte Lebensdauer des Cookies authentifiziert.

Was kostet die Nutzung der SMSBurner-API?

Die API selbst ist kostenlos – es gibt keine monatliche Gebühr, kein Abonnement und kein Mindestanfragevolumen. Sie zahlen ausschließlich pro Nummer: Einmalige SMS-Aktivierungen beginnen ab $0.05, dedizierte Langzeitmieten ab $4.79 für 7 Tage. Jede Aktion wird vom Prepaid-Guthaben abgebucht, und jede Aktivierung, bei der keine SMS eingeht, wird automatisch erstattet.

Welche Programmiersprachen und Frameworks werden unterstützt?

Jede Sprache oder Plattform, die HTTPS-Anfragen stellen kann, kann die API aufrufen – Python (requests, httpx), Node.js (fetch, axios), Go, PHP, Ruby, Java, C#, Bash mit cURL und weitere. Die Dokumentation enthält sofort ausführbare Beispiele in cURL, Python und JavaScript; eine vollständige OpenAPI-3.0-Spezifikation ist unter /openapi.json veröffentlicht, sodass ein typisierter Client in der bevorzugten Sprache automatisch generiert werden kann.

Was passiert, wenn mein SMS-Verifizierungscode nie ankommt?

Jede Aktivierung hat ein Zustellfenster von 20 Minuten. Geht vor Ablauf dieses Fensters keine SMS ein, wird die Bestellung automatisch storniert und der volle Betrag dem Kontoguthaben gutgeschrieben – kein Support-Ticket, kein manueller Neuversuch. Das erstattete Guthaben kann sofort genutzt werden, um eine neue Nummer zuzuweisen, optional auf einem anderen Betreiber-Tier (virtuell, physisch oder Premium) für höhere Zustellerfolgsrate.

Gibt es Ratenlimits für die SMSBurner-API?

Die Authentifizierung ist auf 5 Versuche pro 15 Minuten pro IP begrenzt, um Brute-Force-Angriffe auf die Seed-Enumeration zu verhindern. Alle anderen Endpunkte – Katalog, Kauf, Orders, Rentals – haben derzeit kein hartes Ratenlimit, jedoch wird gebeten, Anfrage-Intervalle in vernünftigem Rahmen zu halten: /api.php?action=orders alle 3–5 Sekunden abzurufen ist für den SMS-Empfang vollkommen ausreichend, und anhaltende Bursts oberhalb von ~10 Req/s können auf WAF-Ebene gedrosselt werden.