Basis-URL https://snsverify.com/api/v1
Jeder Pfad auf dieser Seite ist relativ dazu. Beträge sind in US-Dollar als Zeichenketten mit zwei Dezimalstellen, Zeiten in UTC (ISO 8601).
Zwei Formate, ein Konto
Diese Seite beschreibt die REST-API mit JSON. Wenn Ihr Tool bereits das gängige SMS-Aktivierungsformat (handler_api.php mit action= Parametern) unterstützt, verwenden Sie die SMS-Aktivierungs-API. Beide teilen Ihren API-Schlüssel, Preise, offene Aktivierungen und Rückerstattungen.
Überblick
Eine SMS-Verifizierungs-API ermöglicht es Ihrer Software, eine Telefonnummer für eine App zu kaufen, auf den Verifizierungs-SMS zu warten und den Code zu lesen, ohne die Website zu öffnen. Jede Bestellung ist eine Aktivierung: ein Dienst, ein Land, eine Nummer und ein 20-minütiges Fenster. Bestellungen ohne Code werden am Ende des Fensters vollständig erstattet.
Anfragen nutzen GET zum Lesen und POST für Aktionen. POST-Bodies können Formularfelder oder JSON sein. Erfolgreiche Antworten sind JSON-Objekte; Fehler haben überall dieselbe Struktur: {"error":{"code":"...","message":"..."}}.
Authentifizierung
Erstellen Sie einen API-Schlüssel in der Konsole unter API-Schlüssel. Er wird einmal angezeigt; wir speichern nur eine verschlüsselte Kopie. Senden Sie ihn im Authorization-Header als Bearer-Token. Ein Schlüsselparameter wird auch für Tools akzeptiert, die keine Header setzen können.
Authorization: Bearer vfk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Das Erstellen eines neuen Schlüssels ersetzt den alten sofort. Die Endpunkte für Dienste, Länder und Preise funktionieren ohne Schlüssel.
Fehler
| HTTP | Bedeutung |
|---|---|
| 400 | Fehlendes oder ungültiges Feld (missing_filter, bad_json). |
| 401 | Kein oder falscher Schlüssel (no_key, bad_key). |
| 402 | Nicht genug Guthaben (no_balance). |
| 404 | Unbekannter Dienst, Land, Bestellung oder Endpunkt. |
| 409 | Die Bestellung kann das jetzt nicht (has_code, not_ready, too_many_open, no_numbers). |
| 429 | Mehr als 300 Anfragen in einer Minute (rate_limited). |
Schnellstart
Bestellen Sie eine UK-WhatsApp-Nummer mit curl, dann fragen Sie die Bestellung alle paar Sekunden ab, bis der Code da ist.
curl -X POST https://snsverify.com/api/v1/orders \ -H "Authorization: Bearer $SNSVERIFY_KEY" \ -d service=whatsapp -d country=gb
Python
import os, time, requests
API = "https://snsverify.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['SNSVERIFY_KEY']}"}
order = requests.post(f"{API}/orders", headers=H,
data={"service": "whatsapp", "country": "gb"}).json()["order"]
print("Use this number:", order["phone"])
while True:
o = requests.get(f"{API}/orders/{order['id']}", headers=H).json()["order"]
if o["code"] or o["status"] in ("refunded", "canceled"):
break
time.sleep(4)
print("Code:", o["code"])Node.js
const API = "https://snsverify.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSVERIFY_KEY}` };
const { order } = await fetch(`${API}/orders`, {
method: "POST", headers: H,
body: new URLSearchParams({ service: "telegram", country: "nl" }),
}).then((r) => r.json());
console.log("Use this number:", order.phone);
let o = order;
while (!o.code && !["refunded", "canceled"].includes(o.status)) {
await new Promise((r) => setTimeout(r, 4000));
({ order: o } = await fetch(`${API}/orders/${order.id}`, { headers: H }).then((r) => r.json()));
}
console.log("Code:", o.code);Ratenlimits
300 Anfragen pro Minute pro Schlüssel und bis zu 20 offene Bestellungen pro Konto. Eine Abfrage alle 3 bis 5 Sekunden reicht: Die meisten Codes kommen innerhalb einer Minute an.
Bestellstatus
waitingDie Nummer ist offen und noch kein Code eingetroffen.receivedMindestens ein Code ist eingetroffen; fordern Sie einen weiteren mit resend an, solange das Fenster offen ist.finishedGeschlossen nach einem Code, von Ihnen oder am Ende des Fensters.refundedDas Fenster endete ohne Code; der volle Preis ging zurück auf Ihr Guthaben.canceledSie haben vor einem Code storniert; der volle Preis ging zurück auf Ihr Guthaben.
Endpunkte
GET/services
Jeder Dienstcode mit Name, Kategorie und niedrigstem Preis. Kein Schlüssel nötig.
{"services":[{"code":"whatsapp","name":"WhatsApp","category":"social","from":"0.31"}]}GET/countries
Jeder Ländercode (ISO, klein geschrieben) mit Name und Vorwahl. Kein Schlüssel nötig.
{"countries":[{"code":"gb","name":"United Kingdom","dial_code":"44"}]}GET/prices?service=whatsapp&country=gb
Preise in USD. Filtern nach Dienst, Land oder beidem. Kein Schlüssel nötig.
{"prices":[{"service":"whatsapp","country":"gb","price":"0.94"}]}GET/balance
Ihr Guthaben in USD.
{"balance":"25.00","currency":"USD"}POST/orders
Kauft eine Nummer (HTTP 201). Gibt die Bestellung mit der Telefonnummer und der Zeit zurück, zu der das Fenster endet.
Body: service=whatsapp&country=gb
{"order":{"id":"AC-7K2M9QX4PB","service":"whatsapp","country":"gb","phone":"+447700900123","price":"0.94","status":"waiting","code":null,"expires_at":"2026-11-04T12:20:00.000Z"},"window_minutes":20}GET/orders/AC-7K2M9QX4PB
Eine Bestellung mit Status und allen empfangenen Codes. Status: waiting, received, finished, refunded, canceled.
{"order":{"id":"AC-7K2M9QX4PB","status":"received","code":"482915","sms":"Your WhatsApp code: 482-915"}}GET/orders?status=open
Ihre offenen Bestellungen; status=all gibt die letzten 100 zurück.
{"orders":[{"id":"AC-7K2M9QX4PB","status":"waiting"}]}POST/orders/AC-7K2M9QX4PB/resend
Fordert einen weiteren Code auf derselben Nummer nach dem ersten Code an, solange das Fenster offen ist. Keine zusätzlichen Kosten.
{"order":{"status":"received","waiting_for_resend":true}}POST/orders/AC-7K2M9QX4PB/finish
Schließt eine Bestellung, die ihren Code erhalten hat.
{"order":{"status":"finished"}}POST/orders/AC-7K2M9QX4PB/cancel
Bricht ab, bevor ein Code eintrifft. Der volle Preis geht zurück auf Ihr Guthaben.
{"order":{"status":"canceled","refunded":"0.94"}}