Plan 01 · Pay as you go
Standard
$0.25per verification
10,000 verifications ≈ $2,500
- No monthly minimum
- Delivery reports + webhooks
- Rate limiting included
- Email support
SMS one-time-password verification
Tmobverified.com sends one-time codes by SMS and confirms them with a single call. Two endpoints, clear pricing, nothing in between.
Your Tmobverified.com code is 482913. It expires in 5 minutes.
Status: approved
How OTP verification works
01Request
Your backend posts a phone number to one endpoint and receives a verification id.
02Generate
A random six-digit one-time code is created, hashed and bound to that id with an expiry.
03Deliver
The code is sent by SMS. Queued, sent and delivered states stream back as delivery reports.
04Confirm
One check call returns approved or denied. You are billed once per verification.
Features
Messages take the shortest healthy route and every hop is timestamped, so you can see where the milliseconds go.
Per-number, per-IP and per-project rate limits come switched on.
Webhook or poll — queued, sent, delivered, failed.
Lifetimes from one to thirty minutes. Resends reuse the same verification, so a user who taps “send again” is never billed twice.
Two endpoints, predictable JSON and idempotency keys.
Every request, attempt and outcome is logged with a trace id, so security reviews stay calm and quick.
Pricing
Plan 01 · Pay as you go
$0.25per verification
10,000 verifications ≈ $2,500
Plan 02 · Committed volume
$0.18per verification
10,000 verifications ≈ $1,800
API
Create a verification, then check the code your user typed. Same keys, endpoints and JSON on every plan.
Response · 200 OK
{
"id": "ver_8f2c",
"status": "approved",
"channel": "sms",
"price": "0.25",
"mode": "mock"
}const API = 'https://api.tmobverified.com/v1';
const headers = { Authorization: 'Bearer ***', 'Content-Type': 'application/json' };
// 1 — create a verification
const res = await fetch(`${API}/verifications`, {
method: 'POST',
headers,
body: JSON.stringify({ phone: '+15555550123', channel: 'sms' }),
});
const { id } = await res.json(); // "ver_8f2c"
// 2 — check the code your user typed
const check = await fetch(`${API}/verifications/${id}/check`, {
method: 'POST',
headers,
body: JSON.stringify({ code: '482913' }),
});
const { status } = await check.json(); // "approved"FAQ
A one-time password is a short code sent to a phone number. If the user can type it back, they control that number.
One phone number confirmed through a single verification id, including resends during its lifetime. You are billed once.
No. This page runs in mock mode — every code, timestamp and delivery report is simulated.
Talk to us about committed volume. Keys, endpoints and payloads stay identical; only the price per verification changes.
Only as long as needed to deliver and check a code. After that they are reduced to a minimal audit record.
Any language that can send HTTPS requests and parse JSON. The sample here uses plain fetch.