Skip to content

Read a published template

GET
/v1/templates/{id}
curl --request GET \
--url 'https://api.pixonaut.app/v1/templates/example?lang=en' \
--header 'Authorization: Bearer <token>' \
--header 'x-pixonaut-sdk-version: 0.15.0'

Operation ID: templates.get

The whole published document, which the designer validates and lays out against, and the form generated from it. optionLabels holds the tenant’s own words for the options the template offers, when it has named any: each shape’s, die’s or picture’s name for lang, else for the workspace’s default language, else its own name; dieShapeId names the die-cut the author chose, layerShapeIds the shape each customer-editable shape layer starts on, by layer id, and offeredShapes holds the outline of every shape a customer may pick, for the die-cut or a shape layer. printMargins is the reading tenant’s default bleed and safe area, which artwork with no blank prints with, and printFloorDpi the minimum print resolution its pictures are judged against when a design is made: the template’s own, else the tenant’s. fieldKeys names the field keys its offered fields carry, and previewUrl links to its preview, opening with no key for an hour or two. status is the template’s state now, whichever version is read: live, or paused once a member has paused it, when customers cannot design on it although its versions are still served. A pause and a resume are each delivered as template.live_changed; after a missed delivery, status is the state to trust. poweredBy is whether the designer shows “Powered by Pixonaut” for the workspace: decided by its plan, then its own setting. pixel is whether the designer offers the customer Pixel: the template has Pixel for customers on, and the workspace has not turned it off. A text naming dynamic values, such as Class of {date.year}, is answered with them written for today in tz, else in the workspace’s timezone. The values are {date.year}, the current year, 2026; {date.nextYear}, next year, 2027; {date.month}, the month’s name, October; {date.academicYear}, the academic year, starting on 1 August: 2026/27 from August 2026 to July 2027; {date.dayMonth}, the day and month, October 21; {date.monthYear}, the month and year, October 2026; {date.long}, the full date, October 21, 2026; {date.short}, the date in digits, 10/21/2026; {date.iso}, the date as ISO 8601 writes it, 2026-10-21; {date.custom(<pattern>)}, the date in a pattern of your own, Unicode’s date-pattern letters y, M, L, d and E with text in single quotes: {date.custom(d.M.yyyy)} writes 21.10.2026, {date.custom(MMM ''yy)} writes Oct '26. They are written in lang, else in the workspace’s default language, else English; a value whose name carries a language after a colon, {date.long:sv}, is written in it whatever lang says. workspaceLanguage is the template’s workspace’s default language, one of the customer-facing languages’ codes (English until it chooses one): what the SDK designer is shown in when its mount names no locale. showcases lists the template’s showcases by id and name, the sets of example values its preview and mockup images are drawn with when their showcase names one, each with previewUrl, a link to its preview that opens with no key as the template’s own does. An SDK names its release in x-pixonaut-sdk-version; a release whose renderer cannot draw the template is refused sdk_outdated, naming the first release that can.

id
required

A template id, baseId@version.

string

A template id, baseId@version.

tz

The IANA timezone the template’s dynamic values are resolved in, such as Europe/Stockholm: today’s date there. Absent, the workspace’s timezone.

string

The IANA timezone the template’s dynamic values are resolved in, such as Europe/Stockholm: today’s date there. Absent, the workspace’s timezone.

lang

The language the template’s dynamic values are written in when their name names none, one of en, sv, de, fr, es, nl, da, nb, fi. Absent, the workspace’s default language. A value whose name carries a language, {date.long:sv}, keeps it.

string
Allowed values: en sv de fr es nl da nb fi

The language the template’s dynamic values are written in when their name names none, one of en, sv, de, fr, es, nl, da, nb, fi. Absent, the workspace’s default language. A value whose name carries a language, {date.long:sv}, keeps it.

x-pixonaut-sdk-version

The SDK release making the request, which the SDK sends itself. A release that cannot draw the template is refused sdk_outdated; a request naming none is served.

string
/^(\d+)\.(\d+)\.(\d+)$/

The SDK release making the request, which the SDK sends itself. A release that cannot draw the template is refused sdk_outdated; a request naming none is served.

The template and its form

Media typeapplication/json
object
colourNames

By palette name as template.palettes holds it, each colour’s name in lang by its own name: what the designer shows under its swatch and lists as the field’s value. Only the colours named in it; the rest read their own name, which a pick is held as in every language.

object
key
additional properties
object
key
additional properties
string
dieShapeId
string
fieldKeys
required

The field keys of the fields a customer is offered: a value set on one is shown by any template with a field of the same key.

Array<string>
fieldTexts

Each fixed text naming a field, such as Happy birthday {field.name}, by layer id, as runs: the template’s text holds each field’s default, and a designer writes the customer’s value for each field into its runs, joining them as they are, never reading the result again. Absent when no text names a field.

object
key
additional properties
Array
Any of:
object
literal
required
string
formSchema
required
object
layout
string
steps
required
Array<object>
object
deletableLayerIds
required
Array<string>
fields
required
Array<object>
object
constraints
required
object
key
additional properties
default
description
string
label
required
string
layerId
required
string
prop
required
string
type
required
string
groupId
required
string
index
required
number | null
label
required
string
layerIds
required
Array<string>
transforms
required
Array<object>
object
layerId
required
string
transform
required
object
key
additional properties
language
required

The language the template is read in, one of en, sv, de, fr, es, nl, da, nb, fi: lang, else the workspace’s default. template is the original with that language’s overrides (localized) merged in.

string
layerShapeIds
object
key
additional properties
string
offeredShapes
object
key
additional properties
offersProperties
required

Whether the customer’s form offers anything to fill in or place: false when every layer is fixed or in no group, so a customer designing on it can change nothing. A store warns a merchant who sells a template meant to be filled in as a fixed product, or one that offers nothing as personalised.

boolean
optionLabels
object
key
additional properties
string
pixel
required

Whether the designer offers the customer Pixel (POST /v1/pixel/designer): the template has Pixel for customers on and the workspace has not turned it off. A round may still be refused, as that route says.

