Integrate seamless virtual numbers and SMS verification into your platform using our powerful RESTful API.
All API requests require a Bearer token. You can generate and manage your API keys directly from your Developer Dashboard.
Include your key in the Authorization header of every request.
https://numvia.org/api
# Authenticate your requests via cURL curl -H "Authorization: Bearer sk_live_abc123..." \ https://numvia.org/api/v1/numbers
Retrieve a paginated list of all virtual numbers currently available in the global pool.
Filter the returned numbers by country name or ISO2 code (e.g. US, ID, UK).
# Request available US numbers curl -X GET "https://numvia.org/api/v1/numbers?country=US" \ -H "Authorization: Bearer YOUR_API_KEY" # Example Response { "ok": true, "data": [ { "id": 1042, "number": "12025551234", "country_name": "US" } ] }
Assign a specific virtual number to your account to begin receiving OTP codes. Returns a unique claim_id.
The unique ID of the virtual number you wish to claim (retrieved from the List Numbers endpoint).
# Claim number ID 1042 curl -X POST "https://numvia.org/api/v1/numbers/1042/claim" \ -H "Authorization: Bearer YOUR_API_KEY" # Example Response { "ok": true, "message": "Number claimed successfully", "data": { "id": 88, // This is your claim_id "number": "12025551234" } }
Poll this endpoint every 5-10 seconds to retrieve incoming SMS messages and OTP codes for your claimed number.
The claim_id returned when you successfully claimed the number (e.g. 88).
# Fetch messages for claim ID 88 curl -X GET "https://numvia.org/api/v1/numbers/88/messages" \ -H "Authorization: Bearer YOUR_API_KEY" # Example Response { "ok": true, "data": [ { "id": 991, "verification_code": "478-736", "message": "Your WhatsApp code: 478-736", "received_at": "2026-08-24 10:00:00" } ] }
Release a claimed number back to the public pool once your verification is complete.
# Release claim ID 88 curl -X POST "https://numvia.org/api/v1/numbers/88/release" \ -H "Authorization: Bearer YOUR_API_KEY" # Example Response { "ok": true, "message": "Number released successfully" }