Markets open
Several people on a sunlit limestone street, each looking down at the phone in their hand
Bulk & Marketing SMS

Bulk SMS atwholesale prices

Send to up to 1,000 recipients per request on the routes you choose, with do-not-contact numbers suppressed before routing so a blocked number is never billed.

Bulk sends by APISuppression built inWholesale pricing
In short

Send to up to 1,000 numbers in one request, from a numeric or alphanumeric sender.

Numbers on your do-not-contact list are skipped before routing, every message has a status you can look up, and you pay the route rate per segment rather than a retail bundle.

What you can do

Bulk sends

Up to 1,000 recipients per request and 1,600 characters per message.

Your choice of route

Pick the route each bulk send or campaign goes out on, by tier and price.

Branded sender IDs

Alphanumeric senders where the destination allows them, numeric where it does not.

Do-not-contact list

Suppressed numbers are blocked before routing and never billed.

Message history

The status of every message, by API.

From list to launch

A campaign out of the door in four steps

The route, the list, the message and the budget are all settled before the first message leaves, and nothing goes to a number on your do-not-contact list.

  1. 01

    Pick the route

    Choose an SMS route on the marketplace by destination, tier, A2P support, sender ID type and price per message, and buy it in a few clicks.

  2. 02

    Load the list and your opt-outs

    Upload your audience and duplicates and invalid numbers are set aside. Paste or upload opt-outs to your suppression list, up to 10,000 numbers at a time.

  3. 03

    Write it and set a budget

    Set the sender ID and message, or load a saved template. The form counts segments per recipient and estimates the cost, and a spend cap guards the total.

  4. 04

    Launch and watch it run

    Start the campaign from the Dialer and watch it work through the list. Pause whenever you need to, and it picks up where it left off.

Bulk sends by API

A thousand messages, one request, a line for each

Post up to 1,000 recipients to the bulk endpoint, each with its own message of up to 1,600 characters, so personalisation happens in your stack and sending happens in ours. The reply accounts for every recipient on its own line: its status, segments, cost and message ID, or the reason it was not sent. A number on your do-not-contact list costs nothing, and if your balance runs short part-way through, the remaining recipients are marked skipped, so you always know exactly where the batch stopped.

  • Recipients, sent, failed and total cost at the top of every reply
  • Opted-out numbers listed with their reason and a cost of $0.00
  • Sent over a route you bought, at its per-segment rate
Bulk SMSExample
POST /v1/comms/sms/bulkCompleted
Route
UK mobile · Premium · A2P
Rate
$0.0310 per segment
Sender ID
AcmeStore
Recipients
1,000
Sent
986
Failed
14
12 opted out, 2 refused. None billed.
Total cost
$31.65
ToStatusSegmentsCostDetail
+44 7700 900118Sent1$0.0316Hi Sam, your 20% code is ready
+44 7700 900142Failed·$0.0000Opted out: on your do-not-contact list
+44 7700 900157Sent2$0.0630Longer offer with delivery details
+44 7700 900171Failed1$0.0000Refused by the route, charge reversed
+44 7700 900186Sent1$0.0316Hi Priya, your 20% code is ready
SMS campaigns

Campaigns with a budget that holds

Prefer a dashboard to a script? Run the send as an SMS campaign in the Dialer, beside your voice campaigns. Pick the route, sender ID and message, and the review step shows the recipients, segments and estimated cost before you start. While it runs, you watch sent and failed counts climb against the list. A spend cap you set pauses the campaign by itself when it is reached, with a notification telling you why, and a balance that reaches zero pauses it too instead of churning through refused sends.

  • Concurrency and a pause between sends to pace the campaign
  • Saved message templates, reused across campaigns
  • A completion email with messages sent and the spend
Dialer · SMS campaignExample
Spring sale, UK
Running
Pause (resumable)
Route
UK mobile · Premium
Sender ID
AcmeStore
Message
91 characters, 1 segment
Pacing
10 at a time, 0.5 s apart
Progress
6,458 of 10,000 processed
Sent
6,420
Failed
38
Pending
3,542
Spend
Spend cap $320.00
$203.00of $316.20 estimated for the list

Pauses by itself at the spend cap, or if the balance reaches zero.

Compliance built in

Opt-outs honoured on every message, not every export

Suppression is not a spreadsheet you have to remember to re-import before each send. Your do-not-contact list is checked against every message at the moment it is sent, whether it comes from a single API send, the bulk endpoint, an SMS campaign or an SMPP bind, and platform-wide blocks apply on top. A suppressed number is turned away before it is routed or charged, so it is never messaged.

  • Paste or upload up to 10,000 numbers at once, with duplicates reported
  • Every entry shows its source and whether it is yours or platform-wide
  • Export the list as CSV whenever an audit asks for it
  • The same list protects your voice campaigns in the Dialer
Suppression listExample
Paste numbersUpload CSVExport CSV
2,140 numbers submitted: 2,104 added, 36 already on the list.
NumberScopeSourceAdded
+44 7700 900218MineUpload14 Sep 2026
+44 7700 900377MineManual12 Sep 2026
+44 7700 900402MineUpload14 Sep 2026
+1 555 0142PlatformManual2 Sep 2026
Checked at send time on
Refused before routing, never billed
  • Single API sends
  • Bulk API sends
  • SMS campaigns
  • SMPP binds
Everything a sender needs