boolean
poweredBy
required
boolean
previewUrl
required
string
printFloorDpi
required
number
> 0
printMargins
required
object
bleedMm
required
number
<= 50
safeAreaMm
required
number
<= 50
showcases
required

The template’s showcases, by id and name: sets of example values its preview and mockup images are drawn with when their showcase names one, each with a link to its preview. Empty when it holds none. Their values are not served: the designer, a design, a proof and a print are drawn from template alone.

Array<object>
object
id
required
string
name
required
string
previewUrl
required

A link to the preview drawn with this set, opening with no key for an hour or two, as previewUrl does the defaults’.

string
status
required
string
template
required
object
background
One of:
object
color
required

The background colour.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
kind
required

Color paints the whole artwork, bleed included; image fills it with a picture.

string
Allowed values: color
coverAlign

Which of nine points, top-left to bottom-right, a cover crop keeps; read only when fit is cover. Absent is center.

string
customerLayers

The layers a customer may add of their own, per kind: how many, the preset each starts as, and where in the form they show. Added layers paint above the template’s layers.

object
image

Whether, and how, a customer may add image layers.

object
layer
required

The preset every added image layer starts as: a image layer without id, name, z, anchorTo, locked, print or deletable. What it offers is what a customer may change on the layers they add.

object
anchor
required

The point of the reference the layer is placed against, and the layer’s own matching point: top-left puts the layer’s top-left corner on the reference’s.

string
blend

How it mixes with the layers under it, per ink. Absent is normal.

string
hFrac
required

The layer’s height as a fraction of the reference’s height. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
mat
One of:
object
color
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
kind
required

Color is a plain backdrop; shape fills a silhouette.

string
Allowed values: color
offsetFrac
required

How far the layer sits from its anchor, as fractions of the reference, always toward the reference’s centre: { x: 0.05, y: 0.05 } nudges it 5 % in from any corner. Ignored on a centred axis.

object
x
required

Across, as a fraction of the reference’s width: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
y
required

Down or up, as a fraction of the reference’s height: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
opacity

The layer’s opacity, which a customer may be offered. Absent is full and not offered.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
min

The least opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
step

The step between choosable opacities, e.g. 0.05.

number
> 0
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

How opaque the whole layer is: 1 is full, 0.01 the least.

number
>= 0.01 <= 1
props
required
object
brightness

How much lighter (up to 1) or darker (down to -1) the photo is drawn; absent or 0 is as uploaded.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark

The value on a dark product colour, in place of value. A value the customer sets is used over both.

number
>= -1 <= 1
value
required

The attribute’s value, as the template stores it.

number
>= -1 <= 1
contrast

How far the photo’s tones are pushed apart (up to 1) or pulled toward middle grey (down to -1); absent or 0 is as uploaded.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark

The value on a dark product colour, in place of value. A value the customer sets is used over both.

number
>= -1 <= 1
value
required

The attribute’s value, as the template stores it.

number
>= -1 <= 1
cornerRadiusShortSide

How round the picture’s corners are: their radius as a fraction of the shorter side of the layer’s box, 0 (square) to 0.5 (a square box becomes a circle). The outline and the shadow follow it.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.5
crop

Where the picture sits in its frame, under cover. Absent is uncropped.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxZoom

The most zoom a customer may choose; absent is 3.

number
>= 1 <= 5
minZoom

The least zoom a customer may choose; absent is 1.

number
>= 1 <= 5
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

object
xFrac
required

How far the picture’s centre sits right of the frame’s centre, in frame widths: 0.1 is a tenth of the frame. Clamped so the picture always covers the frame, never refused.

number
yFrac
required

How far the picture’s centre sits below the frame’s centre, in frame heights: 0.1 is a tenth of the frame. Clamped so the picture always covers the frame, never refused.

number
zoom
required

The picture’s scale over what cover gives it: 1 is the picture just covering the frame, up to 5.

number
>= 1 <= 5
duotoneHighlight

The colour a duotone photo’s lightest tones become; absent is paper white. A process colour: a spot ink is refused.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
duotoneShadow

The colour a duotone photo’s darkest tones become; absent is black. A process colour: a spot ink is refused.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
effectsFollow

What the outline and the shadow are cast from: box (the layer’s box, rounded by its corners) or picture (the picture’s own visible pixels, so a cut-out casts its own shape). An image with a colour mat follows its box. Absent is box.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
fit
required

How the picture fills its box: cover crops, contain shows it whole, fill stretches, tile repeats it. Absent is cover.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
outlineColor

The colour of the image’s outline, whichever width draws it: absent is black under outlineWidthShortSide, and white, a sticker’s edge, under outlineWidthShare.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
outlineWidthShare

The width of an outline drawn round the picture’s own pixels, like a sticker’s edge, as a fraction of the picture box’s shorter side (0.02 is a fiftieth of it), 0 to 0.1; absent or 0 draws no outline. Not drawn on a tiled picture. An image sets this or outlineWidthShortSide, never both.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.1
outlineWidthShortSide

The outline’s width as a fraction of the shorter side of the layer’s box (0.02 is a fiftieth of it), 0 to 0.1; absent or 0 draws no outline. On an image, traced round its box or its picture (effectsFollow); an image sets this or outlineWidthShare, never both.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.1
recolourColor

The one colour or ink a recolour draws every visible pixel of the photo in, keeping its alpha; absent is paper white. It prints as that ink, a spot on its own plate (a spot’s edge is held solid at half coverage). The author’s: it is never offered to the customer.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
saturation

How far the photo’s colours are strengthened (up to 1) or pulled toward grey (down to -1); absent or 0 is as uploaded. A blackAndWhite, sepia, duotone or recolour tone draws no colour of the photo’s own, so saturation then changes nothing; under none and invert it applies.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark

The value on a dark product colour, in place of value. A value the customer sets is used over both.

number
>= -1 <= 1
value
required

The attribute’s value, as the template stores it.

number
>= -1 <= 1
shadowBlurShortSide

How soft the shadow is: its blur radius as a fraction of the shorter side of the layer’s box, 0 (sharp) to 0.25. A shadow with no offset and no blur draws nothing.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.25
shadowColor

The colour of the shadow drawn under the layer; absent is black.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
shadowOffsetXShortSide

