Skip to content

saveLayoutDraft

PUT
/api/v1/layouts/{id}/draft
curl --request PUT \
--url https://example.com/api/v1/layouts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/draft \
--header 'Content-Type: application/json' \
--cookie tilecast_session=<tilecast_session> \
--data '{ "expectedDraftRevision": 1, "document": { "schemaVersion": 2, "canvas": { "width": 1, "height": 1, "orientation": "landscape", "backgroundColor": "example", "backgroundAssetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "backgroundVariantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "safeAreaPercent": 1 }, "placements": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "type": "widget", "name": "example", "x": 1, "y": 1, "width": 1, "height": 1, "layer": 1, "opacity": 1, "visible": true, "locked": true, "groupId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "widgetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "assetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "variantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "playlistId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "overrides": { "fit": "contain", "alignment": "left", "foregroundColor": "example", "backgroundColor": "example", "fallbackVisibility": "show", "muted": true }, "primitive": { "kind": "text", "text": "example", "fontFamily": "Inter", "fontId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "fontSize": 1, "fontWeight": 400, "textAlign": "left", "verticalAlign": "top", "color": "example", "backgroundColor": "example", "lineHeight": 1, "letterSpacing": 1, "padding": 1, "borderWidth": 1, "borderColor": "example", "cornerRadius": 1, "maximumLines": 1, "overflow": "clip", "autoFit": true, "minimumFontSize": 1, "fillColor": "example", "strokeColor": "example", "strokeWidth": 1, "binding": { "dataSourceId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "field": "example", "prefix": "example", "suffix": "example", "fallbackText": "example", "hideWhenEmpty": true, "format": "text" } }, "playback": { "fit": "contain", "muted": true, "loop": true, "fallback": "hide", "cornerRadius": 1 } } ] } }'

Requires an authenticated dashboard session. Saves a validated draft using expectedDraftRevision optimistic concurrency.

id
required
string format: uuid
X-CSRF-Token
string

Cookie-backed browser requests only, and only on unsafe methods. Bearer grants never send it.

Media typeapplication/json
object
expectedDraftRevision
required
integer
>= 1
document
required
object
schemaVersion
required

Only schema version 2 is accepted.

integer
Allowed values: 2
canvas
required
object
width
required
integer
>= 320 <= 7680
height
required
integer
>= 320 <= 7680
orientation
required
string
Allowed values: landscape portrait custom
backgroundColor
required
string
backgroundAssetId
string format: uuid
backgroundVariantId
string format: uuid
safeAreaPercent
required
number
<= 20
placements
required
Array<object>
<= 200 items
object
id
required
string format: uuid
type
required
string
Allowed values: widget asset playlistZone primitive
name
required
string
x
required
number
y
required
number
width
required
number
height
required
number
layer
required
integer
<= 999
opacity
required
number
<= 1
visible
required
boolean
locked
required
boolean
groupId
string format: uuid
widgetId
string format: uuid
assetId
string format: uuid
variantId
string format: uuid
playlistId
string format: uuid
overrides

Legacy Widget placement override bag. The listed values are accepted for saved-document compatibility but are ignored by Studio and Player.

object
fit
string
Allowed values: contain cover stretch
alignment
string
Allowed values: left center right
foregroundColor
string
backgroundColor
string
fallbackVisibility
string
Allowed values: show hide
muted
boolean
primitive
object
kind
required
string
Allowed values: text rectangle circle line group
text
string
<= 4000 characters
fontFamily

Only bundled fonts are accepted for text primitives

string
Allowed values: Inter Roboto Source Sans 3 Noto Sans
fontId

A family from the organization font library. fontFamily stays the bundled fallback

string format: uuid
fontSize
number
>= 8 <= 600
fontWeight
integer
Allowed values: 400 500 600 700 800
textAlign
string
Allowed values: left center right
verticalAlign
string
Allowed values: top center bottom
color
string
backgroundColor
string
lineHeight
number
letterSpacing
number
padding
number
borderWidth
number
borderColor
string
cornerRadius
number
maximumLines
integer
>= 1
overflow
string
Allowed values: clip ellipsis
autoFit
boolean
minimumFontSize
number
fillColor
string
strokeColor
string
strokeWidth
number
binding
object
dataSourceId
required
string format: uuid
field
required
string
>= 1 characters
prefix
string
<= 500 characters
suffix
string
<= 500 characters
fallbackText
string
<= 500 characters
hideWhenEmpty
boolean
format
string
Allowed values: text date-short date-long number integer currency
playback
object
fit
string
Allowed values: contain cover stretch
muted
boolean
loop
boolean
fallback
string
Allowed values: hide background previous
cornerRadius
number
<= 1000

