SMS verification API

Rent non-VOIP US numbers and fetch verification codes from your own code. Two endpoints get you a number and a code; webhooks handle the rest. Same pricing as the dashboard, billed from your wallet.

Start a verification
# Rent a number and start a verification
curl https://api.fetchsms.com/v1/verifications \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service": "whatsapp"}'

# → { "id": "9f3e1c2a-…", "status": "waiting",
#     "number": "(332) 555-0184", "code": null }
Fetch the code
# Poll until the code lands (or receive it by webhook)
curl https://api.fetchsms.com/v1/verifications/9f3e1c2a-… \
  -H "Authorization: Bearer YOUR_API_KEY"

# → { "id": "9f3e1c2a-…", "status": "received", "code": "482910" }

REST, predictable JSON

Create verifications and rentals, list services and live prices, and read your wallet — all over plain REST with JSON responses and standard status codes.

Bearer-key auth

Authenticate with an API key as a bearer token. Keys are created in the dashboard, stored only as SHA-256 hashes, and scoped to your account.

Real-time webhooks

Skip polling: register a webhook and we push an event the moment a code arrives or a rental expires.

Wallet-based billing

Every call draws from your wallet balance — pay-as-you-go, no per-seat fees. Top up with card or crypto.

API FAQ

How do I authenticate with the API?
Send your API key as a bearer token: "Authorization: Bearer YOUR_API_KEY". Keys are created in your dashboard and stored only as SHA-256 hashes.
Do I poll for the code, or can I use webhooks?
Both. You can poll the verification by ID until its status is "received", or register a webhook to be notified the instant a code arrives — no polling needed.
What does the API cost?
The same as the dashboard: you pay per verification or rental from your wallet balance, starting at $0.10. There is no separate API fee or subscription.
Can I rent long-term numbers through the API?
Yes. The API exposes both short-term verifications (a single code in a 15-minute window) and 1–365 day rentals that receive unlimited codes.

Full endpoint reference, error codes, and webhook payloads are in the API documentation.