How far right the shadow falls, as a fraction of the shorter side of the layer’s box, -0.25 to 0.25; negative is left.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -0.25 <= 0.25
shadowOffsetYShortSide

How far down the shadow falls, as a fraction of the shorter side of the layer’s box, -0.25 to 0.25; negative is up.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -0.25 <= 0.25
src
required

The picture’s asset id; null is none chosen yet.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
allowUpload

Whether a customer may upload a picture of their own.

boolean
cutOut

True cuts a customer’s upload out onto a transparent background, as a new upload in its place paid from the tenant’s credits; one that fails leaves their photo as it was. Absent, never.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
required

Whether a customer must choose a picture.

boolean
upscale

Present, an upload below belowDpi at the customer’s chosen size is offered an upscale to toDpi before the proof, paid from the tenant’s credits. Absent, never.

object
belowDpi

The print resolution, in dots per inch, below which an upload is offered an upscale. Absent, the template’s minimum, else the tenant’s.

number
> 0 <= 1200
toDpi

The print resolution, in dots per inch, an upload is upscaled to, and priced by: under belowDpi, at it or past it. Absent, belowDpi.

number
> 0 <= 1200
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark

The value on a dark product colour, in place of value. A value the customer sets is used over both.

string | null
value
required

The attribute’s value, as the template stores it.

string | null
tileScale

The tile’s size against the picture’s own, when the fit is tile.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The largest tile scale a customer may choose.

number
> 0 <= 100
min

The smallest tile scale a customer may choose.

number
> 0 <= 100
step

The step between the tile scales a customer may choose.

number
> 0
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
> 0 <= 100
tone

What the photo’s lightness is mapped onto, after brightness, contrast and saturation (a recolour draws one colour, so it ignores all three): none (its own colours), blackAndWhite, sepia, duotone (from duotoneShadow in its darkest tones to duotoneHighlight in its lightest), recolour (every visible pixel in recolourColor, its alpha kept, so a black cut-out can be made white), or invert (each channel turned over). Absent is none.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark

The value on a dark product colour, in place of value. A value the customer sets is used over both.

string
value
required

The attribute’s value, as the template stores it.

string
transform
required

The layer’s rotation, scale and flip, and which of them, and its position, a customer may change.

object
flip

Whether a customer may flip the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
resize

Whether, and within what, a customer may resize the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
maxHMm

The most height, in millimetres.

number
maxWMm

The most width, in millimetres.

number
minHMm

The least height, in millimetres.

number
minWMm

The least width, in millimetres.

number
rotate
required

Whether, and how far, a customer may rotate the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most rotation, in degrees.

number
min

The least rotation, in degrees.

number
snapDeg

The angle rotation snaps to, in degrees, e.g. 15.

number
scale
required

Whether, and how far, a customer may scale the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most scale; 1 is as authored.

number
min

The least scale; 1 is as authored.

number
step

The step between the scales a customer may choose.

number
> 0
translate
required

Whether, and within what, a customer may move the layer.

object
bounds

Where a customer’s move must keep the layer: inside the safe area (the default), the print box, or anywhere.

string
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
snapTo

What a move snaps to: centre, thirds, safeEdges, layers.

Array<string>
value
required

The layer’s rotation, scale and flip.

object
flipX

Whether the layer is mirrored left to right, about its centre and before its rotation.

boolean
flipY

Whether the layer is mirrored top to bottom, about its centre and before its rotation.

boolean
rotationDeg
required

Rotation about the layer’s anchor, in degrees, clockwise.

number
scale
required

Scale of the layer; 1 is as authored.

number
type
required
string
varnish

True lays spot varnish exactly where the layer is, on a machine that varnishes; it still prints in colour.

boolean
wFrac
required

The layer’s width as a fraction of the reference’s width. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
max
required

How many image layers a customer may add, 1 to 20.

integer
>= 1 <= 20
place

Where the added image layers show in the customer’s form: in a group, before or after one of its layers, or after its last. Absent, in a step of their own after the template’s.

object
after

The id of the group’s layer they come after.

string
>= 1 characters
before

The id of the group’s layer they come before.

string
>= 1 characters
group
required

The id of the group the added image layers show in.

string
>= 1 characters
shape

Whether, and how, a customer may add shape layers.

object
layer
required

The preset every added shape layer starts as: a shape layer without id, name, z, anchorTo, locked, print or deletable. What it offers is what a customer may change on the layers they add.

object
anchor
required

The point of the reference the layer is placed against, and the layer’s own matching point: top-left puts the layer’s top-left corner on the reference’s.

string
blend

How it mixes with the layers under it, per ink. Absent is normal.

string
hFrac
required

The layer’s height as a fraction of the reference’s height. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
offsetFrac
required

How far the layer sits from its anchor, as fractions of the reference, always toward the reference’s centre: { x: 0.05, y: 0.05 } nudges it 5 % in from any corner. Ignored on a centred axis.

object
x
required

Across, as a fraction of the reference’s width: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
y
required

Down or up, as a fraction of the reference’s height: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
opacity

The layer’s opacity, which a customer may be offered. Absent is full and not offered.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
min

The least opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
step

The step between choosable opacities, e.g. 0.05.

number
> 0
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

How opaque the whole layer is: 1 is full, 0.01 the least.

number
>= 0.01 <= 1
props
required
object
crop

Where the picture sits in its frame, under cover. Absent is uncropped.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxZoom

The most zoom a customer may choose; absent is 3.

number
>= 1 <= 5
minZoom

The least zoom a customer may choose; absent is 1.

number
>= 1 <= 5
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

object
xFrac
required

How far the picture’s centre sits right of the frame’s centre, in frame widths: 0.1 is a tenth of the frame. Clamped so the picture always covers the frame, never refused.

number
yFrac
required

How far the picture’s centre sits below the frame’s centre, in frame heights: 0.1 is a tenth of the frame. Clamped so the picture always covers the frame, never refused.

number
zoom
required

The picture’s scale over what cover gives it: 1 is the picture just covering the frame, up to 5.

number
>= 1 <= 5
fill
required

What the silhouette is painted with: a colour, a gradient across its box, or a picture clipped to it.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
allowUpload

