Developers

APIs, tutorials, tools and reference for building with Melrose Labs CPaaS.

Documentation Portal

We provide comprehensive documentation, including API specifications, libraries, code samples for all the main languages, and details on the operation of services. We want to ensure you have whatever helps you make best use of our services.

Get started in 5 minutes

  1. Get an API key from the portal
  2. Choose your API: SMS, Rich Messaging, REST-SMPP Bridge or others
  3. Follow the getting-started guide and make your first request
  4. Explore tutorials for language-specific code samples

If you have any questions, please email support@melroselabs.com or submit a support request.

Tools

Tools to help you develop, test and integrate.

SMS & SMPP

SMSC Simulator

SMPP SMSC simulator to test SMS messaging applications. Generate MO SMS using Inbound MO SMS Tool or SMPP.

SMS Developer Tools

Tools for developers and operations teams building, deploying and maintaining applications that support SMS.

SMPP Client (browser-based)

SMPP client for testing with SMS gateways and SMSCs from a web browser. Supports SMPP v3.3, v3.4 and v5.

SMPP Client for macOS

SMPP client for testing with SMS gateways and SMSCs. Supports SMPP v3.3, v3.4, and v5. Available for macOS.

SMPP Client for Windows

SMPP client for testing with SMS gateways and SMSCs. Supports SMPP v3.3, v3.4, and v5. Available for Windows.

SMPP Testing

SMPP compliance and performance testing of SMSCs, SMS gateways and apps. Version support and load testing.

RCS

RCS Developer Tools

Tools for developers and operations teams building, deploying and maintaining applications that support RCS.

RCS MaaP Simulator

Simulate RCS messaging between a chatbot and a chatbot server, and between a chatbot and a user's mobile.

General

Melrose Labs CLI

Command-line tool for voice, messaging, video and identity APIs. (NPM )

APIs

REST APIs for SMS, rich messaging, RCS, Iridium satellite and more. Full reference documentation is on developers.melroselabs.com.

SMS

SMS API for sending, receiving and managing SMS.

Rich Messaging

Send messages to mobiles containing rich and interactive content.

Iridium

SMS and SBD with Iridium satellite phones.

REST-SMPP Bridge

Bridge between REST and SMPP for sending SMS.

Signal

Send messages to users of Signal.

Get an API key for use with our voice, messaging, video and identity APIs.

SIGN-UP | LOGIN TO GET API KEY

Service Documentation

Our service documentation for developers provides indepth documentation on each of our services, including quickstart guides, tutorials, code samples, configuration examples and technical descriptions.

REST API documentation can be found at Rich Messaging API - Cards

Create a card using the Rich Messaging Cards service with the RESTful Rich Messaging API
Example using cURL, Node.js, Python, PHP

Create a card using a template and get URL of new card.

Request:

curl https://api.melroselabs.com/richmessaging/card/ \
	--header 'x-api-key: [API_KEY]' --header 'Content-Type: application/json' \
	--data-raw '{"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""}'

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

Request:

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.melroselabs.com/richmessaging/card/',
  'headers': {
    'x-api-key': '[API_KEY]',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""})
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body); // response is of type application/json
});

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

Request:

import requests
import json

url = "https://api.melroselabs.com/richmessaging/card/"
payload = {
	{"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""}
}
headers = {
  'x-api-key': '[API_KEY]',
  'Content-Type': 'application/json'
}

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

# response is of type application/json
print(response.text.encode('utf8'))

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

Request:

<?php 
$data = {"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""}

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.melroselabs.com/richmessaging/card/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "x-api-key: [API_KEY]",
    "Content-Type: application/json"
  )
));

$response = curl_exec($curl);

curl_close($curl);

echo $response; // response is of type application/json
?>

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

The following card templates can be used with Rich Messaging API - Cards

Card Search
Template ID
10
[10.1]
Property Letting v1

Property lettings card used to promote a property.

