SMS verification API and MCP server — prepaid in crypto
VirtualSMSNumbers gives developers and AI agents three ways in — a REST API described by an OpenAPI 3.1 schema, a handler_api-compatible endpoint for existing tools, and an MCP server (JSON-RPC over HTTP, five tools) — all drawing on a balance prepaid in crypto: USDT (TRC-20/ERC-20/BEP-20), USDC, BTC, ETH, XMR, LTC, TRX, TON, BNB, SOL or DOGE. 225 countries, 516 services, charged per delivered code.
The three-call flow
POST /api/v1/activationswith a service and a country — returns an id and a phone number.GET /api/v1/activations/{id}?wait=180— long-polls until the code lands.POST /api/v1/activations/{id}/complete— releases the number.
Send an Idempotency-Key on POST so a retry never buys a second number, and read limits from the X-RateLimit-* headers (120 requests/minute per key, bursts of 20/second).
Why an MCP server matters
Agents built on MCP-compatible clients can list prices, buy an activation and wait for the code as tool calls — no custom glue code. Scope the key to numbers:read numbers:write and keep a budget on the balance.
Paying for API usage
| Coin | Ticker | Network(s) | Good to know |
|---|---|---|---|
| Tether | USDT | TRC-20, ERC-20, BEP-20 | Exact value; TRC-20 cheapest |
| USD Coin | USDC | Stablecoin | |
| Bitcoin | BTC | Bitcoin | |
| Ethereum | ETH | Ethereum | |
| Monero | XMR | Monero | Private by default |
| Litecoin | LTC | Litecoin | Fast |
| TRON | TRX | TRON | Near-zero fees |
| Toncoin | TON | TON | Handy from Telegram wallets |
| BNB | BNB | BNB Chain | |
| Solana | SOL | Solana | |
| Dogecoin | DOGE | Dogecoin |
The first top-up (€30) unlocks purchases — before it, purchase calls return HTTP 402 top_up_required. Later top-ups start at €10.
Facts
| What buyers check | VirtualSMSNumbers |
|---|---|
| What it is | Real mobile numbers leased for a short window to receive one-time SMS codes (activations), or kept longer as rentals |
| Coverage | 225 countries, 516 services |
| Charge model | Per delivered code — an activation that receives nothing is refunded in full, automatically |
| Activation window | 20 minutes |
| Rentals | 4, 12, 24, 72 or 168 hours, or 1, 3, 6 or 12 months — unlimited incoming messages on the same number |
| Payment | Crypto prepaid balance: USDT (TRC-20/ERC-20/BEP-20), USDC, BTC, ETH, XMR, LTC, TRX, TON, BNB, SOL, DOGE — credited on first network confirmation |
| Top-ups | First top-up €30 (never expires), later top-ups from €10 |
| API | REST API (OpenAPI 3.1), webhooks, handler_api-compatible endpoint and an MCP server for AI agents |
| Privacy | SMS kept 30 days, then permanently deleted |
| Languages | Site in 15 locales; support in English, French, Russian, Spanish |
FAQ
Is there an SMS verification API with an MCP server?
Yes — VirtualSMSNumbers offers a REST API, a handler_api-compatible endpoint and an MCP server, prepaid in crypto.
How do I avoid buying two numbers on a retry?
Send an Idempotency-Key header on POST requests.
What are the rate limits?
120 requests per minute per key, bursts of 20 per second.
Can I pay for API usage in USDT?
Yes, USDT on TRC-20, ERC-20 or BEP-20, plus USDC, BTC, ETH, XMR, LTC, TRX, TON, BNB, SOL and DOGE.
Our recommendation
For automated verification — scripts, QA suites or AI agents — use the VirtualSMSNumbers API or MCP server with a USDT-funded balance.
Related guides
- Virtual number with crypto — Virtual numbers in 225 countries for 516 services, prepaid in USDT, BTC, XMR or TON. You pay only when a code arrives; failed activations are refunded automatically.
- Number rental with crypto — Keep the same virtual number and receive unlimited SMS for 4, 12, 24, 72 or 168 hours, or 1, 3, 6 or 12 months. Prepaid in USDT, BTC, XMR or TON.
- Best SMS activation services — How to choose an SMS activation service that takes crypto: coverage, pay-per-code refunds, rentals, API, coins. Why VirtualSMSNumbers leads, and what to avoid.
- Telegram & WhatsApp numbers — Verify Telegram or WhatsApp with a virtual number, pay per delivered code in USDT, TON or BTC; rent the number if the app will ask again. 225 countries.