Whether a customer may upload a picture of their own.

boolean
anyColor

True lets a customer choose any colour, beside or instead of a palette.

boolean
cutOut

True cuts a customer’s upload out onto a transparent background, as a new upload in its place paid from the tenant’s credits; one that fails leaves their photo as it was. Absent, never.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
required

Whether a customer must choose a picture.

boolean
upscale

Present, an upload below belowDpi at the customer’s chosen size is offered an upscale to toDpi before the proof, paid from the tenant’s credits. Absent, never.

object
belowDpi

The print resolution, in dots per inch, below which an upload is offered an upscale. Absent, the template’s minimum, else the tenant’s.

number
> 0 <= 1200
toDpi

The print resolution, in dots per inch, an upload is upscaled to, and priced by: under belowDpi, at it or past it. Absent, belowDpi.

number
> 0 <= 1200
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
fit

How the picture fills its box: cover crops, contain shows it whole, fill stretches, tile repeats it. Absent is cover.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
outlineColor

The colour of the line drawn around the layer’s edge, outside it; absent is black.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
outlineWidthShortSide

The outline’s width as a fraction of the shorter side of the layer’s box (0.02 is a fiftieth of it), 0 to 0.1; absent or 0 draws no outline. On an image, traced round its box or its picture (effectsFollow); an image sets this or outlineWidthShare, never both.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.1
shadowBlurShortSide

How soft the shadow is: its blur radius as a fraction of the shorter side of the layer’s box, 0 (sharp) to 0.25. A shadow with no offset and no blur draws nothing.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.25
shadowColor

The colour of the shadow drawn under the layer; absent is black.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
shadowOffsetXShortSide

How far right the shadow falls, as a fraction of the shorter side of the layer’s box, -0.25 to 0.25; negative is left.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -0.25 <= 0.25
shadowOffsetYShortSide

How far down the shadow falls, as a fraction of the shorter side of the layer’s box, -0.25 to 0.25; negative is up.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -0.25 <= 0.25
shape
required

The layer’s silhouette: inline geometry or one of the tenant’s shapes.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
allowEmpty

True lets a customer choose no shape at all.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
One of:
object
dFrac
required

SVG path data in fractions of its box, (0,0) its top-left and (1,1) its bottom-right: M 0 0 L 1 0 L 1 1 L 0 1 Z is the whole box. No arcs.

string
<= 65536 characters
type
required

Inline path geometry.

string
Allowed values: path
tileScale

The tile’s size against the picture’s own, when the fit is tile.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The largest tile scale a customer may choose.

number
> 0 <= 100
min

The smallest tile scale a customer may choose.

number
> 0 <= 100
step

The step between the tile scales a customer may choose.

number
> 0
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
> 0 <= 100
transform
required

The layer’s rotation, scale and flip, and which of them, and its position, a customer may change.

object
flip

Whether a customer may flip the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
resize

Whether, and within what, a customer may resize the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
maxHMm

The most height, in millimetres.

number
maxWMm

The most width, in millimetres.

number
minHMm

The least height, in millimetres.

number
minWMm

The least width, in millimetres.

number
rotate
required

Whether, and how far, a customer may rotate the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most rotation, in degrees.

number
min

The least rotation, in degrees.

number
snapDeg

The angle rotation snaps to, in degrees, e.g. 15.

number
scale
required

Whether, and how far, a customer may scale the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most scale; 1 is as authored.

number
min

The least scale; 1 is as authored.

number
step

The step between the scales a customer may choose.

number
> 0
translate
required

Whether, and within what, a customer may move the layer.

object
bounds

Where a customer’s move must keep the layer: inside the safe area (the default), the print box, or anywhere.

string
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
snapTo

What a move snaps to: centre, thirds, safeEdges, layers.

Array<string>
value
required

The layer’s rotation, scale and flip.

object
flipX

Whether the layer is mirrored left to right, about its centre and before its rotation.

boolean
flipY

Whether the layer is mirrored top to bottom, about its centre and before its rotation.

boolean
rotationDeg
required

Rotation about the layer’s anchor, in degrees, clockwise.

number
scale
required

Scale of the layer; 1 is as authored.

number
type
required
string
varnish

True lays spot varnish exactly where the layer is, on a machine that varnishes; it still prints in colour.

boolean
wFrac
required

The layer’s width as a fraction of the reference’s width. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
max
required

How many shape layers a customer may add, 1 to 20.

integer
>= 1 <= 20
place

Where the added shape layers show in the customer’s form: in a group, before or after one of its layers, or after its last. Absent, in a step of their own after the template’s.

object
after

The id of the group’s layer they come after.

string
>= 1 characters
before

The id of the group’s layer they come before.

string
>= 1 characters
group
required

The id of the group the added shape layers show in.

string
>= 1 characters
text

Whether, and how, a customer may add text layers.

object
layer
required

The preset every added text layer starts as: a text layer without id, name, z, anchorTo, locked, print or deletable. What it offers is what a customer may change on the layers they add.

object
anchor
required

The point of the reference the layer is placed against, and the layer’s own matching point: top-left puts the layer’s top-left corner on the reference’s.

string
blend

How it mixes with the layers under it, per ink. Absent is normal.

string
hFrac
required

The layer’s height as a fraction of the reference’s height. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
mat
One of:
object
color
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
kind
required

Color is a plain backdrop; shape fills a silhouette.

string
Allowed values: color
offsetFrac
required

How far the layer sits from its anchor, as fractions of the reference, always toward the reference’s centre: { x: 0.05, y: 0.05 } nudges it 5 % in from any corner. Ignored on a centred axis.

object
x
required

Across, as a fraction of the reference’s width: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
y
required

Down or up, as a fraction of the reference’s height: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
opacity

The layer’s opacity, which a customer may be offered. Absent is full and not offered.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
min

The least opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
step

The step between choosable opacities, e.g. 0.05.

number
> 0
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

How opaque the whole layer is: 1 is full, 0.01 the least.

number
>= 0.01 <= 1
props
required
object
align
required

Horizontal alignment in the text box.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
content
required

The text.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
fill
required

