208 Apps154 Länder

API v12026-11-04

Eine JSON-API zum Bestellen von Verifizierungsnummern und Lesen von SMS-Codes.

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

HTTPBedeutung
400Fehlendes oder ungültiges Feld (missing_filter, bad_json).
401Kein oder falscher Schlüssel (no_key, bad_key).
402Nicht genug Guthaben (no_balance).
404Unbekannter Dienst, Land, Bestellung oder Endpunkt.
409Die Bestellung kann das jetzt nicht (has_code, not_ready, too_many_open, no_numbers).
429Mehr 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

  • waiting Die Nummer ist offen und noch kein Code eingetroffen.
  • received Mindestens ein Code ist eingetroffen; fordern Sie einen weiteren mit resend an, solange das Fenster offen ist.
  • finished Geschlossen nach einem Code, von Ihnen oder am Ende des Fensters.
  • refunded Das Fenster endete ohne Code; der volle Preis ging zurück auf Ihr Guthaben.
  • canceled Sie 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"}}
SMS-Verifizierungs-API: REST JSON für WhatsApp-, Telegram- und Google-Nummern | SNSVerify