Testing SMS With the Shared Test Phone
Every Blocx account can send outbound SMS from a shared test phone number without first registering a 10DLC brand, getting a campaign approved, or buying a number. It's the fastest way to wire up the API end-to-end before you have your real sender configured.
What's different about the test phone
| Test phone | Your own number | |
|---|---|---|
| Brand + campaign required | No | Yes |
| Number purchase required | No | Yes |
| Cost | Free | Per-segment |
| Rate limit | Tight — see below | Account default |
| Content restriction | Body must start with [Otter] |
None |
| Inbound replies | Not supported | Delivered via webhook |
| Production traffic | No | Yes |
The test phone is a sandbox. Use it to verify the request shape, your API key, your webhook signature handling, and your delivery-receipt plumbing — then switch your from to a real number when you go live.
How to use it
The shared test number is +1 307 999 9302. Set it as the from and start the message with [Otter]:
curl -X POST https://api.otterblocx.com/messaging/send \
-H "x-access-key-id: $BLOCX_ACCESS_KEY_ID" \
-H "x-secret-access-key: $BLOCX_SECRET_ACCESS_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "+13079999302",
"to": "+15557654321",
"body": "[Otter] hello from my new integration",
"type": "SMS"
}'
Response (202 Accepted) includes "test": true so you can tell test sends apart in your own logs:
{
"messageId": "msg_...",
"type": "SMS",
"status": "QUEUED",
"to": "+15557654321",
"from": "+13079999302",
"test": true
}
Test sends flow through the same queue, the same carrier, and the same webhook contract as real sends — message.sent, message.delivered, and message.failed fire normally — so your integration code does not need to special-case them.
Rules
[Otter]prefix is required. Sends without it return400withcode: "test_prefix_required". The prefix lets recipients identify test traffic at a glance.- Heavy rate limit. Default caps are 5 per minute, 30 per hour, 100 per day per account. Hitting any window returns
429withcode: "test_rate_limited". These are tighter than your normal account quota and cannot be raised; the test phone is for testing. - Outbound only. Replies to the test phone are dropped. If you need to handle inbound SMS, provision a real number — see Buying Phone Numbers.
- No billing. Test sends do not draw from your balance and do not count toward your monthly included quota.
When to graduate to a real number
Switch as soon as you need any of:
- to send to your own customers (not test handsets you control),
- inbound SMS,
- volume above the test phone's daily cap,
- compliance with your brand and opt-in language on real traffic.
Run through Registering a 10DLC Brand → Creating a 10DLC Campaign → Buying Phone Numbers → Sending Your First SMS. Then replace the test number in your from with your provisioned number — no other code changes are required.