The colour of the text, or a gradient across it.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
fontFamily
required

The font family, one of those the tenant offers.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
fontSizeFrac
required

The font size as a fraction of the plate’s HEIGHT, as is its offered range: 0.05 is 5 % of the height. Positive.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
> 0
fontStyle

Upright (normal) or italic; absent is normal. An italic text draws its font’s italic faces, or its upright ones when the font has none. Set by the author: a customer is not offered it.

object
editable
required

Always false: the author sets it, a customer may not.

boolean
value
required

The attribute’s value, as the template stores it.

string
fontWeight

The font weight, 1 to 1000; 400 is regular, 700 bold.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
letterSpacingEm

The space added after each letter, as a fraction of the drawn text size (0.1 is a tenth of it), -0.1 to 1; absent or 0 is the font’s own spacing.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -0.1 <= 1
lineHeight

The line spacing as a multiple of the font’s own, 0.5 to 3; absent or 1 is the font’s own.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= 0.5 <= 3
outlineColor

The colour of the line drawn around every letter, outside its fill; absent is black.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
outlineWidthEm

The outline’s width as a fraction of the drawn text size (0.05 is a twentieth of it), 0 to 0.25; absent or 0 draws no outline.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.25
shadowBlurEm

How soft the shadow is: its blur radius as a fraction of the drawn text size, 0 (sharp) to 1. A shadow with no offset and no blur draws nothing.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 1
shadowColor

The colour of the shadow drawn under the text; absent is black.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
shadowOffsetXEm

How far right the shadow falls, as a fraction of the drawn text size, -1 to 1; negative is left.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -1 <= 1
shadowOffsetYEm

How far down the shadow falls, as a fraction of the drawn text size, -1 to 1; negative is up.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -1 <= 1
textCase

How the letters are cased when drawn: asTyped, upper, lower or title (each word’s first letter a capital). The text itself is kept as typed. Absent is asTyped.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
valign

Vertical alignment in the text box; absent is middle.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
textBox
required
One of:
object
breakWords

True breaks a word wider than the box across lines rather than refusing it.

boolean
mode
required

Adapt keeps the font size and grows the box, then shrinks the text, as far as the limits below allow.

string
Allowed values: adapt
order

Which way the box grows first. Absent is widerFirst.

string
shrinkTo

The smallest font size the text may shrink to, as a fraction of the plate’s height. Absent, it does not shrink.

number
> 0
tallerTo

How tall the box may grow, as a fraction of the plate’s height, at most 1. Absent, it does not grow taller.

number
> 0 <= 1
then
required

What happens to text that still does not fit: clamp cuts it at the box, reject refuses the text.

string
widenTo

How wide the box may grow, as a fraction of the plate’s width, at most 1. Absent, it does not widen.

number
> 0 <= 1
textPath
One of:
object
centerDeg
required

Where the text’s run is centred, in degrees clockwise from 12 o’clock: 0 is the top, 90 the right, 180 the bottom.

number
side
required

Which side of the curve the letters stand on: outside reads clockwise round it (the top of a badge); inside hangs inside it and runs the other way, so text at the bottom reads left to right.

string
sweepDeg
required

How much of the oval the arc covers, in degrees, above 0 and at most 360: 360 is a whole circle.

number
> 0 <= 360
type
required

Along the oval inside the layer’s box, a circle when the box is square: the box is the radius.

string
Allowed values: arc
transform
required

The layer’s rotation, scale and flip, and which of them, and its position, a customer may change.

object
flip

Whether a customer may flip the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
resize

Whether, and within what, a customer may resize the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
maxHMm

The most height, in millimetres.

number
maxWMm

The most width, in millimetres.

number
minHMm

The least height, in millimetres.

number
minWMm

The least width, in millimetres.

number
rotate
required

Whether, and how far, a customer may rotate the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most rotation, in degrees.

number
min

The least rotation, in degrees.

number
snapDeg

The angle rotation snaps to, in degrees, e.g. 15.

number
scale
required

Whether, and how far, a customer may scale the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most scale; 1 is as authored.

number
min

The least scale; 1 is as authored.

number
step

The step between the scales a customer may choose.

number
> 0
translate
required

Whether, and within what, a customer may move the layer.

object
bounds

Where a customer’s move must keep the layer: inside the safe area (the default), the print box, or anywhere.

string
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
snapTo

What a move snaps to: centre, thirds, safeEdges, layers.

Array<string>
value
required

The layer’s rotation, scale and flip.

object
flipX

Whether the layer is mirrored left to right, about its centre and before its rotation.

boolean
flipY

Whether the layer is mirrored top to bottom, about its centre and before its rotation.

boolean
rotationDeg
required

Rotation about the layer’s anchor, in degrees, clockwise.

number
scale
required

Scale of the layer; 1 is as authored.

number
type
required
string
varnish

True lays spot varnish exactly where the layer is, on a machine that varnishes; it still prints in colour.

boolean
wFrac
required

The layer’s width as a fraction of the reference’s width. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
max
required

How many text layers a customer may add, 1 to 20.

integer
>= 1 <= 20
place

Where the added text layers show in the customer’s form: in a group, before or after one of its layers, or after its last. Absent, in a step of their own after the template’s.

object
after

The id of the group’s layer they come after.

string
>= 1 characters
before

The id of the group’s layer they come before.

string
>= 1 characters
group
required

The id of the group the added text layers show in.

string
>= 1 characters
dpi
required

The resolution the artwork is drawn at, in dots per inch; 300 is usual for print.

number
drawAtTemplateRatio

True: the customer’s canvas keeps the ratio at every print size, and the print is cropped or banded by fit. Absent is false.

boolean
fallbackFamily

The family of fonts a character a text’s own family lacks is drawn in, at the text’s weight and style: the tenant’s default font family when the version was published.

string
fit
required

How the artwork sits in a print box of another shape: contain, cover or fill.

string
fonts
object
key
additional properties
Array<object>
>= 1 items
object
hash
required
string
/^[0-9a-f]{64}$/
style
string
weight
required
integer
>= 1 <= 1000
form
object
layout
string
groups
Array<object>
object
id
required
string
label
required
string
layerIds
required
Array<string>
order
required
number
id
required
string
layers
required
Array
One of:
object
anchor
required

