Business messaging with templates, media, and OTP
Global WhatsApp delivery
Images, videos, docs
Encrypted messaging
Verified accounts
All WhatsApp API requests require both keys:
X-Smsly-Key-Id: sk_live_xxxX-SMSLY-SDK-KEY: sdk_live_xxxChoose your language. Languages without SDK use raw HTTP.
from smsly import SMSly
# === DUAL KEY SECURITY ===
client = SMSly(
api_key="sk_live_xxx",
sdk_key="sdk_live_xxx"
)
# Send WhatsApp OTP
response = client.whatsapp.otp("+1234567890", "123456")
print(f"Message ID: {response.message_id}")
# Send template message
client.whatsapp.template(
"+1234567890",
template="order_confirmation",
params={"order_id": "12345", "status": "shipped"}
)
# Send media message
client.whatsapp.media(
"+1234567890",
media_url="https://example.com/image.jpg",
caption="Check this out!"
)/v1/whatsapp/otpSend OTP via WhatsApp/v1/whatsapp/templateSend template message/v1/whatsapp/textSend text message/v1/whatsapp/mediaSend media message/v1/whatsapp/locationSend location/v1/whatsapp/:idGet message status