Skip to content

Publish the draft as the next version

POST
/api/v1/workspaces/{workspace}/transactional/templates/{template}/publish
curl --request POST \
--url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/transactional/templates/password-reset/publish \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "baseRevision": 1, "makeOptional": [ { "default": "example", "name": "example" } ], "note": "example", "publishAnyway": true }'

Permission: transactional:publish (sensitive)

Fails with 409 breaking_change when a newly required variable is missing from recent calls (fix it with makeOptional, or send publishAnyway), 409 approval_required when the workspace’s rule applies, 409 version_conflict when the draft changed since baseRevision, and 409 template_does_not_render when a check blocks.

workspace
required

Workspace slug

string
/^[a-z0-9][a-z0-9-]{1,62}$/

Workspace slug

template
required

The template’s ID, such as password-reset, or its UUID

string
<= 64 characters

The template’s ID, such as password-reset, or its UUID

Media typeapplication/json
object
baseRevision
required
integer format: int64
>= 1
makeOptional
Array<object>
<= 50 items
object
default
required
string
<= 4000 characters
name
required
string
>= 1 characters <= 64 characters
note

Shown in the version history instead of the generated summary

string
<= 300 characters
publishAnyway
boolean

Example generated

{
"baseRevision": 1,
"makeOptional": [
{
"default": "example",
"name": "example"
}
],
"note": "example",
"publishAnyway": true
}

OK

Media typeapplication/json
object
previous

The version that was live before (Undo publishes it again)

integer format: int64
template
required
object
access
required
object
canEdit
required
boolean
canPublish
required
boolean
canSendTestToOthers
required
boolean
canViewContent
required
boolean
editReason
string
publishHelpers
required
Array<string>
publishReason
string
archived
required
boolean
archivedAt
string format: date-time
category
object
id
required
string
kind
required
string
Allowed values: essential optional
name
required
string
createdAt
required
string format: date-time
description
required
string
draftChanges
required
boolean
draftHash
required
string
draftRevision
required
integer format: int64
draftSavedAt
required
string format: date-time
draftSavedBy
required
string
editorMode
required
string
Allowed values: visual mjml html
html
required
string
id
required
string
key
required

The ID the API sends, fixed after the first publish

string
keyLocked
required
boolean
language
required
string
liveBy
string
liveSince
string format: date-time
liveVersion
integer format: int64
mjml
required
string
name
required
string
origin
required
object
key
additional properties
plainText
required
string
preheader
required
string
replyTo
required
string
sender
object
email
required
string
id
required
string
name
required
string
sourceLanguage
required
string
subject
required
string
testData
required
Array<object>
object
data
required
object
key
additional properties
name
required
string
>= 1 characters <= 80 characters
trackClicks
required
boolean
trackOpens
required
boolean
updatedAt
required
string format: date-time
variables
required
Array<object>
object
default
string
<= 4000 characters
description
string
<= 300 characters
name
required
string
>= 1 characters <= 64 characters /^[A-Za-z_][A-Za-z0-9_]*$/
required
required
boolean
sample
string
<= 4000 characters
sensitive
required

Never stored: logs and stored content show ••••••

boolean
type
required
string
Allowed values: text number boolean date url list object
versionsCount
required
integer format: int64
version
required
integer format: int64

Example

{
"template": {
"category": {
"kind": "essential"
},
"editorMode": "visual",
"testData": [
{
"name": "New user"
}
],
"variables": [
{
"name": "reset_url",
"type": "text"
}
]
}
}

Error

Media typeapplication/problem+json
object
code

Stable error code, e.g. permission_denied

string
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object>
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

helpers

Members who hold the missing permission

Array<string>
instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
meta
object
key
additional properties
permission

The missing permission key

string
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank

Example

{
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}