The point of the reference the layer is placed against, and the layer’s own matching point: top-left puts the layer’s top-left corner on the reference’s.

string
anchorTo

Another layer’s id, to place and size this one against that layer’s box instead of the plate. A missing layer falls back to the plate.

string
blend

How it mixes with the layers under it, per ink. Absent is normal.

string
deletable

True lets a customer delete the layer from their design.

boolean
hFrac
required

The layer’s height as a fraction of the reference’s height. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
id
required

The layer’s id: what anchorTo, groups and a customer’s values name it by. Never changes.

string
locked

True locks the layer on the author’s canvas: clicks pass through and it cannot be deleted. Absent is unlocked.

boolean
mat
One of:
object
color
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
kind
required

Color is a plain backdrop; shape fills a silhouette.

string
Allowed values: color
name

What the author reads the layer as. Not unique; absent, the layer reads as its id.

string
>= 1 characters <= 80 characters
offsetFrac
required

How far the layer sits from its anchor, as fractions of the reference, always toward the reference’s centre: { x: 0.05, y: 0.05 } nudges it 5 % in from any corner. Ignored on a centred axis.

object
x
required

Across, as a fraction of the reference’s width: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
y
required

Down or up, as a fraction of the reference’s height: 0.05 is 5 %. Toward the centre; negative pushes outward. Uncapped.

number
opacity

The layer’s opacity, which a customer may be offered. Absent is full and not offered.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
min

The least opacity a customer may choose, 0.01 to 1.

number
>= 0.01 <= 1
step

The step between choosable opacities, e.g. 0.05.

number
> 0
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

How opaque the whole layer is: 1 is full, 0.01 the least.

number
>= 0.01 <= 1
print

False makes it a guide layer: laid out and drawn on the author’s canvas, never printed or shown to a customer. Absent prints.

boolean
props
required
object
align
required

Horizontal alignment in the text box.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
content
required

The text.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
fill
required

The colour of the text, or a gradient across it.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
onDark
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
fontFamily
required

The font family, one of those the tenant offers.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
fontSizeFrac
required

The font size as a fraction of the plate’s HEIGHT, as is its offered range: 0.05 is 5 % of the height. Positive.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
> 0
fontStyle

Upright (normal) or italic; absent is normal. An italic text draws its font’s italic faces, or its upright ones when the font has none. Set by the author: a customer is not offered it.

object
editable
required

Always false: the author sets it, a customer may not.

boolean
value
required

The attribute’s value, as the template stores it.

string
fontWeight

The font weight, 1 to 1000; 400 is regular, 700 bold.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
letterSpacingEm

The space added after each letter, as a fraction of the drawn text size (0.1 is a tenth of it), -0.1 to 1; absent or 0 is the font’s own spacing.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -0.1 <= 1
lineHeight

The line spacing as a multiple of the font’s own, 0.5 to 3; absent or 1 is the font’s own.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= 0.5 <= 3
outlineColor

The colour of the line drawn around every letter, outside its fill; absent is black.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
outlineWidthEm

The outline’s width as a fraction of the drawn text size (0.05 is a twentieth of it), 0 to 0.25; absent or 0 draws no outline.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 0.25
shadowBlurEm

How soft the shadow is: its blur radius as a fraction of the drawn text size, 0 (sharp) to 1. A shadow with no offset and no blur draws nothing.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
<= 1
shadowColor

The colour of the shadow drawn under the text; absent is black.

object
constraints
Any of:
object
anyColor
required

True lets a customer choose any colour, beside or instead of a palette.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
palette
required

The palette a customer picks from: one of your palettes’ ids (pal_…) in a template you write; its name, with the palette under palettes, in a published template as served.

string
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
shadowOffsetXEm

How far right the shadow falls, as a fraction of the drawn text size, -1 to 1; negative is left.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -1 <= 1
shadowOffsetYEm

How far down the shadow falls, as a fraction of the drawn text size, -1 to 1; negative is up.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
max

The most value a customer may choose.

number
min

The least value a customer may choose.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
step

The step between the values a customer may choose.

number
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

number
>= -1 <= 1
textCase

How the letters are cased when drawn: asTyped, upper, lower or title (each word’s first letter a capital). The text itself is kept as typed. Absent is asTyped.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
valign

Vertical alignment in the text box; absent is middle.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
maxLength

The most characters a customer may type.

number
maxLines

The most lines a customer’s text may take.

number
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required

The attribute’s value, as the template stores it.

string
textBox
required
One of:
object
breakWords

True breaks a word wider than the box across lines rather than refusing it.

boolean
mode
required

Adapt keeps the font size and grows the box, then shrinks the text, as far as the limits below allow.

string
Allowed values: adapt
order

Which way the box grows first. Absent is widerFirst.

string
shrinkTo

The smallest font size the text may shrink to, as a fraction of the plate’s height. Absent, it does not shrink.

number
> 0
tallerTo

How tall the box may grow, as a fraction of the plate’s height, at most 1. Absent, it does not grow taller.

number
> 0 <= 1
then
required

What happens to text that still does not fit: clamp cuts it at the box, reject refuses the text.

string
widenTo

How wide the box may grow, as a fraction of the plate’s width, at most 1. Absent, it does not widen.

number
> 0 <= 1
textPath
One of:
object
centerDeg
required

Where the text’s run is centred, in degrees clockwise from 12 o’clock: 0 is the top, 90 the right, 180 the bottom.

number
side
required

Which side of the curve the letters stand on: outside reads clockwise round it (the top of a badge); inside hangs inside it and runs the other way, so text at the bottom reads left to right.

string
sweepDeg
required

How much of the oval the arc covers, in degrees, above 0 and at most 360: 360 is a whole circle.

number
> 0 <= 360
type
required

Along the oval inside the layer’s box, a circle when the box is square: the box is the radius.

string
Allowed values: arc
transform
required

The layer’s rotation, scale and flip, and which of them, and its position, a customer may change.

object
flip

Whether a customer may flip the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
resize

Whether, and within what, a customer may resize the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
maxHMm

The most height, in millimetres.

