Skip to main content
POST
/
email-templates
/
{templateName}
/
test
Send a test email using the specified template and tenant branding
curl --request POST \
  --url https://api.royalti.io/email-templates/{templateName}/test \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "to": "you@yourlabel.com",
  "customData": {}
}
'
import requests

url = "https://api.royalti.io/email-templates/{templateName}/test"

payload = {
    "to": "you@yourlabel.com",
    "customData": {}
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({to: 'you@yourlabel.com', customData: {}})
};

fetch('https://api.royalti.io/email-templates/{templateName}/test', 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.royalti.io/email-templates/{templateName}/test",
  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([
    'to' => 'you@yourlabel.com',
    'customData' => [
        
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "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.royalti.io/email-templates/{templateName}/test"

	payload := strings.NewReader("{\n  \"to\": \"you@yourlabel.com\",\n  \"customData\": {}\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	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.royalti.io/email-templates/{templateName}/test")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"to\": \"you@yourlabel.com\",\n  \"customData\": {}\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.royalti.io/email-templates/{templateName}/test")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"to\": \"you@yourlabel.com\",\n  \"customData\": {}\n}"

response = http.request(request)
puts response.read_body
{
  "status": "success",
  "message": "Test email sent successfully",
  "data": {
    "templateName": "<string>",
    "sentTo": "<string>",
    "tenantId": 123
  }
}
{
  "status": "error",
  "message": "<string>",
  "code": "<string>",
  "details": {}
}
{
  "status": "error",
  "message": "<string>",
  "code": "<string>",
  "details": {}
}
{
  "status": "error",
  "message": "<string>",
  "data": {
    "availableTemplates": [
      "<string>"
    ]
  }
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

POST /email-templates//test Description: Renders the named template with sample data (optionally merged with customData) and the tenant’s branding, then sends it via the tenant’s configured email sending path. Defaults to the current user’s email if to is omitted. Authorization:
  • Required role: admin or higher
Method: POST

Code Examples

const response = await fetch('https://api.royalti.io/email-templates/welcome/test', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "ref": "#/components/schemas/SendTestEmailRequest"
  })
});

const data = await response.json();
console.log(data);
import requests

response = requests.post(
  'https://api.royalti.io/email-templates/welcome/test',
  headers={
    'Authorization': f'Bearer {token}'
  },
  json={"ref":"#/components/schemas/SendTestEmailRequest"}
)

data = response.json()
print(data)
curl -X POST https://api.royalti.io/email-templates/welcome/test \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ref":"#/components/schemas/SendTestEmailRequest"}'

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Path Parameters

templateName
string
required

Body

application/json
to
string

Recipient email. Defaults to the current user's email if omitted.

Example:

"you@yourlabel.com"

customData
object

Merged over the template's built-in sample data before rendering.

Response

Test email sent

status
string
Example:

"success"

message
string
Example:

"Test email sent successfully"

data
object