Reach, control and proof in one place

Built for teams that send promotions, reminders and lifecycle messages at volume, and answer for every one of them.

Routes by destination

SMS routes listed per destination with their tier, A2P or P2P support, sender ID type and price per message, so reach and cost are chosen together.

Branded senders

Send from your brand name on routes that carry alphanumeric sender IDs, or from a number where the route calls for one.

Every language, priced right

Messages in any script are counted in their real encoding before sending, so a campaign in Arabic or Greek is billed on its true segment count.

Personal, per recipient

Each recipient in a bulk request carries its own text, so names, offers and links are merged in your own stack before anything is sent.

Smart Routing for one-off sends

Outside a campaign or bulk request, a single send can pick the cheapest, best_quality or balanced route for its destination automatically.

A status for every message

Look up any message by ID for its status, cost and reference, or page through everything you sent by date range.

Embargoed destinations refused

Messages to embargoed destinations are rejected before routing or billing, on every API send, so a stray number in a list is stopped before it goes anywhere.

Test before you send

Run a bulk request on a test key and every message is routed, priced and simulated against sandbox credit, with nothing delivered.

Why PacketExchange

More messages out of the same budget

Marketing SMS lives or dies on cost per message and on trust. Both are designed in.

Wholesale rates, retail reach

Buy the route the way carriers do, at its listed per-segment rate, plus a fee capped at $0.001 a message. At campaign volumes, the gap between a wholesale rate and a retail bundle is your margin.

Compliance on the send path

Suppression is enforced where messages are sent, on every way into the platform, so a forgotten re-import can never message a number already on your list.

A budget that is a ceiling, not a forecast

A prepaid balance, a spend cap on each campaign and an automatic pause at zero mean a campaign pauses at the figure you set instead of running on.

SMS beside voice, on one list

SMS campaigns run in the same Dialer as voice and AI agent campaigns, share one suppression list and one balance, and report into one account.

Side by side

Bulk SMS, the usual way and this way

A typical bulk SMS serviceOn PacketExchange
PricingRetail bundles or credit packs, priced per message by the providerThe route's wholesale rate per segment, plus a fee capped at $0.001
Opt-outsAn export, re-imported before each sendChecked against every message at send time, on every way in
BudgetKnown once the invoice arrivesEstimated before launch, capped per campaign, paused at a zero balance
RoutesOne undisclosed route for every destinationChosen per destination by tier, A2P support, sender ID type and price
PersonalisationMerge fields inside the provider's editorYour own text for each recipient in every bulk request
ProofA percentage on a dashboardStatus, segments and cost for every message, by API
ChannelsSMS in one tool, voice in anotherSMS, voice and AI agent campaigns in one Dialer, on one balance
Built for

Promotions

Offers, launches and seasonal campaigns.

Lifecycle messaging

Onboarding, re-engagement and win-back flows.

Reminders

Renewals, appointments and abandoned-cart nudges.

Pricing

Pay per segment. Suppressed numbers cost nothing.

Every message is billed at the route's per-segment rate plus a platform fee of 2% of that amount, capped at $0.001 per message. For example, 10,000 one-segment messages on a $0.0310 route come to $316.20, fees included.

No monthly fee, no contract and no minimum. Top up from $5 by card or crypto or from $100 by bank wire, and put a spend cap on each campaign.

Compare SMS routes and prices
  • Route rate per segment

    Listed on every SMS route before you buy it.

  • Platform fee

    2% of the carrier cost, capped at $0.001 per message.

  • Suppressed numbers

    Blocked before a route is chosen, so there is no charge.

  • Refused by the route

    Charged before hand-off and reversed in full.

The campaign form shows the segments per recipient and an estimated total before you launch.

Questions

What marketing and CRM teams ask

How many recipients can I send to at once?

Up to 1,000 per bulk API request, each with its own message. For bigger lists, send several requests in turn, or upload the audience to an SMS campaign in the Dialer and let it work through the list.

Do opted-out numbers cost anything?

No. A number on your do-not-contact list, or on the platform-wide list, is refused before a route is chosen, so it is neither messaged nor billed.

Is the suppression list a national do-not-contact registry?

No. It is your own list plus platform-wide blocks, enforced on all of your traffic. Consent, and any national registry checks your market requires, stay with you.

Can I send with my brand name?

Yes, on routes that carry alphanumeric senders. Each SMS route states whether it carries alphanumeric, numeric or pre-registered sender IDs, so check the route for a market before you buy.

What stops a campaign overspending?

Set a spend cap on the campaign and it pauses when spend reaches it. Every message is also paid from a prepaid balance, and running campaigns pause if that balance reaches zero.

Can I schedule a send?

Trigger sends from your own scheduler through the API at the moment you choose, or start a Dialer campaign when you are ready. A campaign can be paused at any time and resumes where it left off.

How do I see what happened to each message?

The bulk reply lists every recipient with its status and cost, and any message can be looked up later by ID or found in your history by date. Campaigns show their sent and failed counts as they run.

How much does a long message cost?

Messages over 160 GSM-7 characters split into segments of 153, and Unicode messages over 70 characters into segments of 67. You pay the route rate per segment, per recipient, and the platform fee stays capped at $0.001 per message.

Send your next campaign at wholesale rates

Open a free account, pick an SMS route for your market, load your opt-outs and set a spend cap. You pay per segment, and nothing for the numbers you suppress.