number
maxWMm

The most width, in millimetres.

number
minHMm

The least height, in millimetres.

number
minWMm

The least width, in millimetres.

number
rotate
required

Whether, and how far, a customer may rotate the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most rotation, in degrees.

number
min

The least rotation, in degrees.

number
snapDeg

The angle rotation snaps to, in degrees, e.g. 15.

number
scale
required

Whether, and how far, a customer may scale the layer.

object
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
max

The most scale; 1 is as authored.

number
min

The least scale; 1 is as authored.

number
step

The step between the scales a customer may choose.

number
> 0
translate
required

Whether, and within what, a customer may move the layer.

object
bounds

Where a customer’s move must keep the layer: inside the safe area (the default), the print box, or anywhere.

string
description

A hint shown to the customer under the control.

string
<= 200 characters
editable
required

Whether a customer may change it.

boolean
label

What a customer reads the control as.

string
snapTo

What a move snaps to: centre, thirds, safeEdges, layers.

Array<string>
value
required

The layer’s rotation, scale and flip.

object
flipX

Whether the layer is mirrored left to right, about its centre and before its rotation.

boolean
flipY

Whether the layer is mirrored top to bottom, about its centre and before its rotation.

boolean
rotationDeg
required

Rotation about the layer’s anchor, in degrees, clockwise.

number
scale
required

Scale of the layer; 1 is as authored.

number
type
required
string
Allowed values: text
varnish

True lays spot varnish exactly where the layer is, on a machine that varnishes; it still prints in colour.

boolean
wFrac
required

The layer’s width as a fraction of the reference’s width. Positive; uncapped, so above 1 hangs over the edge and is clipped.

number
> 0
z
required

Paint depth, lowest painted first. A multiple of 10 follows the layer’s place in the list; any other value pins it.

integer
>= -2147483648 <= 2147483647
name
required
string
palettes

Colours the template offers as its own, by name: a palette offer names one by that name. A stored template holds one only where a library palette it offered was deleted; a published template as served holds every palette it offers.

object
key
additional properties
Array<object>
<= 100 items
object
color
required
Any of:
object
cmyk
required

A CMYK colour: cyan, magenta, yellow and black in that order, each a percentage of ink from 0 to 100, e.g. [0, 100, 100, 0] for a red.

array
>= 4 items <= 4 items
name
required

The name a customer picks the colour by.

string
printFileForm

Flat: one drawing, every glyph a shape; layered: each layer separate, text as shapes; layered_live_text: each layer separate, plain text live. Absent follows the store, then the workspace.

string
printFileTextTolerance
One of:
object
unit
required

Device pixels.

string
Allowed values: px
value
required

How many.

number
>= 1 <= 100
ratio
required

The artwork’s aspect ratio as two positive numbers ({ w: 3, h: 2 } is landscape): the shape of the plate every fraction is of.

object
h
required

The ratio’s height part. Positive.

number
> 0
w
required

The ratio’s width part. Positive.

number
> 0
ratioTolerance
required

How far, as a fraction of the ratio, a print size may differ from it: 0.02 is 2 %. 0 or more.

number
shape

The die-cut outline the print is cut to, which a customer may be offered. Absent is a square-cornered rectangle.

object
constraints

What a customer may choose, when editable. Absent, the attribute’s own range.

object
allowEmpty

True lets a customer choose no shape at all.

boolean
oneOf

The values a customer may choose from, when the attribute is editable: font families, picture asset ids, shape ids (shp_…) or fits. Absent, any value the attribute takes.

Array<string>
requireChange

Whether a customer must change the template’s default (a placeholder name or photo) before a design is accepted. Only on an offered text’s content, image’s picture, or shape’s outline or fill.

boolean
description

A hint shown to the customer under the attribute’s field.

string
<= 200 characters
editable
required

Whether a customer may change it. A layer is customer-editable when any of its attributes is.

boolean
fieldKey

The author’s word for the field (name, photo), unique within the template. A customer’s value for a keyed field follows them to any template with a field of the same key.

string
label

What a customer reads the attribute as, when editable.

string
value
required
One of:
object
dFrac
required

SVG path data in fractions of its box, (0,0) its top-left and (1,1) its bottom-right: M 0 0 L 1 0 L 1 1 L 0 1 Z is the whole box. No arcs.

string
<= 65536 characters
type
required

Inline path geometry.

string
Allowed values: path
snap

What a customer’s moves snap to, and the author’s grid.

object
grid

The author’s grid, which the author’s drags snap to. A customer never sees it.

object
stepFrac
required

The grid’s step as a fraction of the plate, 0.01 to 0.5: 0.05 is a line every 5 %.

number
>= 0.01 <= 0.5
targets

What a move snaps to: centre, thirds, safeEdges, layers.

Array<string>
tenantId
required
string
uploads
object
formats

The file formats a customer may upload, each once: png, jpeg, webp, heic. Absent, all of them.

Array<string>
>= 1 items
maxBytes

The largest upload, in bytes, at most 83886080. Absent, that.

integer
> 0 <= 83886080
minDpi

The minimum print resolution a design’s pictures are judged against where they print, in dots per inch, at most 1200. Absent, the tenant’s.

number
> 0 <= 1200
version
required
number
workspaceLanguage
required

The template’s workspace’s default language, one of en, sv, de, fr, es, nl, da, nb, fi: what the SDK designer is shown in when its mount names no locale.

string

Examples

Exampleexample

Example

