Zum Hauptinhalt springen
116
Länder
133 Dienste, 400 Carrier-Routen, über 15.400 Live-Preispunkte. Nur Krypto, keine Identitätsprüfung.
Nummer mieten

SmsNoKYC für Entwickler: SMS-Verifizierung, die Sie skripten können

Skripten Sie den gesamten Verifizierungsablauf über eine einzige JSON-Schnittstelle. 116 Länder, 133 Dienste, 400 Carrier-Routen und über 15.400 aktuelle Preise stecken hinter einer Handvoll Endpunkten: eine Nummer zuteilen, den eingehenden Code abfangen, eine Mietnummer bis zu 90 Tage halten, in Krypto bezahlen. Es gibt hier keinen API-Schlüssel — eine Seed-Phrase ist die einzige Zugangsdaten, die Sie jemals vorweisen werden.

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

Authentifizierung erforderlich. Sitzungen basieren auf Cookies. Melden Sie sich mit Ihrer Seed-Phrase an — über die Website oder direkt gegen den unten dokumentierten Auth-Endpunkt — und jede nachfolgende Anfrage übernimmt diese Sitzung automatisch.

Gemacht für Skripte, Pipelines und autonome Agenten

Klassische OTP-Anbieter wollen unterschriebene Verträge, geklärte Compliance und zugesagte Monatsminima, bevor Ihre erste Anfrage rausgeht. SmsNoKYC dreht die Reihenfolge um: eine Seed-Phrase halten, ein Guthaben ab $25 in einer von 8 Kryptowährungen aufladen — darunter Bitcoin, Monero, Ethereum, Litecoin, TRON, USDT, SOL — und mit dem HTTPS-Client Ihrer Wahl loslegen. Die Abrechnung erfolgt pro Nummer ab $0.01, über mehr als 15.400 Live-Preispunkte.

Im Alltag verifizieren die Endpunkte Signup-Abläufe innerhalb von CI, liefern OTP-Codes an Headless-Browser und Scraper-Flotten, halten Telegram- oder WhatsApp-Konten über dedizierte Mietdauern von 7 bis 90 Tagen am Leben und verteilen die Verifizierung auf 116 Länder mit expliziter Kontrolle über 400 Carrier-Routen in drei Stufen — virtuell, physisch, premium. KI-Agenten erreichen denselben Katalog über einen nativen MCP-Server, beschrieben auf der Agents-Seite, sodass ein Tool-nutzendes Modell Nummern kaufen und Codes lesen kann, ohne eigenen Klebecode.

Authentifizierung

Sitzungen sind cookie-basiert — es gibt keinen Bearer-Schlüssel zu erstellen oder zu rotieren. Programmatischer Login erfolgt in drei Schritten:

  1. Senden Sie Ihre Seed-Phrase per POST an /auth-api.php
  2. Erfassen Sie den in der Antwort gesetzten Cookie
  3. Fügen Sie diesen Cookie jedem folgenden Aufruf hinzu
POST /auth-api.php

Tauscht deine Seed-Phrase gegen eine aktive Sitzung.

ParameterTypErforderlichBeschreibung
actionstringerforderlichMuss "login" sein
seedstringerforderlichDie 16-stellige Seed-Phrase, die an Ihr Konto gebunden ist (Format AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://smsnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://smsnokyc.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://smsnokyc.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

Jeder Endpunkt hängt an einem URL-Muster:

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

Antworten kommen in jedem Fall als JSON. POST-Bodies können entweder als application/json oder als application/x-www-form-urlencoded gesendet werden.

Anfragelimits

Zwei Regeln bestimmen das Anfragevolumen:

EndpunktLimitZeitfenster
Authentifizierung5 Versuche15 Minuten
Alle anderen EndpointsKein festes Limit—

Rate-Limiting: Login akzeptiert 5 Versuche pro 15 Minuten; jeder andere Endpunkt hat derzeit kein festes Limit, anhaltender Missbrauch kann jedoch vorgeschaltet gedrosselt werden. Verteilen Sie Ihre Aufrufe sinnvoll.

Fehlerbehandlung

Jeder Fehler kommt als JSON-Objekt mit einem error-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

Anwendungsfehler, die Ihnen am häufigsten begegnen:

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

Listet jedes Land mit aktuellem Bestand auf — zuletzt 116. Offener Endpunkt, keine Sitzung erforderlich.

cURL
Python
JavaScript
curl https://smsnokyc.com/api.php?action=countries
resp = session.get("https://smsnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://smsnokyc.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}

Ruft das Dienste-Datenblatt für ein Land ab, inklusive aktuellem Preis und Bestand. Lassen Sie den Länderparameter weg, um den vollständigen 133-Dienste-Katalog ohne Preise zu erhalten.

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}

Listet die Carrier-Routen hinter einem Land auf. Jeder Betreiber hat eine Stufe sowie einen Multiplikator, 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 — auf VoIP basierend, günstigster Preis, wird von strengen Plattformen gelegentlich abgelehnt. physical — echte SIM-Hardware, höhere Akzeptanz. premium — höchste Akzeptanz und schnellste Zustellung, rund 10 Sekunden.

Nummer kaufen (SMS-Aktivierung)

POST /api.php?action=buy

Reserviert eine Nummer für eine einzelne Verifizierung. Sie gehört Ihnen für 20 Minuten; erscheint in diesem Zeitfenster keine Nachricht, fließt der Betrag automatisch zurück auf Ihr Guthaben.

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://smsnokyc.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://smsnokyc.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://smsnokyc.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

Liefert Ihre letzten 50 Bestellungen mit ihren Nummern und allen erfassten Codes. Fragen Sie hier ab, während eine Aktivierung auf ihre SMS wartet.

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 noch auf eine Nachricht. completed — Code erfasst. cancelled — von Ihnen beendet. refunded — nach stillem Timeout automatisch gutgeschrieben. expired — Zeitfenster abgelaufen.

Mietpreis abrufen

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

Nennt die Kosten für das Halten einer dedizierten Nummer bei einem bestimmten Betreiber für eine gewählte Laufzeit.

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

Sichert eine oder mehrere dedizierte Nummern. Jede bleibt für die gesamte Laufzeit — 7 bis 90 Tage — exklusiv Ihre und nimmt unbegrenzt eingehende SMS von jedem Dienst an.

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

Meldet das Konto hinter der aktuellen Sitzung, inklusive Guthaben. Ein Aufruf dient gleichzeitig als Login-Check und Guthabenprüfung.

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

End-to-End-Skript

Das Skript unten führt den gesamten Ablauf in Python aus — Sitzung, Katalogabfrage, Kauf, dann Abfrage bis der Code eintrifft:

Python
import requests, time BASE = "https://smsnokyc.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")

