Real Non-VoIP USA Number API Documentation

Integrate NonVoipOtp SMS verification and instant OTP across 204 countries

The NonVoipOtp REST API lets you automate phone verification using our platform inventory. All charges are deducted from your NonVoipOtp wallet. Obtain your API key from the dashboard API Key page after logging in.

Authentication

Every request must include your API key using one of the following methods:

curl -X GET "https://nonvoipotp.com/api/v1/balance/" \ -H "Authorization: Bearer YOUR_API_KEY"

Invalid or missing keys receive 401 Unauthorized.

For POST requests (/buy/, /renew/, /cancel/), use the Authorization: Bearer header, or append ?api_key=YOUR_API_KEY to the request URL.

Getting your API key

After logging in, open API Key in the dashboard sidebar. Your key is created automatically on first visit. Copy it from that page and use it in API requests. The same wallet balance shown in the dashboard is used for API purchases.

Quick start

  1. Call GET /api/v1/services/?type=usa1 (or usa2 / usa3 / global / longterm) and pick an id.
  2. Call POST /api/v1/buy/ with that service_id and the same type.
  3. Poll GET /api/v1/sms/?order_id=… until status is received (use the code field for the OTP).
  4. Optional: POST /api/v1/renew/ for another SMS on the same short-term number, or POST /api/v1/cancel/ to refund a pending order.

Integration notes

Pricing (Temp Number USA-1)

Public prices match the pricing page and dashboard Temp Number USA-1 rates. Live data is loaded from our pricing API: /pricing/api/usa1/

ServicePrice (USD)
009ibbq $0.50
10-4 Wex $0.50
101plus $0.50
101Sweets $0.50
163СOM $0.03
1688 $1.72
1q $0.30
1StopMove $0.50
1xbet $1.72
24betting $0.03
25Clicks $0.50
2domains $1.72
2Number $0.50
2redbeans $0.30
32Red $1.72

Showing up to 15 services. Use GET /api/v1/services/?type=usa1 for the full list with API purchase IDs.

Service types

typeDescription
usa1Temp Number USA-1 (full dashboard catalog)
usa2Temp Number USA-2
usa3Temp Number USA-3
globalGlobal Temp Number — requires country (Server-1 / Server-2 / Server-3 rows)
longtermLong Term USA — use product=usa-1d|usa-3d|usa-7d|usa-14d|usa-30d
dedicatedDedicated / private-line numbers

Endpoints

GET /api/v1/balance/

Returns your NonVoipOtp wallet balance.

curl -X GET "https://nonvoipotp.com/api/v1/balance/" \ -H "Authorization: Bearer YOUR_API_KEY"

Example response:

{ "balance": "8.56", "currency": "USD" }

GET /api/v1/services/

List available services and prices for a product line.

ParameterRequiredDescription
typeYesusa1, usa2, usa3, global, longterm, or dedicated
countryFor globalCountry name (e.g. Germany) when type=global
productFor longtermusa-1d, usa-3d, usa-7d, usa-14d, or usa-30d
qNoOptional name/code search filter
page / limitNoOptional pagination (default response remains a full array)
curl -X GET "https://nonvoipotp.com/api/v1/services/?type=usa1" \ -H "Authorization: Bearer YOUR_API_KEY" curl -X GET "https://nonvoipotp.com/api/v1/services/?type=usa3" \ -H "Authorization: Bearer YOUR_API_KEY" curl -X GET "https://nonvoipotp.com/api/v1/services/?type=global&country=Germany" \ -H "Authorization: Bearer YOUR_API_KEY" curl -X GET "https://nonvoipotp.com/api/v1/services/?type=longterm&product=usa-1d" \ -H "Authorization: Bearer YOUR_API_KEY" curl -X GET "https://nonvoipotp.com/api/v1/services/?type=dedicated" \ -H "Authorization: Bearer YOUR_API_KEY" curl -X GET "https://nonvoipotp.com/api/v1/services/?type=usa1&page=1&limit=100" \ -H "Authorization: Bearer YOUR_API_KEY"

Example response:

[ {"id": 1, "name": "WhatsApp", "price": "1.76", "service_code": "wa", "server": 1}, {"id": 2, "name": "WhatsApp (Server-2)", "price": "1.20", "service_code": "wa", "server": 2}, {"id": 3, "name": "Telegram (Server-3)", "price": "0.90", "service_code": "hero:tg", "server": 3} ]

Use the id from this list as service_id when buying a number.

POST /api/v1/buy/

Purchase a verification number. Funds are charged from your wallet immediately.

FieldRequiredDescription
service_idYesID from /services/ response
typeYesusa1, usa2, usa3, global, longterm, or dedicated
countryFor globalCountry name when type=global
productFor longtermDuration product id (e.g. usa-1d)
area_codeNoUS state code or Random Location (usa1/usa2/usa3)
curl -X POST "https://nonvoipotp.com/api/v1/buy/" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"service_id": 1, "type": "usa1", "area_code": "Random Location"}' curl -X POST "https://nonvoipotp.com/api/v1/buy/" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"service_id": 1, "type": "usa3"}' curl -X POST "https://nonvoipotp.com/api/v1/buy/" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"service_id": 5, "type": "global", "country": "Germany"}' curl -X POST "https://nonvoipotp.com/api/v1/buy/" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"service_id": 1, "type": "longterm", "product": "usa-1d"}'

Example response:

{ "order_id": "42", "number": "+1234567890", "status": "pending", "balance": "7.80" }

GET /api/v1/sms/

Poll for the SMS verification code. Returns both raw code digits and a formatted sms string.

ParameterRequiredDescription
order_idYesOrder ID from /buy/
curl -X GET "https://nonvoipotp.com/api/v1/sms/?order_id=42" \ -H "Authorization: Bearer YOUR_API_KEY"

Example response:

{ "order_id": "42", "code": "123456", "sms": "Your code is 123456", "status": "received" }

GET /api/v1/status/

Check order status (includes code when SMS already arrived).

curl -X GET "https://nonvoipotp.com/api/v1/status/?order_id=42" \ -H "Authorization: Bearer YOUR_API_KEY"

Example response:

{ "order_id": "42", "status": "pending", "number": "+1234567890", "code": "" }

Status values: pending, received, cancelled, timeout.

POST /api/v1/renew/

Request another SMS on the same short-term number after the first OTP (USA-1 / USA-2 / USA-3 when renew is available). Charges the original sell price again.

curl -X POST "https://nonvoipotp.com/api/v1/renew/" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"order_id": "42"}'

Example response:

{ "order_id": "42", "number": "+1234567890", "status": "pending", "renewed": true, "balance": "7.20" }

POST /api/v1/cancel/

Cancel a pending order. Refund is credited to your wallet when no SMS was received.

curl -X POST "https://nonvoipotp.com/api/v1/cancel/" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"order_id": "42"}'

Example response:

{ "status": "cancelled", "refund": "0.50", "balance": "8.30" }

Response codes

CodeMeaning
200Success
400Bad Request
401Unauthorized
404Not Found
500Server Error