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.

Register now
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.

Scalability icon
Scalability

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

Expertise icon
Expertise

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

Support 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
Read docs
C#
C#
Go
Go
Java
Java
Node
Node
PHP
PHP
Python
Python
Ruby
Ruby
Shell
Shell
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\":\"test@test.com\",\"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\":\"test@test.com\",\"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\":\"test@test.com\",\"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: 'test@test.com',
	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\":\"test@test.com\",\"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;
}
import requests
 
url = "https://api.messageflow.com/v2.1/scenario/trigger"
 
payload = "{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-XXXXX\",\"recipientEmail\":\"test@test.com\",\"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\":\"test@test.com\",\"recipientMobileNumber\":\"string\"}"
 
response = http.request(request)
puts response.read_body
echo '{"scenarioId":"XXXXXX-XXXXX-XXXXX-XXXXX","recipientEmail":"test@test.com","recipientMobileNumber":"string"}' |  \
  http POST https://api.messageflow.com/v2.1/scenario/trigger \
  authorization:REPLACE_KEY_VALUE \
  content-type:application/json","recipientMobileNumber":"string"}'
MessageFlow documentation visual
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
  • C#
    C#
    Go
    Go
    Java
    Java
    Node
    Node
    PHP
    PHP
    Python
    Python
    Ruby
    Ruby
    Shell
    Shell
    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\":\"test@test.com\",\"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\":\"test@test.com\",\"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\":\"test@test.com\",\"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: 'test@test.com',
    	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\":\"test@test.com\",\"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;
    }
    import requests
     
    url = "https://api.messageflow.com/v2.1/scenario/trigger"
     
    payload = "{\"scenarioId\":\"XXXXXX-XXXXX-XXXXX-XXXXX\",\"recipientEmail\":\"test@test.com\",\"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\":\"test@test.com\",\"recipientMobileNumber\":\"string\"}"
     
    response = http.request(request)
    puts response.read_body
    echo '{"scenarioId":"XXXXXX-XXXXX-XXXXX-XXXXX","recipientEmail":"test@test.com","recipientMobileNumber":"string"}' |  \
      http POST https://api.messageflow.com/v2.1/scenario/trigger \
      authorization:REPLACE_KEY_VALUE \
      content-type:application/json","recipientMobileNumber":"string"}'
    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.

    Choose the perfect one-stop-shop for your omnichannel communication

    Register now
    Send the way you want

    Treamline Your Communication Processes with an All-in-One API

    An all-in-one API that supports multiple communication channels such as Email, SMS, and Push notifications can be a
    game-changer for businesses looking to streamline their communication processes. With this type of API, you can easily integrate with multiple channels and manage all your communication needs in one place.

    Let's keep in touch!

    Stay ahead of the curve with our newsletter, and be the first to know about the latest technological advancements and innovations!

    Thank you for subscribing!

    © 2023 messageflow.com | All rights reserved. | We use cookies.