OTP API and SMS verification for developers
Order a number for 182 services in 154 countries with one request, then read the one-time code as JSON. No code in 20 minutes means the full price comes back to your credit. Prices start at $0.01.
# 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"- Fixed price per service and country
- Full refund without a code
- REST API and SMS activation format
- 300 requests per minute
- Crypto checkout
Then the code comes back
Every open order sits in your console and in GET /orders with a countdown. The code is pulled out of the SMS and returned as its own field, next to the full message text.
- Most codes show up within a minute of the app sending them.
- No SMS within 20 minutes? The order is refunded to your credit.
- Past orders stay in your history with their codes and prices.
Open orders
Console| Number | Status | Code | Expires |
|---|---|---|---|
| Received | 284913 | 17:41 | |
| Waiting | Waiting for SMS | 19:58 |
Showing 1 to 2 of 2 entries
Developer API
Ten endpoints, one flow
Base address https://snsotp.com/api/v1. Catalog calls need no key; orders use your key as a bearer token.
- GET/servicesEvery service with its code and lowest price
- GET/countriesEvery country with its code and dial code
- GET/pricesPrices for a service, a country or both
- GET/balanceYour credit in USD
- POST/ordersOrder a number for a service and a country
- GET/orders/{id}Status, code and SMS text of one order
- GET/ordersYour open orders (or all with status=all)
- POST/orders/{id}/resendAnother code on the same number
- POST/orders/{id}/finishClose an order after you used the code
- POST/orders/{id}/cancelCancel before a code, full refund
{
"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"
}
}182
Services
154
Countries
OTP testing
Test sign-up, login and two-factor flows end to end without staff phones or a personal number.
QA automation
Order a number, wait for the code and finish the flow inside your CI job or test runner, all over HTTP.
Keep your number private
Receive a one-time SMS on a dedicated number instead of handing your own line to a site.
Developers
A documented JSON API with plain status values, clear errors and code samples in four languages.
Estimate your price
See published pricing before you create an account.
Configure order
Step 1: Choose the OTP source
Tell us which service sends the code, so the number you get can receive it.
Step 2: Select a country
Pick the country the account needs. The number and its dial code come from that country.
Step 3: Place your order
Press Buy in the console or call POST /orders. The code shows within the 20 minute window, or the price comes back.
- Register
Popular services
Lowest price per order across all countries. Open a service for its full price list.
Features of SNSOTP
SMS Verification API
A documented REST API for ordering numbers and reading inbound OTP messages. The code comes back as its own field, ready to use.
20 minute code window
Every order stays open for 20 minutes. No SMS in that time means the full price returns to your credit by itself.
Another code at no cost
Need a second SMS on the same number inside the window? Call resend and ask the app again. Nothing extra is charged.
$ curl "snsotp.com/stubs/handler_api.php?api_key=$KEY\
&action=getNumber&service=telegram&country=gb"
ACCESS_NUMBER:OT-3QF8ZK2W7M:447700900182
$ curl "...&action=getStatus&id=OT-3QF8ZK2W7M"
STATUS_OK:51927420 min
Code window
300/min
Requests per key
Questions developers ask
What is an OTP API?+
An API that gives your code a phone number on request and returns the one-time password (OTP) that an app sends to it by SMS. With SNSOTP you call POST /orders with a service and a country, then read the code from GET /orders/{id}.
How fast does the code arrive?+
Usually within a minute after the app sends the SMS. Poll the order every 3 to 5 seconds, or keep the console inbox open: it refreshes by itself.
What happens if no code arrives?+
If no SMS arrives in 20 minutes, the order closes and the full price returns to your credit by itself. You can also cancel earlier with POST /orders/{id}/cancel for a full refund as long as no code has arrived.
Can I get a second code on the same number?+
Yes. After the first code, call POST /orders/{id}/resend (or press Another code in the console) and ask the app for a new SMS. It arrives on the same number inside the window at no extra cost.
Which apps and countries can I use?+
182 services in 154 countries, from WhatsApp, Telegram and Google to OpenAI, Amazon and Uber. For a service that is not listed, order Any other app: every SMS sent to the number in the window is returned.
Pay with crypto, use it for every order
Add credit through the checkout with USDT, USDC, BTC, ETH, BNB, SOL or LTC. Credit does not expire, and refunds for orders without a code go straight back to it.
Create an accountAdd credit
As in the consoleAmount
Payment method
- Minimum top-up $30. First top-up bonus from $100.
- Credited after the network confirms the payment.
- Orders without a code are refunded to your credit.