Skip to content

submitContentDraft

POST
/api/v1/content-submissions/{type}/{id}
curl --request POST \
--url https://example.com/api/v1/content-submissions/playlist/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Content-Type: application/json' \
--data '{ "requestedPublicationAt": "2026-04-15T12:00:00Z", "expectedRevision": 1 }'

Freezes the current working draft. expectedRevision is optional optimistic concurrency protection.

type
required
string
Allowed values: playlist layout campaign
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
requestedPublicationAt
string format: date-time
expectedRevision
integer format: int64
>= 1
Examplegenerated
{
"requestedPublicationAt": "2026-04-15T12:00:00Z",
"expectedRevision": 1
}

Immutable submission created

Media typeapplication/json
object
data
required
object
id
required
string format: uuid
contentType
required
string
Allowed values: playlist layout campaign
contentId
required
string format: uuid
contentName
string
workingRevision
required
integer format: int64
>= 1
snapshot
required
object
key
additional properties
any
snapshotSha256
required
string
/^[0-9a-f]{64}$/
submittedBy
string format: uuid
submitterName
string
submittedAt
required
string format: date-time
basedPublishedRevision
integer format: int64
basedPublishedRevisionId
string format: uuid
status
required
string
Allowed values: in_review changes_requested approved scheduled published superseded publication_failed
reviewRequired
required
boolean
allowSelfApproval
required
boolean
reviewNote
string
reviewedBy
string format: uuid
reviewerName
string
reviewedAt
string format: date-time
requestedPublicationAt
string format: date-time
publicationFailureReason
string
publishedAt
string format: date-time
newerWorkingDraft
required
boolean
currentPublishedRevision
integer format: int64
affectedScreenCount
required
integer
affectedLocationCount
required
integer
Example
{
"data": {
"contentType": "playlist",
"status": "in_review"
}
}

Active submission or working-draft conflict

Snapshot/readiness validation failed