Create a message
Create and send a message as a OneMove push notification, an email, or both
curl --request POST \
--url https://api.yorlet.com/v1/loyalty/messages \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"body": "<string>",
"recipient": {
"type": "building",
"building": "<string>"
},
"title": "<string>",
"channels": []
}
'import requests
url = "https://api.yorlet.com/v1/loyalty/messages"
payload = {
"body": "<string>",
"recipient": {
"type": "building",
"building": "<string>"
},
"title": "<string>",
"channels": []
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
body: JSON.stringify('<string>'),
recipient: {type: 'building', building: '<string>'},
title: '<string>',
channels: []
})
};
fetch('https://api.yorlet.com/v1/loyalty/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.yorlet.com/v1/loyalty/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'body' => '<string>',
'recipient' => [
'type' => 'building',
'building' => '<string>'
],
'title' => '<string>',
'channels' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.yorlet.com/v1/loyalty/messages"
payload := strings.NewReader("{\n \"body\": \"<string>\",\n \"recipient\": {\n \"type\": \"building\",\n \"building\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"channels\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.yorlet.com/v1/loyalty/messages")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"body\": \"<string>\",\n \"recipient\": {\n \"type\": \"building\",\n \"building\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"channels\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yorlet.com/v1/loyalty/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"body\": \"<string>\",\n \"recipient\": {\n \"type\": \"building\",\n \"building\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"channels\": []\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created": 123,
"object": "loyalty.message",
"body": "<string>",
"category": "announcement",
"channels": [
"email"
],
"delivery": {
"attempted": 123,
"delivered": 123,
"failed": 123,
"skipped": 123,
"read": 0
},
"email_delivery": {
"attempted": 123,
"delivered": 123,
"failed": 123,
"skipped": 123
},
"failure_code": "no_email",
"recipient": {
"type": "building",
"building": "<string>"
},
"sent_at": 123,
"status": "failed",
"title": "<string>",
"account": "<string>",
"deleted": false
}Authorizations
API Key authentication. Use "Bearer YOUR_API_KEY".
Body
The body of the message shown to the recipient.
1 - 500The recipient of the message. Must be a building, or a customer with an active tenancy in the account.
- Building
- Option 2
Show child attributes
Show child attributes
The title of the message shown to the recipient.
1 - 100The category of the message, shown on the building noticeboard in OneMove.
announcement, event, offer, alert, null The delivery channels for the message. push sends a OneMove notification. email sends to the resident or customer email. Defaults to ["push"] when omitted.
1How the message is delivered. push sends a OneMove notification. email sends to the resident or customer email address.
email, push Response
Returns the created message.
Unique identifier for the object.
Time at which the object was created. Measured in seconds since the Unix epoch.
loyalty.message The body of the message shown to the recipient.
The category of the message. null when the message is not categorised.
announcement, event, offer, alert, null The delivery channels used for the message.
1How the message is delivered. push sends a OneMove notification. email sends to the resident or customer email address.
email, push A summary of the OneMove push delivery attempts for the message.
Show child attributes
Show child attributes
A summary of the email delivery attempts for the message. null when email was not one of the requested channels.
Show child attributes
Show child attributes
The reason the message could not be delivered, if it failed.
no_email, no_onemove_user, no_device_tokens, send_error, null The recipient of the message.
- Building
- Option 2
Show child attributes
Show child attributes
The date and time the message was sent.
The status of the message.
failed, pending, sent The title of the message shown to the recipient.
The account that the object belongs to. Only returned if the request is made with a valid Yorlet-Context header.
Only returned if the object has been deleted.
Was this page helpful?
curl --request POST \
--url https://api.yorlet.com/v1/loyalty/messages \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"body": "<string>",
"recipient": {
"type": "building",
"building": "<string>"
},
"title": "<string>",
"channels": []
}
'import requests
url = "https://api.yorlet.com/v1/loyalty/messages"
payload = {
"body": "<string>",
"recipient": {
"type": "building",
"building": "<string>"
},
"title": "<string>",
"channels": []
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
body: JSON.stringify('<string>'),
recipient: {type: 'building', building: '<string>'},
title: '<string>',
channels: []
})
};
fetch('https://api.yorlet.com/v1/loyalty/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.yorlet.com/v1/loyalty/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'body' => '<string>',
'recipient' => [
'type' => 'building',
'building' => '<string>'
],
'title' => '<string>',
'channels' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.yorlet.com/v1/loyalty/messages"
payload := strings.NewReader("{\n \"body\": \"<string>\",\n \"recipient\": {\n \"type\": \"building\",\n \"building\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"channels\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.yorlet.com/v1/loyalty/messages")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"body\": \"<string>\",\n \"recipient\": {\n \"type\": \"building\",\n \"building\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"channels\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yorlet.com/v1/loyalty/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"body\": \"<string>\",\n \"recipient\": {\n \"type\": \"building\",\n \"building\": \"<string>\"\n },\n \"title\": \"<string>\",\n \"channels\": []\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created": 123,
"object": "loyalty.message",
"body": "<string>",
"category": "announcement",
"channels": [
"email"
],
"delivery": {
"attempted": 123,
"delivered": 123,
"failed": 123,
"skipped": 123,
"read": 0
},
"email_delivery": {
"attempted": 123,
"delivered": 123,
"failed": 123,
"skipped": 123
},
"failure_code": "no_email",
"recipient": {
"type": "building",
"building": "<string>"
},
"sent_at": 123,
"status": "failed",
"title": "<string>",
"account": "<string>",
"deleted": false
}