Sandbox Testing

Test your SMS integration without sending real messages or using credits.

How It Works

  1. Use a test API key (sk_test_*) instead of a live key
  2. Send to magic phone numbers that simulate different scenarios
  3. Receive realistic responses without actual SMS delivery

Magic Phone Numbers

Phone NumberBehavior
+15005550000Always succeeds - simulates successful delivery
+15005550001Invalid number error
+15005550002Cannot route error
+15005550003Insufficient credits error
+15005550004Rate limited error
+15005550005Delivery delayed (webhook sent after 30s)
+15005550006Carrier rejected error

Example Test Request

curl -X POST https://sendly.live/api/v1/messages \
  -H "Authorization: Bearer sk_test_YOUR_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+15005550000",
    "text": "Test message",
    "messageType": "transactional"
  }'

Test vs Live Keys

FeatureTest Keys (sk_test_*)Live Keys (sk_live_*)
Real SMS sentNoYes
Credits usedNoYes
Magic numbers workYesNo
Webhooks firedYes (simulated)Yes (real)

Testing Webhooks

Use the CLI to test webhooks locally:

npx @sendly/cli webhooks listen

This creates a tunnel and forwards webhook events to your local server.