The property letting card can be used to notify customers of properties that are being let. These could be for holiday lets. Use the action buttons to go to a website with more details and booking page. < less
more >
propertyname
Property name

Name of the property being let.

urlimage
Image URL

URL of the image to be displayed on the card. Image should be under 2MB.

propertysummary
Property summary

A brief description of the property.

urldetails
Details URL

URL of web page with more details on the property.

urlbooknow
Booking URL

URL of web page where property can be booked.

{
    "propertyname": "Santorini Escape",
    "urlimage": "https://richmsg.io/media/images/seaview-apartments.png",
    "propertysummary": "A luxurious two-bedroom apartment with the best views over Santorini.",
    "urldetails": "https://melroselabs.com/services/rich-messaging/",
    "urlbooknow": "https://melroselabs.com/services/rich-messaging/"
}
Template ID
11
[11.1]
Property for Sale v1

Property for sale card.

Use this card to advertise a property for sale to a potentially interested buyer. This card could be sent as a result of the potential buyer having registered interest in houses located in certain areas that meet specific criteria. < less
more >
status
Property status

Status of the property sale (e.g. FOR SALE).

propertyname
Property name

Name of the property being sold.

urlimage
Image URL

URL of image of the property.

price
Sale price

Sale price of property

propertysummary
Property summary

A brief description of the property.

propertydescription
Property description

A long description of the property.

urldetails
Details URL

URL of web page with more details on the property.

urlarrangeviewing
Booking URL

URL of web page where property viewing can be arranged.

{
    "status": "FOR SALE",
    "urlimage": "https://richmsg.io/media/images/propertyforsale.jpeg",
    "urlarrangeviewing": "https://abc.com",
    "urldetails": "https://abc.com",
    "propertyname": "Caldergrove Gardens, EH11",
    "price": "\u00a3292,000",
    "propertysummary": "3 bedrooms. New development.",
    "propertydescription": "Caldergrove Gardens is an innovative and stylish development of 55, 3, 4 & 5 bedroom detached homes, offering seven contemporary house styles. Show home open Thursday - Monday."
}
Template ID
12
[12.1]
Promotion v1

Promotion for use in retail by consumer.

Use the promotion card template to send promotions to customers that have signed-up to receive them from your organisation. Send a link to the card in an SMS text message, or other messaging channels, for customers to click on the link and display the card showing your promotion. When sending the link in an SMS text message, it is essential to ensure that the text accompanying the link is engaging and encourages customers to click on the link. < less
more >
urllogo
Logo URL

URL of the logo to be displayed on the card. Image should be under 2MB.

promotitle
Promotion title

Title of the promotion.

subtitle
Subtitle

Subtitle of the promotion.

urlimage
Image URL

URL of the image to be displayed on the card. Image should be under 2MB.

details
Details of promotion

A brief description of the promotion.

actiontext
Action text

Text on button that user clicks to order, book or find out more.

urlaction
Action URL

URL of web page where user can order, book or find out more.

additionaltext
Additional text

Any additional details regarding the promotion.

{
    "urllogo": "https://richmsg.io/media/images/pizza-logo.png",
    "promotitle": "Pizza Tuesday",
    "subtitle": "Buy one and get one free!",
    "urlimage": "https://richmsg.io/media/images/pizza.jpeg",
    "details": "When you order one large pizza on Tuesdays, we will give you another large pizza of your choice for free. Terms and conditions apply.",
    "actiontext": "Order Now",
    "urlaction": "https://abc.com",
    "additionaltext": "Terms and Conditions Apply"
}
Template ID
13
[13.1]
Ticket v1

Ticket card for an event.

event
Event name

Name of the event for the ticket.

subtitle
Subtitle

Subtitle of the event for the ticket.

urlimage
Image URL

URL of the image to be displayed on the ticket.

datetime
Event date and time

Date and time of the event.

venue
Venue

Where the event is taking place.

seat
Seat

Seat allocated to this ticket.

instructions
Instructions

Instructions associated with ticket and event.

