Getting started

Getting started with the Signal API

Service page:

Use the RESTful Signal API to send messages to Signal users.

To use this API you must have a Signal API account. You can obtain an account at the above service page.


Account credentials can be provided using either by including the system ID and password credentials in the request payload or by using "basic authentication".

Credentials in the request payload

The systemid and password fields of the JSON payload in the request contain the account credentials.

POST /signal/message HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 100

{"systemid":"abcdef1234","password":"1234567890","destination":"447700123123","text":"Hello world!"}

Basic authentication

Use your SMPP account system ID and password for the REST call basic authentication username and password. The username and password will be combined to form a base64-encoded string

POST /signal/message HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWJjZGVmMTIzNDoxMjM0NTY3ODkw
Content-Length: 52

{"destination":"447700123123","text":"Hello world!"}

Send a message

The destination and text fields must be provided as a minimum in your request.

  • destination: mobile number of Signal user
  • text: the text message to send to the user

See Send message for using REST to send a message with the Signal API.


Send the "Hello world!" message to a single Signal user (+44770012313) using the Melrose Labs Signal API account with system ID 1234567890 and password 1234567890.

cURL example

curl --request POST \
     --url \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
  "systemid": "abcdefgh",
  "password": "1234567890",
  "destination": "447700123123",
  "text": "Hello world!"

Python example

import requests

url = ""

payload = {
    "systemid": "abcdefgh",
    "password": "1234567890",
    "destination": "447700123123",
    "text": "Hello world!"
headers = {
    "accept": "application/json",
    "content-type": "application/json"

response =, json=payload, headers=headers)


Node.js example

const sdk = require('api')('@melrose-labs/v1.0#1ryfblhdkefup');

  systemid: 'abcdefgh',
  password: '1234567890',
  destination: '447700123123',
  text: 'Hello world!'
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));