Messaging
Integrate powerful, programmable, high-throughput SMS and MMS with SignalWire APIs, SDKs, and no-code application builders
Programmable Messaging is deeply integrated in the SignalWire platform. Our robust APIs, SDKs, and application builders are backed by first-class support and a team dedicated to compliance and class-leading delivery rates across all carriers and locations.
SignalWire is your Messaging partner from proof-of-concept to deployment. Get up and running quickly with our Getting Started guides and get registration right the first time with our comprehensive Guide to The Campaign Registry (TCR).
Enable messaging on your number
A US local (10DLC) number you buy can make and receive calls right away, but it can’t send or receive text messages until you enable messaging on it. US carriers require business text messages from local numbers to be registered with The Campaign Registry, so messaging starts off on new local numbers. It isn’t something you did wrong. Pick the path that matches what you need.
Send messages to anyone: register a campaign
To send messages in production, register with The Campaign Registry. The Registration guide walks through each step:
- Create a Brand for the business sending the messages.
- Register a Campaign that describes the messages you’ll send.
- Assign your phone numbers to the Campaign. Messaging turns on for each number once its assignment is approved.
Test messaging first: use the Platform Free Trial
To check that messaging works before you register, use the Platform Free Trial. Verify your own mobile number on the Messaging Campaigns page of the Dashboard. If you already have a US local number, you don’t need to buy another: SignalWire enables messaging for testing on one of your numbers, usually the one you bought most recently. If you don’t have one yet, buy a US local number and SignalWire enables messaging on it.
If your mobile number was verified before you started and messaging still isn’t on, remove it from your verified caller IDs and verify it again to start the trial. The Enabling Platform Free Trial steps cover each case.
The trial has restrictions:
- Your trial number can send up to 200 message segments a day.
- Messages you send through the messaging APIs, or during a call with the SWML
send_smsmethod or the cXML<Sms>verb, can only go to your verified mobile number. - SignalWire adds
[SignalWire Free Trial]to the start of each message you send through the messaging APIs, or with the SWMLsend_smsmethod during a call.
The trial is available once per account, and only before your account has any Brand or Campaign. If your trial has ended, you can’t restart it. Register a campaign to keep sending messages.
Toll-free numbers, short codes, and inbound-only numbers
Toll-free numbers don’t use The Campaign Registry. They go through toll-free verification instead. Short codes have their own application process in the Dashboard. To receive messages on a local number without sending any, contact Support to enable inbound-only messaging.
If you’re still stuck
If sending fails with error 21717 (“must belong to an active campaign”), the number isn’t assigned to an approved Campaign yet. For anything else, contact Support.
Try it out
Replace <YOUR_SPACE>, <YOUR_PROJECT_ID>, and <YOUR_API_TOKEN> in the samples with your Space name, Project ID, and API token, which you’ll find in API credentials.
Send an SMS message
SWML
WebSocket (Relay)
REST API
Send an MMS message
SWML
WebSocket (Relay)
REST API
Respond to an incoming message
SWML
WebSocket (Relay)
Forward an incoming message
SWML
WebSocket (Relay)
Choose an API
SignalWire’s many API offerings make it quick and easy to send and receive SMS and MMS within an application through a variety of phone number types. There are a few different ways to utilize these services, so we encourage you to browse the documentation for our APIs.
SignalWire’s Messaging APIs are tailored for SMS and MMS over the PSTN. For non-PSTN applications, check out our Chat APIs.
Reference
Frequently asked questions
Why can't I send or receive messages on my new 10DLC number?
New US local (10DLC) numbers don’t have messaging enabled. See Enable messaging on your number for how to turn it on.
What is 10DLC?
10DLC is a type of phone number. Short for 10 Digit Local Code, it is a type of phone number that includes an area code followed by 7 additional digits indicating a specific channel. For example, +12345678910, where the “+1” indicates the country, the “234” indicates the area code, and the remaining digits indicate the channel.
What is the difference between 10DLC and Toll-free phone numbers?
Toll-free numbers, although slightly more expensive, allow for increased throughput out-of-the-box. They also have a registration process tied to them, however once complete, have a higher deliverability rating than traditional 10DLC numbers.
What is The Campaign Registry?
The Campaign Registry is a platform that was created in partnership with a company called Kaleyra and several Mobile Network Operators (MNOs). The platform itself acts as a source of information about every 10DLC number being used for outbound SMS through A2P routes in an effort to discourage spam in the industry. In short, any and all 10DLC numbers that are to be used for SMS in SignalWire’s platform must be registered through the Campaign Registry. You can find more information about the Campaign Registry in-depth here.
Can we programmatically create campaigns and brands?
Yes! You can do this through the SignalWire REST APIs. Check out the documentation.
How many messages can I send out?
The number of messages you can send out depends on a few different factors. If you are using a toll-free number, there is no real limit outside of throughput in regards to the amount of messages you could feasibly send. With 10DLC, it depends on your registered use case with the Campaign Registry. AT&T provides a limit on the amount of texts per minute you can send to an end-user at the campaign level whereas T-Mobile limits the overall amount of SMS per day you can send to and end user at the brand level. For more information around this, consult our guide to The Campaign Registry.
What content is not allowed?
Some content can’t be sent over SignalWire, even with the recipient’s consent, and some businesses can’t send messages at all. See prohibited message content for the carrier rules, including the age-gating rules for alcohol and tobacco.
How do I redact the body of a sent message?
For compliance, privacy, or moderation use cases, you can redact the body of a previously sent message by sending a PATCH request to /api/messaging/messages/:message_id with a body of "". Only messages in terminal states (delivered, undelivered, failed) are eligible; messages still in progress (queued or initiated) cannot be redacted. Once redacted, the original body is overwritten and cannot be recovered. See the Redact a message API reference for full details.
What are Carrier Passthrough Fees?
Carrier Passthrough Fees, also known as Network Access Fees (NAFs), are additional fees that Mobile Network Operators (MNOs), or Carriers, charge on a per-SMS/MMS basis for the ability of that SMS/MMS to be passed-through their network.
Are all the Carrier Passthrough Fees the same?
No. Every carrier (MNO) assesses their own rates for inbound and outbound SMS.
How do I get higher throughput?
For verified toll-free numbers, you can contact sales at sales@signalwire.com to increase the throughput of those numbers up to 100 MPS for an additional price.
Can I just send SMS/MMS to a specific carrier like Verizon?
SignalWire does not provide a way to explicitly send to Verizon end-users or end-users of any other MNO.
Do I register toll-free SMS/MMS traffic?
You can verify toll-free traffic by opening a support ticket with us. Our team will follow up with the forms and information we need from you within that support ticket.
Does SignalWire manage opt-outs?
No. Customers are responsible for handling inbound stop requests and removing those customers from subscriber lists. Messages should not go out to these numbers again unless they have opted back in via an Unstop request.
What is considered a high opt-out rate?
Carriers consider anything more than 5% opt-out to be a high rate for consumers who have opted in and therefore should want to receive these messages.
Can I turn off inbound SMS?
New US local (10DLC) numbers start with messaging off, so they don’t receive text messages until messaging is enabled on them. See Enable messaging on your number. Once a number has messaging on, there’s no setting to turn off inbound messages on it.
Do you have a messaging queue?
We do not have a “scheduled” queue, but messages that exceed your throughput will be entered into your Space’s backlog and sent when possible. Read about the backlog and queue system here! The default message backlog is 10,000 for the entire Space. These limits can be increased based on the use case and individual approval following an account verification request.
Am I billed once a message is in the queue?
Messages are charged when they are ‘Sent’ successfully - meaning they leave our network without issue. They are charged regardless of whether or not they deliver after they have left our network. You are not charged while your messages are queued or ‘failed’ (failed meaning they never left our network).
Where can I find information on specific error codes?
Visit our error code explanation page for details.