SMS: your own number, your own plan
DMWire sends and receives SMS through a number you already pay for: a Twilio number on your own Twilio account, or the SIM in an Android phone. Your provider or phone plan pays for every message.
There are two ways to connect SMS. Pick one; if both are connected, SMS go out from the phone.
Your own Twilio number
You need a Twilio account with an SMS capable number on it. Copy the Account SID (it starts with AC) and the Auth Token from your Twilio console, then ask your agent to "connect my SMS number +44..." with them. Behind that, it calls connect_sms:
curl -X POST https://api.dmwire.ai/v1/channels/sms/twilio \
-H "X-API-Key: $DMWIRE_API_KEY" -H "Content-Type: application/json" \
-d '{"account_sid":"AC...","auth_token":"...","phone_number":"+447700900123"}'DMWire checks the credentials with Twilio, finds the number on that account and points the number's incoming SMS webhook at DMWire, so there is nothing to set in the console. The Auth Token is never returned. get_sms_status shows the connection, and disconnect_sms clears the number's webhooks and removes it from DMWire. The number stays on your Twilio account.
US and Canadian (+1) numbers. US carriers block application SMS from a number without an approved A2P 10DLC registration, which you file in your Twilio console in your own business name. Once it is approved, connect the number with "a2p_registered": true. A +1 number connected without it is refused at connect time, and a send from it answers a2p_unconfirmed (409).
An Android phone
The phone sends SMS from its own number and SIM plan. Install the open source SMS Gateway for Android app on the phone, open it and note the username and password it shows. Then ask your agent to connect the phone, or call connect_android_sms:
curl -X POST https://api.dmwire.ai/v1/channels/sms/android-gateway \
-H "X-API-Key: $DMWIRE_API_KEY" -H "Content-Type: application/json" \
-d '{"username":"...","password":"...","phone_number":"+447700900123"}'The app's cloud mode is the default. With "mode": "local" and a public https base_url, DMWire reaches the phone or your own relay directly. DMWire checks the connection and registers the webhooks for incoming SMS and delivery reports on the gateway for you; the answer shows the webhook URL it registered. get_android_sms_status checks the gateway now and reports when the phone was last seen.
The phone has to stay on, charged and online for SMS to flow. Mobile carriers have their own rules for personal SIM cards, and a SIM that sends like a bulk sender can be blocked by the carrier.
Sending
- Address the person by
to.phonein international format, or byto.contact_id. A new number becomes a new contact. - Text messages. Long texts are split into several SMS by the carrier, and each part counts on your provider's bill.
- Someone who replies STOP cannot be messaged again from DMWire: the send answers
contact_opted_out(422).
Limits on SMS
| Limit | Value |
|---|---|
| Messages you send per day (early access) | 50 |
| New contacts per day (early access) | 10 |
| Messages to one person who has not replied | 3, then DMWire waits for their reply |
| The same first message to people who never wrote | more than 5 in 30 minutes stops sending on the account |
See Limits and account safety for every refusal code.
Last checked against the live service on 2026-10-17.