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

rehearse-failure.sh
# 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.