SMS0X

API Master Documentation

Welcome to the SMS0X programmable infrastructure. Our high-performance API allows enterprises to integrate global messaging into any application with sub-3s delivery and institutional-grade reliability.

Designed for scale and simplicity, our RESTful endpoints connect you to 190+ countries through a single, secure gateway.

Authentication

All SMS0X API requests must be authenticated via an API Key provided as a standard Bearer token in your request headers.

Your keys carry full account permissions. Keep them secure in your environment variables and never expose them in client-side frontends.

Get Your API Key

You can generate and manage your API keys directly from your Developer Hub in the dashboard.

Authorization: Bearer YOUR_API_KEY
POST

Send Single Message

Reliably broadcast a single SMS message to any mobile destination worldwide.

https://api.sms0x.com/v1/send
Parameter Description
to string Required Destination number in international E.164 format (e.g., +14155552671).
from string Required Your approved Alpha-numeric Sender ID or dedicated virtual number.
text string Required The message body. We handle concatenation automatically for multi-segment messages.

Example Request

cURL
Node.js
PHP
curl -X POST "https://api.sms0x.com/v1/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155550100",
    "from": "SMS0X",
    "text": "Your login code: 5521"
  }'
const axios = require('axios');

const data = {
  to: '+14155550100',
  from: 'SMS0X',
  text: 'Your login code: 5521'
};

axios.post('https://api.sms0x.com/v1/send', data, {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
}).then(res => console.log(res.data));
$ch = curl_init('https://api.sms0x.com/v1/send');

$data = json_encode([
    'to' => '+14155550100',
    'from' => 'SMS0X',
    'text' => 'Your login code: 5521'
]);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_KEY',
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

Example Response

{
  "status": "success",
  "message_id": "sms0x_5a2f8c",
  "timestamp": "2026-07-01T12:00:00Z"
}
GET

Retrieve Message Status

Fetch the real-time delivery status of a previously sent message using its unique message_id.

https://api.sms0x.com/v1/messages/{message_id}

Example Request

cURL
Node.js
PHP
curl -X GET "https://api.sms0x.com/v1/messages/sms0x_5a2f8c" \
  -H "Authorization: Bearer YOUR_API_KEY"
const axios = require('axios');

axios.get('https://api.sms0x.com/v1/messages/sms0x_5a2f8c', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
}).then(res => console.log(res.data));
$ch = curl_init('https://api.sms0x.com/v1/messages/sms0x_5a2f8c');

curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_KEY'
]);

$response = curl_exec($ch);
curl_close($ch);

Example Response

{
  "message_id": "sms0x_5a2f8c",
  "status": "delivered",
  "recipient": '+14155550100',
  "cost": 0.012,
  "delivered_at": "2026-07-01T12:00:03Z"
}
GET

Check Account Balance

Retrieve your current USD account balance to ensure you have sufficient funds before initiating large bulk campaigns.

https://api.sms0x.com/v1/balance

Example Request

cURL
Node.js
PHP
curl -X GET "https://api.sms0x.com/v1/balance" \
  -H "Authorization: Bearer YOUR_API_KEY"
const axios = require('axios');

axios.get('https://api.sms0x.com/v1/balance', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
}).then(res => console.log(res.data));
$ch = curl_init('https://api.sms0x.com/v1/balance');

curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_KEY'
]);

$response = curl_exec($ch);
curl_close($ch);

Example Response

{
  "currency": "USD",
  "balance": 142.50,
  "status": "active"
}

HTTP Status Codes

We use standard HTTP response codes to indicate the success or failure of an API request.

Code Meaning
200 OK The request was successful.
400 Bad Request The request was invalid (e.g. missing required fields).
401 Unauthorized Invalid or missing API key.
402 Payment Required Account balance is too low to send the message.