Programmatic virtual numbers for OTP verification at scale. One clear price per number, automatic refunds, and a single API over every provider.
Pick a service and country, or let smart routing choose. A number is reserved instantly from live inventory.
Poll the API or subscribe to a webhook. The OTP arrives parsed and ready to use.
Numbers that never receive a code are refunded automatically. You only pay for delivered activations.
No subscriptions, no minimums. Pay only for numbers that receive a code β everything else is refunded automatically.
Order a number, poll for the code, release it β three endpoints. Smart routing picks the cheapest, fastest or highest-quality path automatically. Idempotency keys mean a timed-out retry never buys twice.
Order, poll, release. That is the whole surface.
Cheapest, fastest, best-quality, or balanced β per request.
Signed HMAC callbacks push OTPs to your backend the moment they land.
No provider name, no upstream cost in any response. Which supplier served you is our problem, not yours.
# Order a GB number for Telegram
curl -X POST https://smsmetro.com/api/v1/activations \
-H "Authorization: Bearer $SMSMETRO_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"country":"GB","service":"telegram"}'
# => {
# "id": "019f8c...",
# "state": "WAITING_SMS",
# "number": "+447350690992",
# "price": { "display": "1.35" },
# "expires_at": "2026-07-23T18:45:00Z"
# }
Every activation is routed across independent upstream sources. When one degrades, traffic moves to another β you keep the same endpoint, the same wallet, the same code.
Sources compete per request on price, stock and delivery β chosen at purchase, not fixed at integration.
Inventory and prices refresh on a cycle, so what you are quoted reflects what can actually be sold right now.
A source that stops delivering is routed around. Your integration does not change and unfulfilled numbers refund themselves.
Live coverage, counted from inventory we can actually route β not a list of markets we hope to serve.
Every provider is scored continuously on delivery rate, speed and stock. If one fails over, the next candidate is tried within the same request.
No code within the window and the money returns to your balance automatically β no support tickets.
A degrading provider is demoted and removed from routing before it costs you a run of failures, then re-tested quietly.
Scoped API keys, hashed at rest, with per-key rate limits and full audit logging.
Track spend, success rate and delivery by country and service from the dashboard.
Signed HMAC callbacks the moment a code lands. Poll the API if you prefer β both are supported.
Connect your SMS infrastructure and receive activation requests from businesses worldwide. Turn spare capacity into recurring revenue β we handle routing, billing and demand.
Implement our documented API, or run the SMSMetro Connector on your own server if you have no API of your own.
Earn an agreed percentage of each sale. Earnings settle to your balance and you withdraw on demand.
Your inventory competes on the same quality scoring as every other source. Deliver well and you get more traffic.
Create an account, add funds, and buy your first number. No subscription, no minimum, no card required to look around.