SMS Phone Verification API

Verify phone numbers
via SMS code

Send a 6-digit verification code to any US phone number. Your users enter the code, you confirm it through our API. Simple, secure, done.

Terminal
$ curl -X POST -H "Authorization: Bearer rk_..." \
  -d '{"phone": "(555) 123-4567"}' \
  "https://api.verified.fast/v1/sms/send"

# → 201 {"session_id": "a1b2c3d4-...", "status": "pending"}

How it works

Three API calls. That's it.

STEP 01

Send verification code

POST to /v1/sms/send with the phone number. We send a 6-digit code via SMS from (888) 374-3977.

STEP 02

User enters code

Your user receives the SMS and enters the 6-digit code in your app. They have 10 minutes and 5 attempts.

STEP 03

Verify the code

POST the code to /v1/sms/verify/{session_id}. Get a verified: true response. 10 credits deducted on success.

Built for security

Enterprise-grade phone verification with sensible defaults.

6-Digit OTP

Cryptographically random codes. SHA-256 hashed before storage. Never stored in plaintext.

Configurable Expiry

Default 10 minutes, configurable from 1 to 30 minutes per session via the expires_in parameter.

Rate Limiting

Max 10 SMS per phone per hour. Max 5 code attempts per session. Max 3 resends per session.

Resend Support

Built-in resend endpoint generates a new code without creating a new session. Up to 3 resends.

Reference Tracking

Attach a reference_id to each session for easy mapping back to your user records and workflows.

Session Management

List, inspect, and cancel sessions via API. Full audit trail with timestamps and attempt counts.

Complete integration example

Send, verify, and handle errors. Copy-paste ready.

Step 1: Send CodePOST
curl -X POST \
  -H "Authorization: Bearer rk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"phone": "(555) 123-4567"}' \
  https://api.verified.fast/v1/sms/send

# Response (201):
{
  "session_id": "a1b2c3d4-e5f6-...",
  "phone": "+1***4567",
  "expires_at": "2026-03-04T12:10:00Z",
  "status": "pending"
}
Step 2: Verify CodePOST
curl -X POST \
  -H "Authorization: Bearer rk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"code": "482916"}' \
  https://api.verified.fast/v1/sms/verify/a1b2c3d4-e5f6-...

# Response (200):
{
  "verified": true,
  "session_id": "a1b2c3d4-e5f6-...",
  "phone": "+1***4567",
  "verified_at": "2026-03-04T12:03:42Z"
}

10 credits per verified phone

Credits are only deducted when the code is successfully verified. Sending the code is free. Failed attempts don't cost anything.

Buy Credits

API Endpoints

Three endpoints cover the full verification lifecycle.

POST
/v1/sms/send

Send a verification code to a phone number

{ "phone": "string", "reference_id?": "string", "expires_in?": "number (seconds)" }

POST
/v1/sms/verify/{session_id}

Submit the code for verification (10 credits on success)

{ "code": "string (6 digits)" }

POST
/v1/sms/verify/{session_id}/resend

Resend a new code to the same phone (max 3 per session)

No body required

GET
/v1/sms/verify/{session_id}

Check session status without submitting a code

DELETE
/v1/sms/verify/{session_id}

Cancel a pending session

GET
/v1/sms/send

List recent SMS sessions for your API key

Add phone verification today

Works with your existing VerifiedFast API key. Same dashboard, same billing. 10 credits per verification.

Get Your API Key