Skip to content

SMS one-time-password verification

Verification, finished in black.

Tmobverified.com sends one-time codes by SMS and confirms them with a single call. Two endpoints, clear pricing, nothing in between.

From
$0.18
Endpoints
2
Code life
5 min
Setup fee
$0
Messages

Your Tmobverified.com code is 482913. It expires in 5 minutes.

Delivered · mock route · 212 ms

Status: approved

  • BackgroundBlack Iris#080813
  • AccentRoyal Blue#191970
  • PanelsBlackstone#212529

How OTP verification works

Four steps. One code. Zero guesswork.

  1. 01Request

    Your app asks

    Your backend posts a phone number to one endpoint and receives a verification id.

  2. 02Generate

    A code is minted

    A random six-digit one-time code is created, hashed and bound to that id with an expiry.

  3. 03Deliver

    SMS goes out

    The code is sent by SMS. Queued, sent and delivered states stream back as delivery reports.

  4. 04Confirm

    User types it back

    One check call returns approved or denied. You are billed once per verification.

Features

Built like a premium object.

  • Spec 01

    Fast by default

    Messages take the shortest healthy route and every hop is timestamped, so you can see where the milliseconds go.

  • Spec 02

    Brute-force shield

    Per-number, per-IP and per-project rate limits come switched on.

  • Spec 03

    Delivery reports

    Webhook or poll — queued, sent, delivered, failed.

  • Spec 04

    Expiry you control

    Lifetimes from one to thirty minutes. Resends reuse the same verification, so a user who taps “send again” is never billed twice.

  • Spec 05

    Tiny API surface

    Two endpoints, predictable JSON and idempotency keys.

  • Spec 06

    Audit trail

    Every request, attempt and outcome is logged with a trace id, so security reviews stay calm and quick.

Pricing

Pay per verification. That is it.

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
Start on Standard

API

Two calls. Ship today.

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"
}
verify.ts
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

Questions, answered.

What is OTP verification?

A one-time password is a short code sent to a phone number. If the user can type it back, they control that number.

What counts as one verification?

One phone number confirmed through a single verification id, including resends during its lifetime. You are billed once.

Are the messages on this page real?

No. This page runs in mock mode — every code, timestamp and delivery report is simulated.

How do I move from $0.25 to $0.18?

Talk to us about committed volume. Keys, endpoints and payloads stay identical; only the price per verification changes.

How long are phone numbers stored?

Only as long as needed to deliver and check a code. After that they are reduced to a minimal audit record.

Which languages are supported?

Any language that can send HTTPS requests and parse JSON. The sample here uses plain fetch.