Integrate FlixySMS into your applications
https://flixysms.com/api/v1
All API requests require authentication using an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
API requests are rate limited to 100 requests per minute by default. Rate limit information is included in response headers:
X-RateLimit-Limit
: Maximum requests per minuteX-RateLimit-Remaining
: Remaining requests in current windowX-RateLimit-Reset
: Unix timestamp when the rate limit resets/api/v1/sms/send
Send a single SMS message
{ "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }
{ "to": "+1234567890", "message": "Hello from FlixySMS!", "device_id": "optional-device-uuid" }
{ "success": true, "data": { "message_id": "123e4567-e89b-12d3-a456-426614174000", "to": "+1234567890", "status": "queued", "device_id": "987e6543-e89b-12d3-a456-426614174000", "created_at": "2024-01-15T10:30:00Z" } }
curl -X POST \ https://flixysms.com/api/v1/sms/send \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "+1234567890", "message": "Hello from FlixySMS!", "device_id": "optional-device-uuid" }'
const response = await fetch('https://flixysms.com/api/v1/sms/send', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ "to": "+1234567890", "message": "Hello from FlixySMS!", "device_id": "optional-device-uuid" }) }); const data = await response.json(); console.log(data);
import requests response = requests.post( 'https://flixysms.com/api/v1/sms/send', headers={ 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, json={ "to": "+1234567890", "message": "Hello from FlixySMS!", "device_id": "optional-device-uuid" } ) print(response.json())
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://flixysms.com/api/v1/sms/send'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json' ]); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode({ "to": "+1234567890", "message": "Hello from FlixySMS!", "device_id": "optional-device-uuid" })); $response = curl_exec($ch); curl_close($ch); echo $response;
/api/v1/sms/status/:message_id
Check the delivery status of a sent message
{ "Authorization": "Bearer YOUR_API_KEY" }
{ "success": true, "data": { "message_id": "123e4567-e89b-12d3-a456-426614174000", "status": "delivered", "delivered_at": "2024-01-15T10:31:00Z", "device_id": "987e6543-e89b-12d3-a456-426614174000" } }
curl -X GET \ https://flixysms.com/api/v1/sms/status/123e4567-e89b-12d3-a456-426614174000 \ -H "Authorization: Bearer YOUR_API_KEY" \
const response = await fetch('https://flixysms.com/api/v1/sms/status/123e4567-e89b-12d3-a456-426614174000', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_API_KEY', } }); const data = await response.json(); console.log(data);
import requests response = requests.get( 'https://flixysms.com/api/v1/sms/status/123e4567-e89b-12d3-a456-426614174000', headers={ 'Authorization': 'Bearer YOUR_API_KEY', } ) print(response.json())
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://flixysms.com/api/v1/sms/status/123e4567-e89b-12d3-a456-426614174000'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_API_KEY', ]); $response = curl_exec($ch); curl_close($ch); echo $response;
The API returns standard HTTP status codes to indicate success or failure of requests.
400
Bad Request
The request was invalid or missing required parameters
401
Unauthorized
Invalid or missing API key
403
Forbidden
API key doesn't have permission for this endpoint
429
Too Many Requests
Rate limit exceeded
503
Service Unavailable
No devices available to send SMS