curl --request POST \
--url https://api.gleap.io/v3/engagement/emails/render-canvas \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'project: <project>' \
--data '
{
"emailStyle": "<string>",
"root": "<string>",
"sender": "<string>",
"lang": "<string>",
"subject": "<unknown>",
"preheader": "<unknown>",
"brand": "<unknown>"
}
'import requests
url = "https://api.gleap.io/v3/engagement/emails/render-canvas"
payload = {
"emailStyle": "<string>",
"root": "<string>",
"sender": "<string>",
"lang": "<string>",
"subject": "<unknown>",
"preheader": "<unknown>",
"brand": "<unknown>"
}
headers = {
"project": "<project>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
project: '<project>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
emailStyle: '<string>',
root: '<string>',
sender: '<string>',
lang: '<string>',
subject: '<unknown>',
preheader: '<unknown>',
brand: '<unknown>'
})
};
fetch('https://api.gleap.io/v3/engagement/emails/render-canvas', 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.gleap.io/v3/engagement/emails/render-canvas",
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([
'emailStyle' => '<string>',
'root' => '<string>',
'sender' => '<string>',
'lang' => '<string>',
'subject' => '<unknown>',
'preheader' => '<unknown>',
'brand' => '<unknown>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"project: <project>"
],
]);
$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.gleap.io/v3/engagement/emails/render-canvas"
payload := strings.NewReader("{\n \"emailStyle\": \"<string>\",\n \"root\": \"<string>\",\n \"sender\": \"<string>\",\n \"lang\": \"<string>\",\n \"subject\": \"<unknown>\",\n \"preheader\": \"<unknown>\",\n \"brand\": \"<unknown>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("project", "<project>")
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.gleap.io/v3/engagement/emails/render-canvas")
.header("project", "<project>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"emailStyle\": \"<string>\",\n \"root\": \"<string>\",\n \"sender\": \"<string>\",\n \"lang\": \"<string>\",\n \"subject\": \"<unknown>\",\n \"preheader\": \"<unknown>\",\n \"brand\": \"<unknown>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gleap.io/v3/engagement/emails/render-canvas")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["project"] = '<project>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"emailStyle\": \"<string>\",\n \"root\": \"<string>\",\n \"sender\": \"<string>\",\n \"lang\": \"<string>\",\n \"subject\": \"<unknown>\",\n \"preheader\": \"<unknown>\",\n \"brand\": \"<unknown>\"\n}"
response = http.request(request)
puts response.read_body{
"slot": "<string>",
"css": "<string>",
"html": "<string>"
}Render the email editor canvas
The editor canvas of an email: the email of the look (emailStyle) rendered around an
empty body, with slot marking where the body goes, and css that styles the editor’s
content (TipTap markup under the root selector) like the renderer styles the body.
Takes the same values as render-preview except message. Nothing is stored or sent.
curl --request POST \
--url https://api.gleap.io/v3/engagement/emails/render-canvas \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'project: <project>' \
--data '
{
"emailStyle": "<string>",
"root": "<string>",
"sender": "<string>",
"lang": "<string>",
"subject": "<unknown>",
"preheader": "<unknown>",
"brand": "<unknown>"
}
'import requests
url = "https://api.gleap.io/v3/engagement/emails/render-canvas"
payload = {
"emailStyle": "<string>",
"root": "<string>",
"sender": "<string>",
"lang": "<string>",
"subject": "<unknown>",
"preheader": "<unknown>",
"brand": "<unknown>"
}
headers = {
"project": "<project>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
project: '<project>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
emailStyle: '<string>',
root: '<string>',
sender: '<string>',
lang: '<string>',
subject: '<unknown>',
preheader: '<unknown>',
brand: '<unknown>'
})
};
fetch('https://api.gleap.io/v3/engagement/emails/render-canvas', 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.gleap.io/v3/engagement/emails/render-canvas",
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([
'emailStyle' => '<string>',
'root' => '<string>',
'sender' => '<string>',
'lang' => '<string>',
'subject' => '<unknown>',
'preheader' => '<unknown>',
'brand' => '<unknown>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"project: <project>"
],
]);
$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.gleap.io/v3/engagement/emails/render-canvas"
payload := strings.NewReader("{\n \"emailStyle\": \"<string>\",\n \"root\": \"<string>\",\n \"sender\": \"<string>\",\n \"lang\": \"<string>\",\n \"subject\": \"<unknown>\",\n \"preheader\": \"<unknown>\",\n \"brand\": \"<unknown>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("project", "<project>")
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.gleap.io/v3/engagement/emails/render-canvas")
.header("project", "<project>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"emailStyle\": \"<string>\",\n \"root\": \"<string>\",\n \"sender\": \"<string>\",\n \"lang\": \"<string>\",\n \"subject\": \"<unknown>\",\n \"preheader\": \"<unknown>\",\n \"brand\": \"<unknown>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gleap.io/v3/engagement/emails/render-canvas")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["project"] = '<project>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"emailStyle\": \"<string>\",\n \"root\": \"<string>\",\n \"sender\": \"<string>\",\n \"lang\": \"<string>\",\n \"subject\": \"<unknown>\",\n \"preheader\": \"<unknown>\",\n \"brand\": \"<unknown>\"\n}"
response = http.request(request)
puts response.read_body{
"slot": "<string>",
"css": "<string>",
"html": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Body
Body of render-canvas: the preview body without the message, plus the editor's content selector.
CSS selector of the editor's content element, e.g. #email-canvas .ProseMirror.
A teammate id, or { id?, customSenderName? }. Defaults to the current user.
Unsaved emailBrand values from the brand settings page.
Conversational emails show no unsubscribe line. Defaults to marketing (a newsletter).
conversational, marketing