SNSOTP OTP API
REST API do weryfikacji SMS. Zamów numer dla jednej z 182 usług w jednym z 154 krajów, odczytaj jednorazowy kod z zamówienia i odzyskaj pełną kwotę, jeśli kod nie przyjdzie w ciągu 20 minut.
Każdy endpoint akceptuje parametry jako parametry zapytania (GET) lub jako pola formularza lub JSON (POST). Odpowiedzi są w formacie JSON; pieniądze są w USD z dwoma miejscami po przecinku, a czasy są w formacie ISO 8601 w UTC.
https://snsotp.com/api/v1
Twój klucz API z konsoli, wysłany jako Authorization: Bearer sok_...
Uwierzytelnianie
Utwórz klucz na stronie API w konsoli. Zaczyna się od sok_ i jest pokazywany tylko raz, więc zapisz go w zmiennej środowiskowej. Zastąpienie klucza natychmiast unieważnia stary klucz. Wywołania do /services, /countries i /prices działają bez klucza.
Authorization: Bearer sok_your_key_here
Klucz może być również wysłany jako parametr zapytania key lub pole formularza, co pomaga narzędziom, które nie mogą ustawiać nagłówków.
Szybki start
Zamów numer, podaj go do aplikacji, a następnie sprawdzaj zamówienie, aż pojawi się kod. Ten sam przepływ w czterech językach:
# 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
Każda usługa z jej kodem i najniższą ceną · bez klucza
Każda usługa, którą możesz zamówić, wraz z jej kodem (użyj go jako service w innych wywołaniach), kategorią i najniższą ceną w różnych krajach. Nie wymaga klucza.
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
Każdy kraj z jego kodem i numerem kierunkowym · bez klucza
Każdy kraj wraz z kodem (ISO 3166 alpha-2 małymi literami, użyj go jako country) i jego kodem wybierania. Nie wymaga klucza.
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
Ceny dla usługi, kraju lub obu · bez klucza
Cena za zamówienie dla jednej usługi w każdym kraju, jeden kraj dla każdej usługi lub jedna para. Wyślij przynajmniej jeden filtr. Nie wymaga klucza.
Parametry
servicestring
Kod usługi, na przykład whatsapp
countrystring
Kod kraju, na przykład us
curl "https://snsotp.com/api/v1/prices?service=whatsapp&country=us"
{
"prices": [
{ "service": "whatsapp", "country": "us", "price": "0.93" }
]
}GET/balance
Twoje saldo w USD · wymagany klucz
Twoje saldo w USD.
curl https://snsotp.com/api/v1/balance \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"balance": "42.50",
"currency": "USD"
}POST/orders
Zamów numer dla usługi i kraju · wymagany klucz
Zamawia numer i pobiera jego cenę. Odpowiedź zawiera numer w pełnej formie (phone) i bez kodu wybierania (number). Zamówienie pozostaje otwarte przez 20 minut; jeśli w tym czasie nie pojawi się kod, cena automatycznie wraca na Twoje saldo. Status odpowiedzi 201.
Parametry
servicestringwymagane
Kod usługi z GET /services
countrystringwymagane
Kod kraju z 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, kod i treść SMS dla jednego zamówienia · wymagany klucz
Jedno zamówienie z jego statusem, najnowszym kodem, najnowszym tekstem SMS i każdym otrzymanym dotąd kodem. Sprawdzaj co 3 do 5 sekund, gdy status to waiting.
Parametry
idpathwymagane
ID zamówienia z 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
Twoje otwarte zamówienia (lub wszystkie z status=all) · wymagany klucz
Twoje otwarte zamówienia, od najnowszych. Dodaj status=all, aby zobaczyć ostatnie zamówienia w każdym statusie.
Parametry
statusstring
open (domyślnie) lub all
limitnumber
1 do 100, domyślnie 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
Kolejny kod na tym samym numerze · wymagany klucz
Prosi o kolejny kod na tym samym numerze po pierwszym kodzie, w ramach okna, bez dodatkowych kosztów. Następnie wywołaj nowy SMS w aplikacji; waiting_for_resend jest prawdziwe, aż przyjdzie.
Parametry
idpathwymagane
ID zamówienia
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
Zamknij zamówienie po użyciu kodu · wymagany klucz
Zamyka zamówienie, które otrzymało kod, gdy już go użyłeś. Zakończenie jest opcjonalne: otwarte zamówienia zamykają się same, gdy kończy się okno.
Parametry
idpathwymagane
ID zamówienia
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
Anuluj przed otrzymaniem kodu, pełny zwrot · wymagany klucz
Anuluje zamówienie przed otrzymaniem kodu i natychmiast zwraca pełną kwotę na Twoje saldo. Po otrzymaniu kodu, anulowanie zwraca has_code.
Parametry
idpathwymagane
ID zamówienia
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" }
}Status zamówienia
waitingNumer jest gotowy i żaden SMS jeszcze nie przybył. Anulowanie jest możliwe.receivedPrzynajmniej jeden kod przybył. code i sms zawierają najnowszy.finishedZamknięte po otrzymaniu kodu, przez finish lub gdy okno się zakończyło.refundedŻaden kod nie przybył w ciągu 20 minut. Pełna kwota wróciła na Twoje saldo.canceledAnulowane przed otrzymaniem kodu. Pełna kwota wróciła na Twoje saldo.
Błędy
Błędy używają statusu HTTP i ciała ze stabilnym kodem i czytelną wiadomością.
- 400
missing_filter, bad_jsonBrak wymaganej wartości lub ciało nie może zostać odczytane. - 401
no_key, bad_keyKlucz jest brakujący, błędny lub usunięty. - 402
no_balanceNiewystarczające saldo na to zamówienie. Doładuj saldo w konsoli. - 404
unknown_service, unknown_country, not_sold, not_foundKod lub zamówienie nie istnieje, lub para nie jest sprzedawana. - 409
too_many_open, has_code, not_ready, no_numbersAkcja nie pasuje do stanu zamówienia lub żaden numer nie jest dostępny w tej chwili (nic nie jest pobierane). - 429
rate_limitedWięcej niż 300 żądań w ciągu minuty z jednym kluczem.
{
"error": {
"code": "no_balance",
"message": "Not enough credit. Add credit in the console."
}
}Limity szybkości
- 300 żądań na minutę na klucz. Powyżej tego API odpowiada 429 rate_limited przez resztę minuty.
- Maksymalnie 20 otwartych zamówień na konto. Zakończ lub anuluj jedno, aby otworzyć kolejne.
- Sprawdzaj zamówienie co 3 do 5 sekund; kody zazwyczaj przychodzą w ciągu minuty.
Format aktywacji SMS
Skrypty napisane dla wspólnego formatu handler_api.php działają z tym samym kluczem API: zmień podstawowy adres na https://snsotp.com/stubs/handler_api.php i zachowaj akcje. Kody usług i krajów są takie same jak w REST API.
getBalanceACCESS_BALANCE:42.50
getServicesListLista usług w formacie JSON
getCountriesMapa krajów w formacie JSON
getPricesservice, country (opcjonalnie)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
wartości setStatus: 1 gotowy, 3 kolejny kod, 6 zakończ, 8 anuluj z pełnym zwrotem.