Entwicklerfragen, beantwortet

Welche Operationen bietet die SmsNoKYC-Entwickler-API?

Alles, was das Dashboard tut, kann auch ein Skript tun: den Katalog aus 116 Ländern und 133 Diensten abrufen, über 15.400 Live-Preispunkte verteilt auf 400 Carrier-Routen einsehen, eine Nummer für ein einmaliges OTP zuweisen, den eingehenden Code lesen, sobald er eintrifft, eine dedizierte Miete für 7, 14, 30 oder 90 Tage halten und jede Bestellung überprüfen. Alles davon ist einfaches JSON über HTTPS, in Krypto abgerechnet, ohne Identitätsschritt im gesamten Ablauf.

Muss ich vor meiner ersten Anfrage einen API-Schlüssel erzeugen?

Nichts zu erzeugen, nichts zu rotieren. Ihre Seed-Phrase ist selbst die Zugangsdaten: Senden Sie sie einmal per POST an /auth-api.php, behalten Sie das vom Server zurückgegebene Session-Cookie, und senden Sie dieses Cookie mit jedem weiteren Aufruf. Kein Schlüssel-Dashboard, kein OAuth-Handshake, kein Ablaufkalender — ein Seed öffnet eine Sitzung, und das ist das ganze Modell.

Was kostet der Zugang zur API selbst?

Der Zugang kostet nichts — keine Monatsgebühr, keine Stufe, kein Mindestvolumen. Sie zahlen nur pro Nummer: einmalige Verifizierungscodes starten bei $0.01 und liegen meist zwischen $0.20 und $1, während dedizierte Mietnummern bei $4.20 für eine 7-Tage-Laufzeit beginnen. Guthaben wird mit 8 Kryptowährungen aufgeladen (Mindestaufladung $25), und eine Aktivierung, die niemals eine SMS erhält, wird ohne Ihr Zutun automatisch erstattet.

Kann ich aus jeder Sprache — oder von einem KI-Agenten aus — integrieren?

Alles, was HTTPS spricht, qualifiziert sich: Python, Node.js, Go, Rust, PHP, Ruby, Java, C# oder reines cURL in einem Shell-Skript. Die Referenz enthält lauffähige Codebeispiele in cURL, Python und JavaScript, und /openapi.json stellt ein vollständiges OpenAPI-3.0-Dokument zur Generierung typisierter Clients bereit. Autonome Agenten werden ebenfalls nativ unterstützt — ein dedizierter MCP-Server lässt tool-nutzende Modelle eigenständig Nummern kaufen und Codes abrufen; die Seite /agents erklärt die Einrichtung.

Was passiert, wenn eine gekaufte Nummer stumm bleibt?

Du verlierst nichts. Jede Aktivierung läuft mit einem 20-minütigen Empfangsfenster; schließt es ohne Nachricht, storniert die Plattform die Bestellung selbstständig und schreibt den vollen Betrag deinem Guthaben wieder gut. Kein Ticket, kein Formular, kein Warten auf den Support. Kauf sofort erneut — ein Wechsel zu einer physischen oder Premium-Betreiberstufe erhöht meist die Zustellrate.

Wie oft kann ich abfragen, bevor die Drosselung greift?

Nur der Login hat eine feste Obergrenze: 5 Versuche pro 15 Minuten pro IP, um das Erraten von Seeds zu verhindern. Katalog-, Kauf-, Bestell- und Miet-Endpunkte haben derzeit kein festes Limit. Halten Sie den Takt vernünftig — eine Abfrage des Orders-Endpunkts alle 3 bis 5 Sekunden erfasst jeden Code — und bleiben Sie bei anhaltendem Traffic unter etwa 10 Anfragen pro Sekunde, da stärkere Lastspitzen auf der Edge-Ebene gedrosselt werden können.

Ausliefern

Holen Sie sich einen Seed auf der Startseite, laden Sie $25 oder mehr in Krypto auf, und Ihr erster Verifizierungscode ist fünf Anfragen entfernt. Bauen Sie stattdessen auf einem LLM statt einem Skript auf? Richten Sie Ihr Modell auf den SmsNoKYC-MCP-Server aus oder folgen Sie dem KI-Agenten-Integrationsleitfaden — der vollständige Katalog aus 116 Ländern und 133 Diensten wird zu einem Tool-Aufruf.

Alles, was die Referenz offenlässt, wird im Hilfecenter behandelt, das SMS-Glossar erklärt den Fachjargon, und Live-Aktivität zeigt das Netzwerk in Bewegung. Der Support läuft über In-App-Tickets, sobald Sie angemeldet sind.