Developer API · Crypto billing · Zero KYC
SMS API with Crypto
Send text messages from your software, website, or backend. Pay with Bitcoin, USDT, Monero, and more. No ID verification needed.
Quickstart
Send an SMS in 4 lines of code
Simple JSON over HTTPS. Works with any language.
POST
Header: Authorization: Bearer YOUR_API_KEY
https://gsm7.com/api/v1/sms/send
curl -X POST https://gsm7.com/api/v1/sms/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155552671",
"from": "YOURBRAND",
"message": "Your verification code is 482910"
}'
import requests
res = requests.post(
"https://gsm7.com/api/v1/sms/send",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"to": "+14155552671",
"from": "YOURBRAND",
"message": "Your verification code is 482910"
}
)
print(res.json())
const res = await fetch("https://gsm7.com/api/v1/sms/send", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "+14155552671",
from: "YOURBRAND",
message: "Your verification code is 482910"
})
});
const data = await res.json();
console.log(data);
$ch = curl_init('https://gsm7.com/api/v1/sms/send');
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' => '+14155552671',
'from' => 'YOURBRAND',
'message' => 'Your verification code is 482910'
])
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
to |
string or array | Required | Phone number with country code (e.g. +14155552671). For bulk, pass an array of numbers. |
message |
string | Required | The message text. 160 characters for standard text, 70 characters with emojis. |
from |
string | Optional | Sender name (up to 11 characters) or number (up to 15 digits). Defaults to GSM7. |
Sample response
{
"success": true,
"message": "SMS sent.",
"data": {
"message_id": "gsm7_msg_8c1f0e2a9b7d4c6e5f10",
"recipient": "+14155552671",
"sender_id": "YOURBRAND",
"segments": 1,
"rate_per_segment": 0.0085,
"total_cost": 0.0085,
"status": "delivered",
"remaining_balance": 28.9915
}
}
Questions
Frequently asked questions
Quick answers for developers integrating our API.
How do I authenticate?
Send your API key in the Authorization header as Bearer YOUR_API_KEY. You get your key immediately after signup.
Can I send to multiple numbers at once?
Yes. Pass an array of numbers or a comma-separated list in the "to" field.
What happens if my balance runs out?
The API returns an error stating insufficient balance. We never send on overdraft or allow negative balances.