SNSOTP OTP API
Eine REST-API für SMS-Verifizierung. Bestellen Sie eine Nummer für einen von 182 Diensten in einem von 154 Ländern, lesen Sie den Einmal-Code aus der Bestellung und erhalten Sie den vollen Preis zurück, wenn innerhalb von 20 Minuten kein Code eingeht.
Jeder Endpunkt akzeptiert Parameter als Query-Parameter (GET) oder als Formularfelder oder JSON (POST). Antworten sind JSON; Geldbeträge sind USD-Strings mit zwei Dezimalstellen und Zeiten sind ISO 8601 in UTC.
https://snsotp.com/api/v1
Ihr API-Schlüssel aus der Konsole, gesendet als Authorization: Bearer sok_...
Authentifizierung
Erstellen Sie einen Schlüssel auf der API-Seite der Konsole. Er beginnt mit sok_ und wird nur einmal angezeigt, daher speichern Sie ihn in einer Umgebungsvariable. Das Ersetzen des Schlüssels stoppt den alten sofort. Aufrufe von /services, /countries und /prices funktionieren ohne Schlüssel.
Authorization: Bearer sok_your_key_here
Der Schlüssel kann auch als key Query-Parameter oder Formularfeld gesendet werden, was Tools hilft, die keine Header setzen können.
Schnellstart
Bestellen Sie eine Nummer, geben Sie sie der App und fragen Sie die Bestellung ab, bis der Code da ist. Der gleiche Ablauf in vier Sprachen:
# 1. Order a number for whatsapp in US
curl -X POST https://snsotp.com/api/v1/orders \
-H "Authorization: Bearer $SNSOTP_KEY" \
-d service=whatsapp -d country=us
# 2. Read the code (poll every 3 to 5 seconds)
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \
-H "Authorization: Bearer $SNSOTP_KEY"GET/services
Jeder Dienst mit seinem Code und niedrigsten Preis · kein Schlüssel
Jeder Dienst, den Sie bestellen können, mit seinem Code (verwenden Sie ihn als Dienst in anderen Aufrufen), seiner Kategorie und dem niedrigsten Preis über alle Länder. Kein Schlüssel erforderlich.
curl https://snsotp.com/api/v1/services
{
"services": [
{ "code": "whatsapp", "name": "WhatsApp", "category": "social", "from": "0.09" },
{ "code": "telegram", "name": "Telegram", "category": "social", "from": "0.03" }
]
}GET/countries
Jedes Land mit seinem Code und Vorwahl · kein Schlüssel
Jedes Land mit seinem Code (ISO 3166 alpha-2 in Kleinbuchstaben, verwenden Sie ihn als Land) und seinem Vorwahlcode. Kein Schlüssel erforderlich.
curl https://snsotp.com/api/v1/countries
{
"countries": [
{ "code": "us", "name": "United States", "dial_code": "1" },
{ "code": "gb", "name": "United Kingdom", "dial_code": "44" }
]
}GET/prices
Preise für einen Dienst, ein Land oder beides · kein Schlüssel
Der Preis pro Bestellung für einen Dienst in jedem Land, ein Land für jeden Dienst oder ein Paar. Senden Sie mindestens einen Filter. Kein Schlüssel erforderlich.
Parameter
servicestring
Dienstcode, zum Beispiel whatsapp
countrystring
Ländercode, zum Beispiel us
curl "https://snsotp.com/api/v1/prices?service=whatsapp&country=us"
{
"prices": [
{ "service": "whatsapp", "country": "us", "price": "0.93" }
]
}GET/balance
Ihr Guthaben in USD · Schlüssel erforderlich
Ihr Guthaben in USD.
curl https://snsotp.com/api/v1/balance \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"balance": "42.50",
"currency": "USD"
}POST/orders
Bestellen Sie eine Nummer für einen Dienst und ein Land · Schlüssel erforderlich
Bestellt eine Nummer und berechnet ihren Preis. Die Antwort enthält die Nummer vollständig (phone) und ohne Vorwahlcode (number). Die Bestellung bleibt für 20 Minuten offen; wenn in dieser Zeit kein Code eingeht, wird der Preis automatisch auf Ihr Guthaben zurückerstattet. Antwortstatus 201.
Parameter
servicestringerforderlich
Dienstcode von GET /services
countrystringerforderlich
Ländercode von GET /countries
curl -X POST https://snsotp.com/api/v1/orders \ -H "Authorization: Bearer $SNSOTP_KEY" \ -d service=whatsapp -d country=us
{
"order": {
"id": "OT-7K2M9QX4PB",
"service": "whatsapp",
"country": "us",
"phone": "+13475550182",
"number": "3475550182",
"dial_code": "1",
"price": "0.93",
"status": "waiting",
"code": null,
"sms": null,
"codes": [],
"expires_at": "2026-11-03T12:20:00.000Z"
},
"window_minutes": 20
}GET/orders/{id}
Status, Code und SMS-Text einer Bestellung · Schlüssel erforderlich
Eine Bestellung mit ihrem Status, dem neuesten Code, dem neuesten SMS-Text und jedem bisher empfangenen Code. Fragen Sie alle 3 bis 5 Sekunden ab, während der Status waiting ist.
Parameter
idpatherforderlich
Bestellungs-ID von POST /orders
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": {
"id": "OT-7K2M9QX4PB",
"service": "whatsapp",
"country": "us",
"phone": "+13475550182",
"number": "3475550182",
"price": "0.93",
"status": "received",
"code": "284913",
"sms": "Your WhatsApp code is 284913",
"expires_at": "2026-11-03T12:20:00.000Z"
}
}GET/orders
Ihre offenen Bestellungen (oder alle mit status=all) · Schlüssel erforderlich
Ihre offenen Bestellungen, neueste zuerst. Fügen Sie status=all für aktuelle Bestellungen in jedem Status hinzu.
Parameter
statusstring
offen (Standard) oder alle
limitnumber
1 bis 100, Standard 50
curl "https://snsotp.com/api/v1/orders?status=open" \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"orders": [
{ "id": "OT-7K2M9QX4PB", "service": "whatsapp", "status": "received", "code": "284913" }
]
}POST/orders/{id}/resend
Ein weiterer Code auf derselben Nummer · Schlüssel erforderlich
Fordert einen weiteren Code auf derselben Nummer nach dem ersten Code an, innerhalb des Zeitfensters, ohne zusätzliche Kosten. Lösen Sie dann eine neue SMS in der App aus; waiting_for_resend ist wahr, bis sie eintrifft.
Parameter
idpatherforderlich
Bestellungs-ID
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/resend \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "received", "waiting_for_resend": true }
}POST/orders/{id}/finish
Schließen Sie eine Bestellung, nachdem Sie den Code verwendet haben · Schlüssel erforderlich
Schließt eine Bestellung, die einen Code erhalten hat, sobald Sie ihn verwendet haben. Das Beenden ist optional: offene Bestellungen schließen sich selbst, wenn das Zeitfenster endet.
Parameter
idpatherforderlich
Bestellungs-ID
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/finish \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "finished" }
}POST/orders/{id}/cancel
Stornieren Sie vor einem Code, volle Rückerstattung · Schlüssel erforderlich
Storniert eine Bestellung, bevor ein Code eingeht, und erstattet den vollen Preis sofort auf Ihr Guthaben. Nach einem Code antwortet cancel mit has_code.
Parameter
idpatherforderlich
Bestellungs-ID
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/cancel \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "canceled", "refunded": "0.93" }
}Bestellstatus
waitingDie Nummer ist bereit und noch keine SMS eingegangen. Stornierung ist möglich.receivedMindestens ein Code ist eingegangen. code und sms enthalten den neuesten.finishedGeschlossen nach einem Code, durch finish oder wenn das Zeitfenster endete.refundedInnerhalb von 20 Minuten ist kein Code eingegangen. Der volle Preis ist auf Ihr Guthaben zurückerstattet.canceledVor einem Code storniert. Der volle Preis ist auf Ihr Guthaben zurückerstattet.
Fehler
Fehler verwenden den HTTP-Status und einen Körper mit einem stabilen Code und einer lesbaren Nachricht.
- 400
missing_filter, bad_jsonEin erforderlicher Wert fehlt oder der Körper kann nicht gelesen werden. - 401
no_key, bad_keyDer Schlüssel fehlt, ist falsch oder wurde gelöscht. - 402
no_balanceNicht genug Guthaben für diese Bestellung. Laden Sie Guthaben in der Konsole auf. - 404
unknown_service, unknown_country, not_sold, not_foundDer Code oder die Bestellung existiert nicht, oder das Paar wird nicht verkauft. - 409
too_many_open, has_code, not_ready, no_numbersDie Aktion passt nicht zum Bestellstatus, oder gerade ist keine Nummer frei (es wird nichts berechnet). - 429
rate_limitedMehr als 300 Anfragen pro Minute mit einem Schlüssel.
{
"error": {
"code": "no_balance",
"message": "Not enough credit. Add credit in the console."
}
}Ratenbegrenzungen
- 300 Anfragen pro Minute pro Schlüssel. Darüber hinaus antwortet die API mit 429 rate_limited für den Rest der Minute.
- Bis zu 20 offene Bestellungen pro Konto. Beenden oder stornieren Sie eine, um eine andere zu öffnen.
- Rufen Sie eine Bestellung alle 3 bis 5 Sekunden ab; Codes kommen normalerweise innerhalb einer Minute an.
SMS-Aktivierungsformat
Skripte, die für das gängige handler_api.php-Format geschrieben wurden, funktionieren mit demselben API-Schlüssel: Ändern Sie die Basisadresse in https://snsotp.com/stubs/handler_api.php und behalten Sie die Aktionen bei. Service- und Ländercodes sind dieselben wie in der REST-API.
getBalanceACCESS_BALANCE:42.50
getServicesListJSON-Liste der Dienste
getCountriesJSON-Karte der Länder
getPricesservice, country (optional)JSON {country: {service: {cost, count}}}
getNumberservice, countryACCESS_NUMBER:<id>:<phone>
getStatusidSTATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<code>, STATUS_CANCEL
setStatusid, status 1 / 3 / 6 / 8ACCESS_READY, ACCESS_RETRY_GET, ACCESS_ACTIVATION, ACCESS_CANCEL
curl "https://snsotp.com/stubs/handler_api.php\ ?api_key=$SNSOTP_KEY&action=getNumber\ &service=telegram&country=gb" ACCESS_NUMBER:OT-3QF8ZK2W7M:447700900182
setStatus-Werte: 1 bereit, 3 weiterer Code, 6 beenden, 8 stornieren mit voller Rückerstattung.