
The mobile-first SMS gateway for iGaming
Seamlessly integrate our powerful bulk SMS API into your existing platform and CRM.
RESTful API
CRM Plugins
Omnichannel Ready
24/7 Developer Support
Quick-start code snippets
The sandbox is free and self-serve, with no sales conversation in front of it. Issue yourself a key, send one of the bodies below, and read the receipt. Every state a live handset can produce, failures included, is reproducible there.
- Idempotency honoured for twenty four hours
- Channel resolved per handset, SMS fallback built in
- Same payload and same error codes in both environments
$mr = new MessageReach($_ENV['MR_KEY']);
$msg = $mr->messages->send([
'sender' => 'LUXPLAY',
'to' => '+35799xxxxxx',
'template' => 'free_spins_v4',
'channel' => 'sms',
'vars' => ['spins' => 50, 'expires' => '00:00'],
]);
echo $msg->id; // msg_01K4TQ8V
echo $msg->state; // queued164
markets reachable over direct binds
22k
messages per second at peak on one key
99.97%
gateway uptime, rolling twelve months
180 ms
median gateway accept time
What the gateway does for you
The things that are hard about operator messaging are routing, consent and peak load. All three live on our side of the wire so they cannot become your incident.
Bulk sends that do not queue behind anyone
Throughput is provisioned per key with a burst allowance you set yourself, so a jackpot minute on another account never becomes your backlog.
One message object, three channels
Send as SMS, upgrade to RCS where the handset supports it, and fall back automatically. Same payload, same receipt, same reporting.
Licence-aware routing
Your licence footprint sits on the key itself. A number in a country you are not cleared for never reaches a carrier; it comes back 409 instead of vanishing.
Consent that the gateway enforces
Consent is held per number, with where it came from and when. No message is built without a lookup, and a player who texts STOP falls out of the next campaign.
Quiet hours from the destination
The player's own country sets the clock, not wherever your account is registered. Anything caught by a closed window waits and goes out when it opens.
Reporting down to the segment
Ask what a campaign cost per market, per class and per segment, then pull the numbers yourself over whatever dates you name.
Integrations and mobile features
Six modules, each with its own page. Most teams start with the API and a CRM plugin, then add RCS and link tracking once the first campaign is out.
Connectors maintained by us
Operators already running on it
My retention team never opens a messaging console any more. They build the segment where they always did, and the handset decides whether it gets a rich card or a plain text.
We inherited nine operator brands with nine sender names and nine sets of paperwork. Handing the registrations over was the first week in two years nobody chased a network by email.
Players reply to marketing messages. They always did, we just never saw it. Those replies now land threaded against the send, and two of my agents work nothing else.
Questions we get asked first
Stelios Andreou and the integration team answer these themselves. If yours is not here, the same people are on the other end of the contact form.
How fast can we be live?
Ten minutes gets a test message onto a phone. What holds a launch up is never the code, it is getting your sender name cleared on each network, and that takes three days to four weeks by market.
Whose carrier connections are we sending over?
Ours. Every message hands off straight to the operator, with no reseller sitting in the middle, which is why a failure comes back in the carrier's own wording rather than a guess.
Can we keep our existing sender identity?
Keep it. Whatever name players already recognise in their thread, we file it and renew it in each market, and the console shows where every application sits so nothing goes quiet on you.
Who keeps up with the regulators in each country?
We track each market's rulebook and roll the changes out for you. If something you send today would stop being allowed next month, a warning event lands first, ahead of the failures.
Is there an SDK or is it raw HTTP?
Either. There are libraries for PHP, Node, Python, Go and Java, plus a public OpenAPI file if you would rather roll your own. Plenty of teams just post JSON and skip all of it.
How do you handle inbound and STOP?
A reply comes back on the subscription you already listen on, tied to the message that prompted it. STOP and its local variants are caught before they reach you, suppressing the player within a second even while your service is down.
Send your first message today
Grab a free sandbox key and watch every delivery state land in the console. For live traffic MessageReach clears sender registration in each market and runs the binds.


