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.0All requests to the Fast SMS OTP REST API are transmitted over HTTPS. Responses are formatted in JSON with standard HTTP response status codes.
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:
Bearer Header
Authorization: Bearer YOUR_API_KEY
X-API-KEY Header
X-API-KEY: YOUR_API_KEY
URL Parameter
?api_key=YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
/balance
Retrieve your account balance and currency details.
curl -s -X GET "https://novatixsolution.com/api/v1/balance" \
-H "Authorization: Bearer YOUR_API_KEY"
<?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);
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:
{
"status": "success",
"data": {
"balance": 24.50,
"currency": "USD",
"user_id": 1420
}
}
/services/list
Retrieve all available SMS verification services and their service codes.
curl -s -X GET "https://novatixsolution.com/api/v1/services/list"
Sample 200 OK Response:
{
"status": "1",
"msg": "Services retrieved",
"data": [
{ "id": 1, "name": "WhatsApp", "slug": "whatsapp" },
{ "id": 2, "name": "Telegram", "slug": "telegram" },
{ "id": 3, "name": "Google", "slug": "google" }
]
}
/countries/list
Retrieve all supported countries with their numeric country IDs.
curl -s -X GET "https://novatixsolution.com/api/v1/countries/list"
Sample 200 OK Response:
{
"status": "1",
"msg": "Countries retrieved",
"data": [
{ "id": 4, "name": "India", "code": "in" },
{ "id": 187, "name": "USA", "code": "us" },
{ "id": 12, "name": "Indonesia", "code": "id" }
]
}
/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 -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:
{
"status": "success",
"data": {
"order_id": 98142,
"phone_number": "+12025550198",
"country_code": "US",
"cost": 0.45,
"status": "pending",
"expires_at": "2026-09-07T15:45:00Z"
}
}
/orders/status
Poll for the incoming SMS verification code associated with an active order ID.
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):
{
"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"
}
}
/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 -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:
{
"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. |