Fast SMS OTP FAST SMS OTP
Currency USD ($)

Log in Get Started Free
RESTful Developer API v1.0

Developer API Docs

Programmatically procure numbers, retrieve real-time SMS OTP codes, check live balances, and automate activation flows at scale.

Quickstart & Base Endpoint

v1.0

All requests to the Fast SMS OTP REST API are transmitted over HTTPS. Responses are formatted in JSON with standard HTTP response status codes.

Base URL
https://novatixsolution.com/api/v1

Authentication

Authenticate your requests using your secret API Key. You can generate and view your API key in your API Credentials page. We support three convenient authentication formats:

Recommended
Bearer Header

Authorization: Bearer YOUR_API_KEY

Header
X-API-KEY Header

X-API-KEY: YOUR_API_KEY

Query String
URL Parameter

?api_key=YOUR_API_KEY

Standard HTTP Headers
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
GET

/balance

Retrieve your account balance and currency details.

bash / curl
curl -s -X GET "https://novatixsolution.com/api/v1/balance" \
  -H "Authorization: Bearer YOUR_API_KEY"
PHP
<?php
$ch = curl_init("https://novatixsolution.com/api/v1/balance");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = json_decode(curl_exec($ch), true);
echo "Balance: $" . $res['balance'];
curl_close($ch);
Python 3
import requests

headers = {"Authorization": "Bearer YOUR_API_KEY"}
res = requests.get("https://novatixsolution.com/api/v1/balance", headers=headers).json()
print("Balance:", res.get("balance"))
Sample 200 OK Response:
application/json
{
  "status": "success",
  "data": {
    "balance": 24.50,
    "currency": "USD",
    "user_id": 1420
  }
}
GET

/services/list

Retrieve all available SMS verification services and their service codes.

cURL Request
curl -s -X GET "https://novatixsolution.com/api/v1/services/list"
Sample 200 OK Response:
application/json
{
  "status": "1",
  "msg": "Services retrieved",
  "data": [
    { "id": 1, "name": "WhatsApp", "slug": "whatsapp" },
    { "id": 2, "name": "Telegram", "slug": "telegram" },
    { "id": 3, "name": "Google", "slug": "google" }
  ]
}
GET

/countries/list

Retrieve all supported countries with their numeric country IDs.

cURL Request
curl -s -X GET "https://novatixsolution.com/api/v1/countries/list"
Sample 200 OK Response:
application/json
{
  "status": "1",
  "msg": "Countries retrieved",
  "data": [
    { "id": 4, "name": "India", "code": "in" },
    { "id": 187, "name": "USA", "code": "us" },
    { "id": 12, "name": "Indonesia", "code": "id" }
  ]
}
POST

/orders/create

Request and allocate a temporary virtual phone number for a specific service and country.

Request Parameters:
Field Type Required Description
service_id string Required Service code or slug (e.g., wa or whatsapp, tg or telegram).
country_id integer Required Numeric country ID (e.g., 4 for India, 187 for USA, 12 for Indonesia).
server string Optional SMS Server route (e.g., server-1 or server-2). If omitted, optimal server is auto-routed.
cURL Request
curl -s -X POST "https://novatixsolution.com/api/v1/orders/create" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service_id": "wa",
    "country_id": 187
  }'
Sample 200 OK Response:
application/json
{
  "status": "success",
  "data": {
    "order_id": 98142,
    "phone_number": "+12025550198",
    "country_code": "US",
    "cost": 0.45,
    "status": "pending",
    "expires_at": "2026-09-07T15:45:00Z"
  }
}
GET

/orders/status

Poll for the incoming SMS verification code associated with an active order ID.

cURL Request
curl -s -X GET "https://novatixsolution.com/api/v1/orders/status?order_id=98142" \
  -H "Authorization: Bearer YOUR_API_KEY"
Sample 200 OK Response (Code Received):
application/json
{
  "status": "success",
  "data": {
    "order_id": 98142,
    "status": "received",
    "sms_code": "489201",
    "full_sms": "Your WhatsApp verification code is 489-201. Do not share this code.",
    "received_at": "2026-09-07T15:32:11Z"
  }
}
POST

/orders/cancel

Cancel a pending order and release the number. Eligible orders are immediately refunded to your account balance.

Request Parameters:
Field Type Required Description
order_id integer / string Required Numeric ID or string Order ID (e.g., 98142 or ORD-147CF9C7C0F967E2).
cURL Request
curl -s -X POST "https://novatixsolution.com/api/v1/orders/cancel" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "order_id": 98142
  }'
Sample 200 OK Response:
application/json
{
  "status": "1",
  "msg": "Order cancelled successfully and balance refunded",
  "data": {
    "order_id": 98142,
    "status": "cancelled",
    "refunded_amount": 0.45,
    "balance": 24.50
  }
}

Error Codes

The API uses standard HTTP error codes to indicate failure reasons.

HTTP Status Error Code Description
401 UNAUTHORIZED Invalid or missing API key in the Authorization header.
402 INSUFFICIENT_BALANCE Your account balance is insufficient to complete the order. Top up balance.
404 NO_NUMBERS_AVAILABLE No virtual numbers are currently available for this service/country pair. Try another country.
429 RATE_LIMIT_EXCEEDED Too many requests sent within 60 seconds. Implement exponential backoff.
Contact Us