SMS Verification API Documentation

Integrate product lookup, SMS verification orders, code retrieval, renewals, callbacks, and account balance endpoints.

The NonVoipUsNumber API lets authorized customers list current rental products, place supported orders, and retrieve incoming SMS from their own server. For a plain-language comparison of mobile, rental, and VoIP options, read what a non-VoIP US number means.

Documentation reviewed August 27, 2026.

SMS verification API integration workflow

Use a generated API key for new integrations. Keep it on your server, send it in an authorization header, and never place it in browser code or a public repository.

1. Create an API key

Sign in, open Profile & integrations, generate a key, and store it in your server's secret manager or environment.

2. List products

Call POST /api/products and use the returned product_id, price, category, and availability. Do not guess or hard-code old IDs.

3. Order and receive SMS

Call POST /api/order, retain the returned order_id, then poll /api/getsms or register a callback URL.

TaskEndpointImportant response data
Check balancePOST /api/balancebalance
List productsPOST /api/productsproduct_id, price, available
Place an orderPOST /api/orderorder_id, number, expiration
Read the latest SMSPOST /api/getsmssms, pin, status
Register a callbackPOST /api/saveurlsaved callback URL and status

Quick-start examples

Each example lists current short-term products. Set NONVOIP_API_KEY securely on your server before running it.

cURL
curl --request POST \
  --url https://nonvoipusnumber.com/manager/api/products \
  --header "Authorization: Bearer $NONVOIP_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"type":"short_term"}'
PHP
<?php
$apiKey = getenv('NONVOIP_API_KEY');
$request = curl_init('https://nonvoipusnumber.com/manager/api/products');
curl_setopt_array($request, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['type' => 'short_term']),
]);
$response = curl_exec($request);
Python
import os
import requests

response = requests.post(
    "https://nonvoipusnumber.com/manager/api/products",
    headers={
        "Authorization": f"Bearer {os.environ['NONVOIP_API_KEY']}"
    },
    json={"type": "short_term"},
    timeout=30,
)
response.raise_for_status()
print(response.json())
Node.js
const response = await fetch(
  'https://nonvoipusnumber.com/manager/api/products',
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.NONVOIP_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ type: 'short_term' })
  }
);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());

Callbacks, errors, and production readiness

Register an HTTPS callback with POST /api/saveurl and a JSON body such as { "url": "https://client.example/webhook" }. The same URL receives incoming SMS, premium bid, and product_price events.

  • Handle documented 400, 404, and 429 responses instead of retrying every failure immediately.
  • Read X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset on authenticated responses.
  • Use order_id for later order actions and log provider responses without logging your API key.

For every request and schema, use the OpenAPI JSON or interactive Swagger documentation. Compare public pricing and review the FAQ for service guidance.

Free standalone reseller portal

Launch your own white-label reseller website

A ready-to-install reseller application is available for customers who want a branded website powered by the NonVoIP API. It runs separately on your own domain and includes customer accounts, local balances, configurable markup, ordering, callbacks, realtime status updates, and optional Cryptomus deposits.

Use your own authorized API account. API and payment credentials stay securely on your server.

Copy and paste this command into your server terminal
curl -fsSL https://raw.githubusercontent.com/rakibur01/nonvoip-reseller/main/deploy/bootstrap.sh | sudo bash

The installer detects Ubuntu 24.04 or AlmaLinux 9 and AMD64 or ARM64, verifies the downloaded release, then offers guided terminal installation or a protected configuration-file workflow.