REST API v1

API Reference

Complete REST API documentation for all 13 products. Works with any programming language.

SMSMMSRCSWhatsAppVoiceVideoEmail+6 more

Base URL

https://api.smsly.cloud/v1

Dual Key Authentication

Required headers for all requests:

X-Smsly-Key-Id: YOUR_API_KEY
X-SMSLY-SDK-KEY: YOUR_SDK_KEY

Quick Start

Choose your language. Languages without official SDK use raw HTTP.

cURL Example
# Authentication with dual keys
curl -X POST https://api.smsly.cloud/v1/sms/otp \
  -H "X-Smsly-Key-Id: YOUR_API_KEY" \
  -H "X-SMSLY-SDK-KEY: YOUR_SDK_KEY" \
  -H "X-Smsly-Timestamp: $(date +%s)" \
  -H "X-Smsly-Nonce: $(uuidgen)" \
  -H "X-Smsly-Signature: HMAC_SHA256_SIGNATURE" \
  -H "Content-Type: application/json" \
  -d '{"to": "+1234567890", "code": "123456"}'

No Official SDK: cURL doesn't have an official SDK yet. Use raw HTTP requests as shown above. Request SDK →

All Endpoints

SMS

POST/v1/sms/otpSend OTP via SMS
POST/v1/sms/marketingSend marketing SMS
POST/v1/sms/transactionalSend transactional SMS
POST/v1/sms/customSend custom type SMS
POST/v1/sms/bulkSend bulk SMS

WhatsApp

POST/v1/whatsapp/otpSend OTP via WhatsApp
POST/v1/whatsapp/templateSend template message
POST/v1/whatsapp/mediaSend media message

Voice

POST/v1/voice/otpVoice OTP call
POST/v1/voice/callInitiate voice call
POST/v1/voice/ttsText-to-speech call

Email

POST/v1/email/otpSend OTP via email
POST/v1/email/transactionalSend transactional email
POST/v1/email/marketingSend marketing email

Verify

POST/v1/verify/startStart verification
POST/v1/verify/checkCheck verification code

Numbers

GET/v1/numbersList your numbers
POST/v1/numbers/buyPurchase a number
DELETE/v1/numbers/:idRelease a number

Keys

POST/v1/keys/generateGenerate key pair
POST/v1/keys/activateActivate setup keys
POST/v1/keys/rotate-sdkRotate SDK key

Response Format

✓ Success Response
{
  "success": true,
  "data": {
    "message_id": "msg_abc123",
    "to": "+1234567890",
    "status": "delivered"
  },
  "meta": {
    "request_id": "req_xyz789",
    "credits_used": 1
  }
}
✗ Error Response
{
  "success": false,
  "error": {
    "code": "INVALID_PHONE",
    "message": "Phone number is not valid",
    "details": {
      "phone": "+1234567890"
    }
  },
  "meta": {
    "request_id": "req_xyz789"
  }
}