SMS verification API
Buy real non-VoIP numbers and receive verification codes from your own code, or let an AI agent do it through our MCP server.
REST API
JSON over HTTPS with a Bearer API key. Buy numbers, read messages, and reuse, renew, convert or flag numbers from your own code.
Webhooks
Get a POST the moment an SMS arrives, plus events when a number is purchased, flagged, reused or renewed, or when a message is blocked.
MCP server
Let AI agents in Claude Code, Cursor, VS Code, Codex, Windsurf or Cline manage numbers through 13 tools.
Short- and long-term numbers
20-minute numbers for one-off codes (keep an eligible US or UK one for 30 days), 3- to 30-day rentals, and All Services plans you can renew once or set to auto-renew.
13 countries
US and UK numbers for specific services, short- or long-term; 20-minute numbers in ten more countries; and All Services plans in six.
Postman collection
Import the ready-made collection and make your first authenticated call in minutes.
Download the collection
Quick start
From sign-up to your first verification code in four steps.
Create an API key
Sign up for free, open Settings → API keys and create a key. Send it in the Authorization header with every request.
Authorization: Bearer API-xxxxx...Find the service you need
List every service you can order, with its ID, country and price.
curl -X GET "https://prod-v3.pvadeals.com/v3/api/services/all" \ -H "Authorization: Bearer API-xxxxx..."Buy a number
Pass the service ID to purchase a short-term number. The cost comes from your credit balance.
curl -X POST "https://prod-v3.pvadeals.com/v3/api/purchase" \ -H "Authorization: Bearer API-xxxxx..." \ -H "Content-Type: application/json" \ -d '{"services": [{"serviceId": "697139f7fe5460ddc2f27214"}]}'Receive the code
Set a webhook URL in the dashboard or with POST /v3/api/webhook, and we send each SMS to you as it arrives. Or check the number with GET /v3/api/request/{id}, no more than once every 5 seconds.
{ "event": "sms_received", "timestamp": "2026-01-28T22:57:35.001Z", "requestId": "697a90d25ef1873ef44f48bc", "serviceId": "697139f7fe5460ddc2f27214", "number": "+13130001234", "message": "Your Airbnb verification code is 2200." }
Give your AI agent a phone number
Connect any MCP client to our server with your API key, and your agent can check your balance, find a service, buy a number and read the code, all from a chat.
https://prod-v3.pvadeals.com/mcp
Authorization: Bearer API-YOUR_KEY_HERETry: Buy one number for this service. Ask me before purchasing.
get_balanceCheck your credit balancelist_servicesList available servicesget_serviceGet one service by IDget_inventorySee which US states have numbers for a servicepurchase_numberBuy a short-term numberpurchase_ltr_numberBuy a long-term or All Services numbercheck_smsRead the messages and codes on a numberlist_active_numbersList your active numbersflag_numberFlag a number for reviewconvert_to_ltrKeep a 20-minute number for 30 daysget_webhookShow your webhook settingsset_webhook_urlSet or change your webhook URLclear_webhookRemove your webhook URL
Rate limits
Two layers of limits keep the platform fast for everyone. A 429 response tells you when to retry.
- All /v3/api/* requests, per IP
- 300 requests per 60 seconds
- Purchases, per IP
- 60 requests per 60 seconds
- Purchases, per account
- One at a time: a purchase sent while another is still running gets 429 with a short Retry-After
- Each endpoint, per API key
- Its own cap, for example 2 per 5 minutes for /services/all
- Stock checks (/inventory), per API key
- Each service once every 5 minutes, 10 checks per 5 minutes in total
Frequently asked questions
How do I get an API key?
How are API purchases paid for?
Which countries can I order through the API?
Can I keep a 20-minute number longer through the API?
Can a long-term number renew by itself?
Can an AI agent buy numbers by itself?
Ready for your first number?
Creating an account is free. Add credits from $3 and start receiving SMS codes.