{
    "event": "Strictly Dancing",
    "subtitle": "Christmas Tour",
    "urlimage": "https://melroselabs.com/phpqrcode/qrimg.php?qr=abc",
    "datetime": "23 Jan 2020, 7pm",
    "venue": "Dome, Glasgow, G1 1AB",
    "instructions": "Arrive 30 minutes prior to the performance for security checks.",
    "seat": "Q32",
    "urlaction": "https://abc.com"
}
Template ID
14
[14.1]
Coupon v1

Coupon card for use in retail with consumers.

Use this card template to create cards to give customers a coupon that can be used for discounts or other benefits. The coupon will generate a QR code from the coupon number. < less
more >
logo
Logo URL

URL of the logo image to be displayed on the coupon.

coupontitle
Coupon title

Title to show on the coupon.

subtitle
Subtitle

Subtitle of the coupon.

couponnumber
Coupon number

Text showing coupon number. Can contain letters and numbers.

validuntildatetime
Validity date and time

Date and time the the coupon is valid until.

validlocations
Valid locations

Locations at which the coupon is valid.

details
Details

Details on the use of this coupon for the holder of the coupon.

{
    "logo": "https://richmsg.io/media/images/sf-logo.png",
    "coupontitle": "Sainsfield Coupon",
    "subtitle": "Use this coupon to receive 5% discount on your next shop!",
    "couponnumber": "9823782738213",
    "validuntildatetime": "23 Jan 2020, 7pm",
    "validlocations": "All UK stores",
    "details": "Show this coupon when you go to the checkout to receive your discount."
}
Template ID
15
[15.1]
Restaurant booking v1

Card template to encourage customers to make reservations.

Use this card template to create cards to send to customers to encourage them to make a reservation in one of the upcoming available time slots. Will also keep a restaurant in the mind of the customer to increase recall and likelihood of booking at a later date, even when they are not looking to book one of the timeslots. < less
more >
topImage
Image URL

URL of the image to be displayed.

restaurantName
Restaurant name

Name of restaurant.

ratingValue
Rating value

Average rating from reviewers

reviewCount
Review count

Number of reviews

message
Message

Message to show encouraging patron to book.

timeWhenAvailability
When available title

Title showing when times are available (e.g. "Tonight's availability")

timeSlotA
Timeslot A

Time for slot (e.g. "5:00")

timeSlotB
Timeslot B

Time for slot (e.g. "5:00")

timeSlotC
Timeslot C

Time for slot (e.g. "5:00")

timeSlotD
Timeslot D

Time for slot (e.g. "5:00")

timeSlotE
Timeslot E

Time for slot (e.g. "5:00")

timeSlotF
Timeslot F

Time for slot (e.g. "5:00")

urlActionA
Action A URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionB
Action B URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionC
Action C URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionD
Action D URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionE
Action E URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionF
Action F URL

Website link (URL) that user is taken to when they click on the button for this time slot.

{
    "restaurantName": "Benedicts restaurant",
    "topImage": "https://richmsg.io/media/images/restaurant-burger-meal.jpg",
    "ratingValue": 4.5,
    "reviewCount": 319,
    "message": "We're open tonight and all burger meals have 10% discount. Book a table before they go!",
    "timeWhenAvailability": "Tonight's availability",
    "timeSlotA": "5:30",
    "urlActionA": "https://abc.com/A",
    "timeSlotB": "7:30",
    "urlActionB": "https://abc.com/B",
    "timeSlotC": "8:00",
    "urlActionC": "https://abc.com/C",
    "timeSlotD": "8.30",
    "urlActionD": "https://abc.com/D",
    "timeSlotE": "9:00",
    "urlActionE": "https://abc.com/E",
    "timeSlotF": "other",
    "urlActionF": "https://abc.com/F"
}
Create a message using Notification Gateway service with the REST API
Example using cURL, Node.js, Python, PHP

Create a message for delivery and get transaction ID for submission.

JSON request: