Email Design System
Update Email Design System
Adjust the visual identity every AI-generated email renders inside
PATCH
/
api
/
v1
/
email-design-system
Update Email Design System
curl --request PATCH \
--url https://api.sequenzy.com/api/v1/email-design-system \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"designCode": {},
"compositionSpine": "<string>",
"reset": true
}
'import requests
url = "https://api.sequenzy.com/api/v1/email-design-system"
payload = {
"designCode": {},
"compositionSpine": "<string>",
"reset": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({designCode: {}, compositionSpine: '<string>', reset: true})
};
fetch('https://api.sequenzy.com/api/v1/email-design-system', 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.sequenzy.com/api/v1/email-design-system",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'designCode' => [
],
'compositionSpine' => '<string>',
'reset' => true
]),
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.sequenzy.com/api/v1/email-design-system"
payload := strings.NewReader("{\n \"designCode\": {},\n \"compositionSpine\": \"<string>\",\n \"reset\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.sequenzy.com/api/v1/email-design-system")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"designCode\": {},\n \"compositionSpine\": \"<string>\",\n \"reset\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/email-design-system")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"designCode\": {},\n \"compositionSpine\": \"<string>\",\n \"reset\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Updated the email design system and rewrote the design direction text to match.",
"designSystem": {
"version": 1,
"designCode": {
"version": 1,
"kickerStyle": "letterspaced",
"titleAlignment": "center",
"buttonShape": "pill",
"dividerStyle": "line",
"density": "airy",
"openerTreatments": ["editorial-masthead", "title-led"]
},
"compositionSpine": "editorial",
"source": "custom"
},
"directionText": "Short uppercase letter-spaced kickers above section titles. Centered headings and hero content. Fully rounded pill buttons. Thin divider lines between sections. Generous spacing: one idea per section with room to breathe. Open emails with an editorial masthead (kicker, display title, short standfirst, thin divider) or a plain typography-first opening (kicker, title, short lead text). Compose emails as typography-first editorial pieces: display headings, hairline rules, and quiet actions.",
"isDefault": false
}
{"success": false, "error": {"code": "BAD_REQUEST", "message": "Invalid email design system: unrecognized design code value"}}
{"success": false, "error": {"code": "UNAUTHORIZED", "message": "Invalid API key"}}
{"success": false, "error": {"code": "NOT_FOUND", "message": "Company not found"}}
{"success": false, "error": {"code": "CONFLICT", "message": "The email design system was modified concurrently; retry the update."}}
Adjust the company’s email design system. This is a partial update - only the fields you pass change - and it applies to every future AI email generation and sequence enrichment.
The adjustment is persisted into the company’s
emailDesignPrompt design direction text - the single source of truth: the new identity’s sentences are prepended so they win any later parse, and custom prose the text carried is preserved below them. For free-prose edits, use PATCH /companies/:companyId with emailDesignPrompt instead.
Request
object
Partial visual-grammar adjustment. Fields:
kickerStyle (chip |
letterspaced | none), titleAlignment (left | center),
buttonShape (rounded | pill), dividerStyle (line | space),
density (airy | compact), openerTreatments (array drawn from
hero-image, hero-color, header-hero, editorial-masthead,
title-led).string
Which worked-example skeleton anchors generation:
hero-led, editorial,
or product-spec.boolean
true clears the direction text and returns to the brand-derived
defaults; the next generation prefills the text again. Cannot be combined
with other fields.curl -X PATCH "https://api.sequenzy.com/api/v1/email-design-system" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"compositionSpine": "editorial",
"designCode": {
"kickerStyle": "letterspaced",
"openerTreatments": ["editorial-masthead", "title-led"]
}
}'
Responses
{
"success": true,
"message": "Updated the email design system and rewrote the design direction text to match.",
"designSystem": {
"version": 1,
"designCode": {
"version": 1,
"kickerStyle": "letterspaced",
"titleAlignment": "center",
"buttonShape": "pill",
"dividerStyle": "line",
"density": "airy",
"openerTreatments": ["editorial-masthead", "title-led"]
},
"compositionSpine": "editorial",
"source": "custom"
},
"directionText": "Short uppercase letter-spaced kickers above section titles. Centered headings and hero content. Fully rounded pill buttons. Thin divider lines between sections. Generous spacing: one idea per section with room to breathe. Open emails with an editorial masthead (kicker, display title, short standfirst, thin divider) or a plain typography-first opening (kicker, title, short lead text). Compose emails as typography-first editorial pieces: display headings, hairline rules, and quiet actions.",
"isDefault": false
}
{"success": false, "error": {"code": "BAD_REQUEST", "message": "Invalid email design system: unrecognized design code value"}}
{"success": false, "error": {"code": "UNAUTHORIZED", "message": "Invalid API key"}}
{"success": false, "error": {"code": "NOT_FOUND", "message": "Company not found"}}
{"success": false, "error": {"code": "CONFLICT", "message": "The email design system was modified concurrently; retry the update."}}
⌘I
Update Email Design System
curl --request PATCH \
--url https://api.sequenzy.com/api/v1/email-design-system \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"designCode": {},
"compositionSpine": "<string>",
"reset": true
}
'import requests
url = "https://api.sequenzy.com/api/v1/email-design-system"
payload = {
"designCode": {},
"compositionSpine": "<string>",
"reset": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({designCode: {}, compositionSpine: '<string>', reset: true})
};
fetch('https://api.sequenzy.com/api/v1/email-design-system', 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.sequenzy.com/api/v1/email-design-system",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'designCode' => [
],
'compositionSpine' => '<string>',
'reset' => true
]),
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.sequenzy.com/api/v1/email-design-system"
payload := strings.NewReader("{\n \"designCode\": {},\n \"compositionSpine\": \"<string>\",\n \"reset\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.sequenzy.com/api/v1/email-design-system")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"designCode\": {},\n \"compositionSpine\": \"<string>\",\n \"reset\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/email-design-system")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"designCode\": {},\n \"compositionSpine\": \"<string>\",\n \"reset\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Updated the email design system and rewrote the design direction text to match.",
"designSystem": {
"version": 1,
"designCode": {
"version": 1,
"kickerStyle": "letterspaced",
"titleAlignment": "center",
"buttonShape": "pill",
"dividerStyle": "line",
"density": "airy",
"openerTreatments": ["editorial-masthead", "title-led"]
},
"compositionSpine": "editorial",
"source": "custom"
},
"directionText": "Short uppercase letter-spaced kickers above section titles. Centered headings and hero content. Fully rounded pill buttons. Thin divider lines between sections. Generous spacing: one idea per section with room to breathe. Open emails with an editorial masthead (kicker, display title, short standfirst, thin divider) or a plain typography-first opening (kicker, title, short lead text). Compose emails as typography-first editorial pieces: display headings, hairline rules, and quiet actions.",
"isDefault": false
}
{"success": false, "error": {"code": "BAD_REQUEST", "message": "Invalid email design system: unrecognized design code value"}}
{"success": false, "error": {"code": "UNAUTHORIZED", "message": "Invalid API key"}}
{"success": false, "error": {"code": "NOT_FOUND", "message": "Company not found"}}
{"success": false, "error": {"code": "CONFLICT", "message": "The email design system was modified concurrently; retry the update."}}