What the API does
- Send a text message to one number or a list of numbers.
- Send OTP and notification messages from your backend.
- Look up the status of messages you sent.
- Work with the same prepaid balance and per-country billing as the web panel.
Getting started
- Register and log in to the panel.
- Top up your balance.
- Open the API documentation and get your credentials from your account.
- Make your first request from a test number.
Full documentation: panel.jntsms.com/docs.
Example request
The example below shows the general shape of a request. Field names and the endpoint are placeholders. Use the exact values in the documentation.
curl -X POST "API_URL_FROM_DOCS" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+60123456789",
"message": "Your verification code is 123456"
}'const res = await fetch("API_URL_FROM_DOCS", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "+60123456789",
message: "Your verification code is 123456"
})
});
console.log(await res.json());<?php
$ch = curl_init("API_URL_FROM_DOCS");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode([
"to" => "+60123456789",
"message" => "Your verification code is 123456",
]),
]);
echo curl_exec($ch);import requests
res = requests.post(
"API_URL_FROM_DOCS",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"to": "+60123456789",
"message": "Your verification code is 123456",
},
)
print(res.json())Tips for a stable integration
- Keep your API key on your server. Never put it in a mobile app or in browser code.
- Send numbers in international format with the country code.
- Handle an "insufficient balance" response by alerting your team, so a low balance does not quietly stop your OTP flow.
- Store the message ID that comes back so you can match it with a status report later.