Skip to main content

handset

The official Python SDK for Handset — the business phone API. Compliant two-way SMS, inbound voice, voicemail with transcripts, phone numbers, and 10DLC compliance for your platform's customers.

pip install handset

Quickstart

from handset import AuthenticatedClient
from handset.api.messaging import send_message
from handset.models import SendMessageBody

client = AuthenticatedClient(
    base_url="https://api.handset.dev/v1",
    token="hs_test_...",  # test mode: simulated carrier, free numbers
)

message = send_message.sync(
    client=client,
    body=SendMessageBody(
        from_="num_01kzv...",          # one of your tenant's numbers
        to="+14155550134",
        body="Your technician is 15 minutes out.",
    ),
)
print(message.id, message.status)      # msg_..., "queued"

Every endpoint lives under handset.api.<area> (messaging, voice, phone_numbers, tenants, compliance, webhooks, usage) with sync, sync_detailed, asyncio, and asyncio_detailed variants. All request and response shapes are typed attrs models under handset.models.

Test mode

Every account ships parallel live and test keys. Test keys (hs_test_...) run against a simulated carrier — numbers are free and instant, compliance approves immediately, and magic numbers let you rehearse failures. Start there.

Docs

Questions: developers@handset.dev

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

handset-0.4.0.tar.gz (40.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

handset-0.4.0-py3-none-any.whl (150.5 kB view details)

Uploaded Python 3

File details

Details for the file handset-0.4.0.tar.gz.

File metadata

  • Download URL: handset-0.4.0.tar.gz
  • Upload date:
  • Size: 40.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.1

File hashes

Hashes for handset-0.4.0.tar.gz
Algorithm Hash digest
SHA256 9a6e25a6c9ed597a5e959524bd33c3dcb5f08968b89f0edef4b1f0e772b56252
MD5 5c1d444aaebc86c7c5fee4064a46fa0b
BLAKE2b-256 f84bf36bd3671c301cfbde1d03a50aa0fc79eb7aa5afb931d3503147e195c071

See more details on using hashes here.

File details

Details for the file handset-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: handset-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 150.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.1

File hashes

Hashes for handset-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d74bd8858bf3a532d1b4f9de7d59457b3fa6aaa7b81942cfce481b99a33c1921
MD5 913d701ee4079f114fcae9193a3423ae
BLAKE2b-256 c52ed0d4692e8fd1f6baa990241b5dce2e9c4afb79b8d3195247f20b7eaa34e5

See more details on using hashes here.

Release history Release notifications | RSS feed

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page