SMS-Verifizierungs-API
Kaufen Sie Nummern und lesen Sie SMS-Codes mit einfachen HTTP-GET- oder POST-Anfragen. Antworten verwenden das Textformat gängiger SMS-Aktivierungstools, private Nummeranrufe antworten in JSON.
Erste Schritte
- Adresse
- https://snscodes.com/stubs/handler_api.php
- Authentifizierung
- api_key-Parameter. Erstellen Sie den Schlüssel auf der API-Seite Ihres Kontos; er wird nur einmal angezeigt.
- Anfragelimit
- 300 Anfragen pro Minute pro Schlüssel
- Geld
- Preise und Guthaben in US-Dollar, vom selben Guthaben wie die Website abgebucht.
curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getNumber&service=telegram&country=us" # ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123 curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getStatus&id=N-7KQ2M9XWD4" # STATUS_OK:482913
import time, requests
BASE = "https://snscodes.com/stubs/handler_api.php"
KEY = "YOUR_KEY"
r = requests.get(BASE, params={"api_key": KEY, "action": "getNumber", "service": "telegram", "country": "us"}).text
_, num_id, phone = r.split(":")
print("number", phone)
while True:
s = requests.get(BASE, params={"api_key": KEY, "action": "getStatus", "id": num_id}).text
if s.startswith("STATUS_OK"):
print("code", s.split(":")[1]); break
if s == "STATUS_CANCEL":
break
time.sleep(5)const BASE = "https://snscodes.com/stubs/handler_api.php";
const KEY = process.env.SNSCODES_KEY;
const call = async (q) => (await fetch(BASE + "?" + new URLSearchParams({ api_key: KEY, ...q }))).text();
const [, id, phone] = (await call({ action: "getNumber", service: "telegram", country: "us" })).split(":");
console.log("number", phone);
for (;;) {
const s = await call({ action: "getStatus", id });
if (s.startsWith("STATUS_OK")) { console.log("code", s.split(":")[1]); break; }
if (s === "STATUS_CANCEL") break;
await new Promise((r) => setTimeout(r, 5000));
}Guthaben abfragen action=getBalance
Gibt Ihr Kontoguthaben in US-Dollar zurück.
ACCESS_BALANCE:42.50
BAD_KEYDer Schlüssel fehlt oder ist falsch.
Code-Preise action=getPrices
Preise pro Code nach Land und Dienst. Beide Filter sind optional.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| service | nein | Dienstcode, z.B. telegram |
| country | nein | us, gb oder au |
{"us":{"telegram":{"cost":3,"count":100}}}Code-Nummer kaufen action=getNumber
Kauft eine Nummer für eine App. Der Betrag wird sofort von Ihrem Guthaben abgebucht und zurückerstattet, wenn innerhalb von 20 Minuten kein Code eingeht.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| service | ja | Dienstcode von getPrices |
| country | ja | us, gb oder au |
ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123
BAD_SERVICEUnbekannter Dienstcode.BAD_COUNTRYDer Dienst wird für dieses Land nicht angeboten.NO_BALANCENicht genug Guthaben. Es wird nichts abgebucht.NO_NUMBERSDerzeit keine Nummer verfügbar. Es wird nichts abgebucht.NO_ACTIVATIONSSie haben bereits 20 offene Code-Nummern.
Code abrufen action=getStatus
Alle 5 bis 10 Sekunden abfragen, bis der Code eingeht.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| id | ja | Die ID von getNumber |
STATUS_OK:482913
STATUS_WAIT_CODENoch keine SMS.STATUS_WAIT_RETRY:482913Warte auf weiteren Code; der letzte wird angezeigt.STATUS_CANCELAbgebrochen oder erstattet.NO_ACTIVATIONUnbekannte ID.
Abbrechen, wiederholen oder abschließen action=setStatus
status=8 bricht eine Nummer ohne Code ab (volle Rückerstattung), status=3 fordert einen weiteren Code für dieselbe Nummer an, status=6 schließt sie ab.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| id | ja | Die ID von getNumber |
| status | ja | 8, 3 oder 6 |
ACCESS_CANCEL
EARLY_CANCEL_DENIEDEin Code ist bereits eingegangen; abschließen statt abbrechen.ACCESS_RETRY_GETWarte auf weiteren Code.ACCESS_ACTIVATIONAbgeschlossen.
Preise für private Nummern action=getRentPrices
Preis für den gesamten Zeitraum nach Land und Dauer. Gibt JSON zurück.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| country | nein | Zweistelliger Ländercode |
{"us":{"sixMonths":35.99,"twelveMonths":59.99}}Private Nummer kaufen action=getRentNumber
Kauft eine private Nummer für einen Zeitraum. Gibt JSON zurück.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| country | ja | Zweistelliger Ländercode |
| period | ja | oneMonth, threeMonths, sixMonths, twelveMonths, twoYears oder threeYears |
{"status":"success","id":"N-3HV8QZ2K5M","phone":"14155550123","until":"2027-05-02T10:00:00.000Z"}BAD_PERIODDer Zeitraum wird für dieses Land nicht angeboten.NO_BALANCENicht genug Guthaben.
Private Nummer SMS lesen action=getRentStatus
Alle bisher von der privaten Nummer empfangenen SMS. Gibt JSON zurück.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| id | ja | Die ID von getRentNumber |
{"status":"success","state":"active","messages":[{"code":"482913","text":"Your code is 482913","from":"Telegram","at":"..."}]}Private Nummer stornieren action=setRentStatus
status=2 storniert eine private Nummer für eine vollständige Rückerstattung, solange keine SMS eingegangen ist und sie weniger als 20 Minuten alt ist.
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
| id | ja | Die ID von getRentNumber |
| status | ja | 2 |
{"status":"success"}EARLY_CANCEL_DENIEDEine SMS ist eingegangen oder 20 Minuten sind vergangen.