Developers
Test mode
Every account has parallel sk_live and sk_test keys. Test keys run against a simulated carrier: numbers are free and instant, compliance approves immediately, and the whole event pipeline — webhooks included — behaves exactly like production.
What the simulator does
- Numbers — search and purchase return instantly and cost nothing; the inventory is synthetic but shaped like the real thing.
- Messages — sends are accepted and delivery receipts arrive moments later as real webhook events.
- Voice — inbound calls, answers, hangups, and voicemails can be simulated so your call-handling UI is testable without dialing a phone.
- Compliance — brands vet and campaigns approve immediately, with the same status_changed events production emits over days.
Magic numbers
+1 500 555 0001Message delivery fails with carrier_rejected
ZIP 00000E911 address registration is rejected
Any other numberDelivers instantly with a delivered receipt
# Same code as production — only the key differs. curl https://api.handset.dev/v1/messages \ -H "Authorization: Bearer sk_test_…" \ -d tenant_id="tnt_test_…" \ -d to="+15005550001" \ -d body="This one is doomed." # moments later: → webhook: message.failed "failure_reason": "carrier_rejected"
Build against the simulator today.
We're onboarding a small group of vertical SaaS platforms. Tell us what your customers need to say, and to whom.