Skip to main content
A phone number is the foundation of your agent’s SMS and voice communication. Just as an inbox gives your agent an email identity, a phone number gives it a programmable telephone identity — something it can send messages from, receive replies to, and build persistent conversation threads with.

What phone numbers enable

  • A persistent identity — recipients see a consistent number, not a random sender
  • Inbound SMS routing — messages arrive at a webhook your agent controls
  • Two-way conversations — full thread history between your agent and any contact
  • MMS support — send and receive images, documents, and media
  • Allow lists — restrict inbound to known numbers only (your own systems, trusted contacts)
  • Block lists — silently reject specific senders at the carrier level
  • Auto-reply — automatic acknowledgment sent to every inbound message
  • Compliance-safe messaging — STOP/UNSTOP handling built in, suppression lists managed automatically
  • Webhook signing — HMAC-SHA256 signatures on every event so you can verify the source

How it works

When you purchase a phone number, Commune provisions it through Twilio on your behalf. The number is tied to your organization and enrolled in a Messaging Service with sticky sender enabled — the first message you send to a contact locks that number as the sender for that contact going forward, building a consistent identity. You never deal with Twilio directly. Commune handles provisioning, routing, webhooks, and credits.

Number types

US local numbers require registration before they can send messages. See A2P 10DLC below. Toll-free numbers do not have this requirement and are ready to send immediately.

Capabilities

Each number has specific capabilities depending on what you purchase:
Voice capability requires Agent Pro plan or higher. Check capabilities on the number object before using it for a specific purpose.

Agent use cases

Outbound sales agent — Each agent gets its own number. Sticky sender ensures the contact always sees the same number. Replies route back to that agent’s webhook. Customer support — One number per product line or region. Agents handle inbound replies and escalate when needed. Auto-reply handles out-of-hours coverage. Appointment reminders — Agents send reminders and handle confirmations via SMS reply. Allow list restricts inbound to known patient/customer numbers. Notification system — Numbers send alerts, confirmations, and one-way updates. Block list rejects spam inbound. Allow list restricts to your own systems. Multi-tenant platforms — Each customer or campaign gets its own number for isolated reputation, clear attribution, and independent block/allow lists.

The phone number object


Search available numbers

Before purchasing, search for numbers matching your criteria.

Parameters

Response


Purchase a phone number

Returns the full phone number object with status: "active".
Prorated billing — credits are charged immediately, prorated based on days remaining in your billing cycle. If you purchase mid-cycle with 15 days left, you pay 75 credits (half of 150). The full 150 credits are charged at the start of each subsequent month.
30-day cooldown — releasing a number starts a 30-day window during which you cannot purchase a new phone number for your organization. Plan releases carefully.

A2P 10DLC

US local numbers require A2P (Application-to-Person) 10DLC campaign registration before they can send messages. This is a US carrier requirement for all business SMS. Attempting to purchase a US local number without approved A2P status returns:
To avoid this requirement: use toll-free numbers. They work immediately without A2P and support the same SMS/MMS capabilities for most use cases.

List phone numbers

Returns all active (non-released) numbers for your organization, sorted by creation date descending.

Get a phone number


Update a phone number

Configure the display name, auto-reply, and webhook on an existing number.

Updatable fields

Webhook signature verification

When webhook.secret is set, Commune includes an X-Commune-Signature header on every delivery. Verify it to confirm the payload came from Commune:

Allow list

Restrict inbound messages to a set of known numbers. When non-empty, any number not on the list is silently rejected. Useful for systems where your number only receives messages from your own infrastructure.
Empty allow list ([]) means accept all inbound. Non-empty means only listed numbers can reach you.

Block list

Block specific numbers from messaging your number. Blocked inbound messages are stored with delivery_status: "blocked" but your webhook is not fired and no auto-reply is sent.
Block list always wins over allow list. If a number appears on both, it is rejected.

Phone-scoped API keys

You can create API keys scoped to specific phone numbers. A scoped key can only send from — and receive webhooks for — the numbers in its scope. Useful for multi-tenant setups where each customer’s agent should only access its own number. Create phone-scoped keys from Dashboard → API Keys. Requests using a scoped key to access other numbers return 403 phone_key_not_authorized.

Release a phone number

Permanently return the number to the carrier pool. The number stops receiving messages immediately. All associated message history remains accessible in your account.
Releasing a number is permanent. You cannot reclaim the same number after release. A 30-day cooldown applies before you can purchase any new phone number for your organization.

Credit costs

International SMS costs vary by country. See the full credits by country table. Credits are deducted from your balance. Check your balance at Dashboard → Credits or via GET /v1/credits.

Plan quotas

Additional credits can be purchased as bundles (1,000 for 12,5,000for12, 5,000 for 55, 20,000 for $200).
Last modified on March 19, 2026