Draft saved with a new revision and ETag

Media typeapplication/json
object
data
required
object
id
required
string format: uuid
name
required
string
description
required
string
orientation
required
string
Allowed values: landscape portrait custom
canvasWidth
required
integer
>= 320 <= 7680
canvasHeight
required
integer
>= 320 <= 7680
draft
required
object
schemaVersion
required

Only schema version 2 is accepted.

integer
Allowed values: 2
canvas
required
object
width
required
integer
>= 320 <= 7680
height
required
integer
>= 320 <= 7680
orientation
required
string
Allowed values: landscape portrait custom
backgroundColor
required
string
backgroundAssetId
string format: uuid
backgroundVariantId
string format: uuid
safeAreaPercent
required
number
<= 20
placements
required
Array<object>
<= 200 items
object
id
required
string format: uuid
type
required
string
Allowed values: widget asset playlistZone primitive
name
required
string
x
required
number
y
required
number
width
required
number
height
required
number
layer
required
integer
<= 999
opacity
required
number
<= 1
visible
required
boolean
locked
required
boolean
groupId
string format: uuid
widgetId
string format: uuid
assetId
string format: uuid
variantId
string format: uuid
playlistId
string format: uuid
overrides

Legacy Widget placement override bag. The listed values are accepted for saved-document compatibility but are ignored by Studio and Player.

object
fit
string
Allowed values: contain cover stretch
alignment
string
Allowed values: left center right
foregroundColor
string
backgroundColor
string
fallbackVisibility
string
Allowed values: show hide
muted
boolean
primitive
object
kind
required
string
Allowed values: text rectangle circle line group
text
string
<= 4000 characters
fontFamily

Only bundled fonts are accepted for text primitives

string
Allowed values: Inter Roboto Source Sans 3 Noto Sans
fontId

A family from the organization font library. fontFamily stays the bundled fallback

string format: uuid
fontSize
number
>= 8 <= 600
fontWeight
integer
Allowed values: 400 500 600 700 800
textAlign
string
Allowed values: left center right
verticalAlign
string
Allowed values: top center bottom
color
string
backgroundColor
string
lineHeight
number
letterSpacing
number
padding
number
borderWidth
number
borderColor
string
cornerRadius
number
maximumLines
integer
>= 1
overflow
string
Allowed values: clip ellipsis
autoFit
boolean
minimumFontSize
number
fillColor
string
strokeColor
string
strokeWidth
number
binding
object
dataSourceId
required
string format: uuid
field
required
string
>= 1 characters
prefix
string
<= 500 characters
suffix
string
<= 500 characters
fallbackText
string
<= 500 characters
hideWhenEmpty
boolean
format
string
Allowed values: text date-short date-long number integer currency
playback
object
fit
string
Allowed values: contain cover stretch
muted
boolean
loop
boolean
fallback
string
Allowed values: hide background previous
cornerRadius
number
<= 1000
draftRevision
required
integer format: int64
publishedRevisionId
string format: uuid
publishedRevision
integer format: int64
publishedAt
string format: date-time
hasUnpublishedChanges
required
boolean
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
previewImageUrl
string
previewCaptureVersion
integer
>= 1
dependencies
required
Array<object>
object
type
required
string
Allowed values: widget asset playlist data_source
id
required
string format: uuid
usage
required
object
screens
required
Array<object>
object
id
required
string format: uuid
name
required
string
schedules
required
Array<object>
object
id
required
string format: uuid
name
required
string
campaigns
required
Array<object>
object
id
required
string format: uuid
name
required
string
Example
{
"data": {
"orientation": "landscape",
"draft": {
"schemaVersion": 2,
"canvas": {
"orientation": "landscape"
},
"placements": [
{
"type": "widget",
"overrides": {
"fit": "contain",
"alignment": "left",
"fallbackVisibility": "show"
},
"primitive": {
"kind": "text",
"fontFamily": "Inter",
"fontWeight": 400,
"textAlign": "left",
"verticalAlign": "top",
"overflow": "clip",
"binding": {
"format": "text"
}
},
"playback": {
"fit": "contain",
"fallback": "hide"
}
}
]
},
"dependencies": [
{
"type": "widget"
}
]
}
}

Draft revision conflict

Layout document or dependency rejected