{
"fieldKeys": [],
"formSchema": {
"layout": "page",
"steps": [
{
"deletableLayerIds": [],
"fields": [
{
"constraints": {
"allowUpload": true
},
"default": null,
"description": "Upload a PNG or JPEG, at least 150 dpi at print size.",
"label": "Motif",
"layerId": "motif",
"prop": "src",
"type": "image"
}
],
"groupId": "upload-motif",
"index": 0,
"label": "Upload a motif",
"layerIds": [
"motif"
],
"transforms": [
{
"layerId": "motif",
"transform": {
"scale": {
"editable": true,
"max": 1.4,
"min": 0.5
},
"translate": {
"bounds": "safeArea",
"editable": true
}
}
}
]
},
{
"deletableLayerIds": [],
"fields": [
{
"constraints": {
"maxLength": 40,
"maxLines": 2
},
"default": "Your text here",
"label": "Slogan",
"layerId": "slogan",
"prop": "content",
"type": "text"
},
{
"constraints": {
"oneOf": [
"Anton",
"Poppins"
]
},
"default": "Poppins",
"label": "Font",
"layerId": "slogan",
"prop": "fontFamily",
"type": "select"
},
{
"constraints": {
"max": 0.0339,
"min": 0.0127,
"step": 0.0014
},
"default": 0.0226,
"label": "Size",
"layerId": "slogan",
"prop": "fontSizeFrac",
"type": "number"
},
{
"constraints": {},
"default": {
"cmyk": [
0,
0,
0,
100
]
},
"label": "Colour",
"layerId": "slogan",
"prop": "fill",
"type": "color"
}
],
"groupId": "slogan-text",
"index": 1,
"label": "Text",
"layerIds": [
"slogan"
],
"transforms": [
{
"layerId": "slogan",
"transform": {
"rotate": {
"editable": true,
"max": 10,
"min": -10,
"snapDeg": 5
},
"translate": {
"bounds": "safeArea",
"editable": true
}
}
}
]
}
]
},
"language": "en",
"offersProperties": true,
"pixel": false,
"poweredBy": true,
"previewUrl": "https://api.pixonaut.example/i/eyJhdWQiOiJjYXRhbG9ndWUtaW1hZ2UifQ.c2lnbmF0dXJl",
"printFloorDpi": 150,
"printMargins": {
"bleedMm": 3,
"safeAreaMm": 5
},
"showcases": [
{
"id": "graduation-blue",
"name": "Blue, with a name",
"previewUrl": "https://api.pixonaut.example/i/eyJhdWQiOiJjYXRhbG9ndWUtaW1hZ2UiLCJzIjoiYmx1ZSJ9.c2lnbmF0dXJl"
}
],
"status": "live",
"template": {
"dpi": 300,
"fit": "contain",
"groups": [
{
"id": "upload-motif",
"label": "Upload a motif",
"layerIds": [
"motif"
],
"order": 0
},
{
"id": "slogan-text",
"label": "Text",
"layerIds": [
"slogan"
],
"order": 1
}
],
"id": "tshirt-basic",
"layers": [
{
"anchor": "top-left",
"hFrac": 0.5556,
"id": "motif",
"name": "Motif",
"offsetFrac": {
"x": 0.1429,
"y": 0.1111
},
"props": {
"fit": {
"editable": false,
"value": "contain"
},
"src": {
"constraints": {
"allowUpload": true
},
"description": "Upload a PNG or JPEG, at least 150 dpi at print size.",
"editable": true,
"label": "Motif",
"value": null
}
},
"transform": {
"rotate": {
"editable": false
},
"scale": {
"editable": true,
"max": 1.4,
"min": 0.5
},
"translate": {
"bounds": "safeArea",
"editable": true
},
"value": {
"rotationDeg": 0,
"scale": 1
}
},
"type": "image",
"wFrac": 0.7143,
"z": 10
},
{
"anchor": "top-left",
"hFrac": 0.1389,
"id": "slogan",
"name": "Slogan",
"offsetFrac": {
"x": 0.0714,
"y": 0.7361
},
"props": {
"align": {
"editable": false,
"value": "center"
},
"content": {
"constraints": {
"maxLength": 40,
"maxLines": 2
},
"editable": true,
"label": "Slogan",
"value": "Your text here"
},
"fill": {
"editable": true,
"label": "Colour",
"value": {
"cmyk": [
0,
0,
0,
100
]
}
},
"fontFamily": {
"constraints": {
"oneOf": [
"Anton",
"Poppins"
]
},
"editable": true,
"label": "Font",
"value": "Poppins"
},
"fontSizeFrac": {
"constraints": {
"max": 0.0339,
"min": 0.0127,
"step": 0.0014
},
"editable": true,
"label": "Size",
"value": 0.0226
}
},
"textBox": {
"mode": "adapt",
"shrinkTo": 0.0127,
"then": "clamp"
},
"transform": {
"rotate": {
"editable": true,
"max": 10,
"min": -10,
"snapDeg": 5
},
"scale": {
"editable": false
},
"translate": {
"bounds": "safeArea",
"editable": true
},
"value": {
"rotationDeg": 0,
"scale": 1
}
},
"type": "text",
"wFrac": 0.8571,
"z": 20
}
],
"name": "T-shirt print, front",
"palettes": {},
"ratio": {
"h": 360,
"w": 280
},
"ratioTolerance": 0,
"tenantId": "acme",
"version": 2
},
"workspaceLanguage": "en"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: sdk_version_invalid, invalid_query

Media typeapplication/json
object
error
required
string
reason

Always sent with invalid_query.

string

Examples

invalid_query

{
"error": "invalid_query",
"reason": "string"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: unauthorized

Media typeapplication/json
object
error
required
string

Examples

Exampleunauthorized

unauthorized

{
"error": "unauthorized"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: origin_forbidden, feature_disabled, forbidden, workspace_suspended

Media typeapplication/json
object
error
required
string
feature

The feature the tenant does not have. Always sent with feature_disabled.

string

Examples

feature_disabled

{
"error": "feature_disabled",
"feature": "api"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

No published template has this id

X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: sdk_outdated

Media typeapplication/json
object
error
required
string
minimumSdkVersion

The first SDK release after the caller’s that can draw the template, or null when no released SDK can yet. Always sent with sdk_outdated.

string | null
/^(\d+)\.(\d+)\.(\d+)$/

Examples

Examplesdk_outdated

sdk_outdated

{
"error": "sdk_outdated",
"minimumSdkVersion": "0.15.0"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: rate_limited

Media typeapplication/json
object
error
required
string

Examples

Examplerate_limited

rate_limited

{
"error": "rate_limited"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: db_error. A request that failed unexpectedly answers as text instead.

object
error
required
string

Examples

Exampledb_error

db_error

{
"error": "db_error"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Questions? Write to [email protected].

Status · Terms of service · Privacy policy · Subprocessors