New features, improvements, and fixes to Dial

August 2, 2026

Added

Share an account with your team

An account owner can invite teammates by email so a team works from the same phone numbers. Each member signs in with their own address, holds their own API key on the same account, and shares its numbers, messages, calls and contacts; usage bills to the account’s balance. Members can do everything the owner can except delete the account.

  • POST /api/v1/members invites an address. The invite is locked to that address — accepting it needs a verification code sent to that inbox, so holding the link alone grants nothing. It expires after 7 days
  • GET /api/v1/members lists the owner and every member, pending or active
  • DELETE /api/v1/members/{id} ends a membership and deletes that member’s key
  • GET /api/v1/memberships lists the accounts you belong to, and POST /api/v1/memberships/{accountId}/key returns your key for one of them

Send messages from the dashboard

Contacts can now send. Reply inline in a conversation, or open Send new message to start one with a number you have no history with — pick the line you send from, type the destination, and send. Previously the dashboard could only show messages.

voiceRuntime on the Call object

A call now reports which runtime served it: managed, or self-hosted-audio when the call’s audio went to your own server. A self-hosted-audio call never has a transcript or a recording, so an empty transcript is explained rather than looking like a failure. See Self-Hosted.

iMessage sending limits are documented

Usage & limits now states the caps that apply to iMessage numbers, and the 429 you get when you reach one:

  • 50 new conversations per iMessage number per day — a reply inside an existing conversation doesn’t count
  • A separate limit on messages to a recipient who has never replied to your number, which lifts as soon as they reply
  • Sustained volume above the per-number level — talk to us with your expected daily volume first

dial onboard points you at the dashboard

Onboarding now ends by naming the dashboard and the address the account was created with, which is where sign-in codes are sent. --json output carries the same two values as dashboardUrl and email.

Changed

Registering a US number requires a privacy policy and terms page

Registration is rejected without both. Send privacyPolicyUrl and termsUrl, hosted on the same site you registered as your websiteUrl — a page on an unrelated host is rejected. Sole proprietors can send "acceptPublishedNotice": true instead, and Dial publishes both pages for you. See Register a US number for 10DLC.

Fixed

Inbound iMessage on July 29

Inbound iMessage messages to Dial numbers were not delivered on July 29 — they did not reach webhooks or GET /api/v1/messages. Delivery was restored the same day. SMS, voice, and outbound iMessage were unaffected.