Developers

API reference

One REST API at https://api.handset.dev. Authenticate with a bearer key; sk_test keys hit the simulated carrier, sk_live keys hit the real one. Mutating requests accept an Idempotency-Key header; lists paginate with cursors; errors share one typed envelope.

Looking for events instead? Webhooks · Test mode

authentication.sh
# Every request: bearer auth over HTTPS
curl https://api.handset.dev/v1/tenants \
  -H "Authorization: Bearer sk_test_…"

Tenants

Your customers. Every other resource hangs off a tenant.

POST/v1/tenantsCreate a tenant
GET/v1/tenantsList tenants (cursor-paginated)
GET/v1/tenants/{id}Retrieve a tenant
PATCH/v1/tenants/{id}Update a tenant
DELETE/v1/tenants/{id}Delete a tenant

Phone numbers

Search, purchase, configure, and release real numbers.

GET/v1/phone_numbers/searchSearch available numbers by area code
POST/v1/phone_numbersPurchase a number for a tenant
GET/v1/phone_numbersList numbers
GET/v1/phone_numbers/{id}Retrieve a number
DELETE/v1/phone_numbers/{id}Release a number
POST/v1/e911_addressesRegister an emergency address
GET/v1/e911_addresses/{id}Retrieve an emergency address

Messaging

Two-way SMS with threading and opt-out enforcement.

POST/v1/messagesSend a message (Idempotency-Key supported)
GET/v1/messagesList messages
GET/v1/messages/{id}Retrieve a message
GET/v1/conversationsList conversations
GET/v1/conversations/{id}Retrieve a conversation
GET/v1/opt_outsList opt-outs for a tenant

Voice

Calls, routing, voicemail, and recordings.

GET/v1/callsList calls
GET/v1/calls/{id}Retrieve a call and its timeline
GET/v1/voicemailsList voicemails
GET/v1/voicemails/{id}Retrieve a voicemail with transcript
GET/v1/recordings/{id}Retrieve a recording
PATCH/v1/tenants/{id}/routing_configSet hours, greeting, and voicemail behavior
GET/v1/tenants/{id}/routing_configRetrieve routing configuration

Compliance

10DLC brands and campaigns as API objects.

POST/v1/brandsRegister a brand (EIN encrypted at rest)
GET/v1/brandsList brands
GET/v1/brands/{id}Retrieve a brand (EIN masked)
POST/v1/campaignsCreate a campaign under a vetted brand
GET/v1/campaignsList campaigns
GET/v1/campaigns/{id}Retrieve a campaign

Webhook endpoints

Where your platform receives signed events.

POST/v1/webhook_endpointsCreate an endpoint (secret returned once)
GET/v1/webhook_endpointsList endpoints
GET/v1/webhook_endpoints/{id}Retrieve an endpoint
PATCH/v1/webhook_endpoints/{id}Update URL or subscribed events
DELETE/v1/webhook_endpoints/{id}Delete an endpoint

Get keys and start building.

Early-access partners get live and test keys, plus a direct line to the team building the API.