Dev platform

Deliver every
message with a
ready-to-use API

Manage your communications effortlessly, save time, and focus on creating exceptional applications with powerful APIs tailored for developers.

Cross-channel communication

Discover our best-in-industry API solutions

MessageFlow provides developers with a powerful platform to effectively manage marketing campaigns and effortlessly send transactional messages at any scale.

We offer comprehensive Rest API documentation, code samples, and dedicated support to ensure a smooth integration process.

Deliverability icon

Deliverability

Experience our outstanding 99% deliverability rate across a wide range of channels on a global scale.

Deliverability icon

Scalability

Send large volume of messages without any performance issues
or downtime.

Deliverability icon

Expertise

Redefine your communication operations by leveraging our 300-strong team of experts.

Deliverability icon

24/7 Support

Overcome obstacles with our best-in-class support service that’s always ready to assist you.

Trusted by enterprises, loved by developers:

Coca cola logo
Starbucks logo
DHL logo
T-Mobile logo
IKEA logo
Douglas logo
Volkswagen logo
Carrefour logo
Loved by developers

Developer-centric
platform

Our API empowers cross-channel communication with unmatched flexibility, scalability, and high-performance capabilities, ensuring seamless interactions across various platforms and devices.

  • Sample code and examples
  • Versioned API changes
  • Webhooks
  • Test environment
  • Interactive documentation
                        
var client = new RestClient("https://api.messageflow.com/v2.1/scenario/trigger");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "REPLACE_KEY_VALUE");
request.AddParameter("application/json", "{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-XXXXX\",\"recipientEmail\":\"\",\"recipientMobileNumber\":\"string\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
                        
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "https://api.messageflow.com/v2.1/scenario/trigger"

payload := strings.NewReader("{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-XXXXX\",\"recipientEmail\":\"\",\"recipientMobileNumber\":\"string\"}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("content-type", "application/json")
req.Header.Add("authorization", "REPLACE_KEY_VALUE")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}
                        
HttpResponse<String> response =
Unirest.post("https://api.messageflow.com/v2.1/scenario/trigger")
.header("content-type", "application/json")
.header("authorization", "REPLACE_KEY_VALUE")
.header("application-key", "REPLACE_KEY_VALUE")
.body("{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-
XXXXX\",\"recipientEmail\":\"\",\"recipientMobileNumber\":\"string\"}")
.asString();
                        
var request = require("request");

var options = {
method: 'POST',
url: 'https://api.messageflow.com/v2.1/scenario/trigger',
headers: {'content-type': 'application/json', authorization: 'REPLACE_KEY_VALUE'},
body: {
scenarioId: 'XXXXXX-XXXXX-XXXXX-XXXXX',
recipientEmail: '',
recipientMobileNumber: 'string'
},
json: true
};

request(options, function (error, response, body) {
if (error) throw new Error(error);

console.log(body);
});
                        
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.messageflow.com/v2.1/scenario/trigger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-XXXXX\",\"recipientEmail\":\"\",\"recipientMobileNumber\":\"string\"}",
CURLOPT_HTTPHEADER => array(
"authorization: REPLACE_KEY_VALUE",
"content-type: application/json"
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
                        
url = "https://api.messageflow.com/v2.1/scenario/trigger"

payload = "{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-XXXXX\",\"recipientEmail\":\"\",\"recipientMobileNumber\":\"string\"}"
headers = {
'content-type': "application/json",
'authorization': "REPLACE_KEY_VALUE"
}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
                        
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.messageflow.com/v2.1/scenario/trigger")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'REPLACE_KEY_VALUE'
request.body = "{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-XXXXX\",\"recipientEmail\":\"\",\"recipientMobileNumber\":\"string\"}"

response = http.request(request)
puts response.read_body
                        
echo '{"scenarioId":"XXXXXX-XXXXX-XXXXX-XXXXX","recipientEmail":"","recipientMobileNumber":"string"}' | \
http POST https://api.messageflow.com/v2.1/scenario/trigger \
authorization:REPLACE_KEY_VALUE \
content-type:application/json","recipientMobileNumber":"string"}'
Expert developer assistance

Quick and efficient
deployment

Our team is available to assist you throughout every stage of the integration process.

  • Onboarding specialist
  • Deliverability expert
  • Second-level tech support specialist
  • High SLA for seamless service implementation
  • Customer success specialist
MessageFlow documentation visual
                        
var client = new RestClient("https://api.messageflow.com/v2.1/contact");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "REPLACE_KEY_VALUE");
request.AddHeader("application-key", "REPLACE_KEY_VALUE");
request.AddParameter("application/json", "[{\"companyName\":\"Example company\",\"createdAt\":\"2019-02-01 20:12:12\",\"email\":\"\",\"externalId\":\"XXX-XXX-XXX\",\"firstName\":\"First name\",\"lastName\":\"Last name\",\"phoneNumber\":\"123123123\",\"externalData\":{\"test\":\"test\",\"createdAt\":\"1989-09-28\",\"isClient\":false},\"addToGroup\":[0]}]", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
                        
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "https://api.messageflow.com/v2.1/contact"

payload := strings.NewReader("[{\"companyName\":\"Example company\",\"createdAt\":\"2019-02-01 20:12:12\",\"email\":\"\",\"externalId\":\"XXX-XXX-XXX\",\"firstName\":\"First name\",\"lastName\":\"Last name\",\"phoneNumber\":\"123123123\",\"externalData\":{\"test\":\"test\",\"createdAt\":\"1989-09-28\",\"isClient\":false},\"addToGroup\":[0]}]")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("content-type", "application/json")
req.Header.Add("authorization", "REPLACE_KEY_VALUE")
req.Header.Add("application-key", "REPLACE_KEY_VALUE")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}
World-class API

Designed
for developers

Our powerful and user-friendly RESTful API ensures complete integration flexibility for your application. MessageFlow allows for seamless and hassle-free connection with any system, supporting multi-channel communication regardless of the programming language your application was built in.

One API, global reach

What is MessageFlow?

MessageFlow is a unique global cross-communication platform designed to enhance your automated communication, making it seamless, efficient, and more impactful than ever before.

Using a single REST API, you can leverage our smart SMS service, run efficient email campaigns, and send powerful push notifications, building comprehensive communication solutions.