v1REST · JSON

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.

Server

https://snsotp.com/api/v1

AuthentifizierungBearer-Token

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.

Header
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.

AnfragecURL
curl https://snsotp.com/api/v1/services
Antwort200
{
  "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.

AnfragecURL
curl https://snsotp.com/api/v1/countries
Antwort200
{
  "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

AnfragecURL
curl "https://snsotp.com/api/v1/prices?service=whatsapp&country=us"
Antwort200
{
  "prices": [
    { "service": "whatsapp", "country": "us", "price": "0.93" }
  ]
}

GET/balance

Ihr Guthaben in USD · Schlüssel erforderlich

Ihr Guthaben in USD.

AnfragecURL
curl https://snsotp.com/api/v1/balance \
  -H "Authorization: Bearer $SNSOTP_KEY"
Antwort200
{
  "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

AnfragecURL
curl -X POST https://snsotp.com/api/v1/orders \
  -H "Authorization: Bearer $SNSOTP_KEY" \
  -d service=whatsapp -d country=us
Antwort201
{
  "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

AnfragecURL
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \
  -H "Authorization: Bearer $SNSOTP_KEY"
Antwort200
{
  "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

AnfragecURL
curl "https://snsotp.com/api/v1/orders?status=open" \
  -H "Authorization: Bearer $SNSOTP_KEY"
Antwort200
{
  "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

AnfragecURL
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/resend \
  -H "Authorization: Bearer $SNSOTP_KEY"
Antwort200
{
  "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

AnfragecURL
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/finish \
  -H "Authorization: Bearer $SNSOTP_KEY"
Antwort200
{
  "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

AnfragecURL
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/cancel \
  -H "Authorization: Bearer $SNSOTP_KEY"
Antwort200
{
  "order": { "id": "OT-7K2M9QX4PB", "status": "canceled", "refunded": "0.93" }
}

Bestellstatus

Statuswerte
  • 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.

HTTP-Status und Codes
  • 400missing_filter, bad_jsonEin erforderlicher Wert fehlt oder der Körper kann nicht gelesen werden.
  • 401no_key, bad_keyDer Schlüssel fehlt, ist falsch oder wurde gelöscht.
  • 402no_balanceNicht genug Guthaben für diese Bestellung. Laden Sie Guthaben in der Konsole auf.
  • 404unknown_service, unknown_country, not_sold, not_foundDer Code oder die Bestellung existiert nicht, oder das Paar wird nicht verkauft.
  • 409too_many_open, has_code, not_ready, no_numbersDie Aktion passt nicht zum Bestellstatus, oder gerade ist keine Nummer frei (es wird nichts berechnet).
  • 429rate_limitedMehr als 300 Anfragen pro Minute mit einem Schlüssel.
Fehlerkörper402
{
  "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.

Aktionen
  • getBalance

    ACCESS_BALANCE:42.50

  • getServicesList

    JSON-Liste der Dienste

  • getCountries

    JSON-Karte der Länder

  • getPricesservice, country (optional)

    JSON {country: {service: {cost, count}}}

  • getNumberservice, country

    ACCESS_NUMBER:<id>:<phone>

  • getStatusid

    STATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<code>, STATUS_CANCEL

  • setStatusid, status 1 / 3 / 6 / 8

    ACCESS_READY, ACCESS_RETRY_GET, ACCESS_ACTIVATION, ACCESS_CANCEL

AnfragecURL
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.

OTP-API-Dokumentation: SMS-Verifizierung REST-API | SNSOTP