Unpublish a banner
/banners/{id}/unpublishNeedscontent.editStops serving the item in an environment. The draft and versions stay; publish again to bring it back.
Authorization
secretKeyAuthorizationBearer <sk_…>A secret API key from Settings → API keys. It acts with its creator's role.
Path Parameters
id*integerThe banner's id.
1 <= valueRequest Body
application/json- body
environment*stringproduction (everyone matching sees it) or staging (only pages using the staging key).
"production""staging"Response Body
OK
application/json- response
publication*Which version each environment serves. null = not published there.
curl -X POST 'https://app.cueston.com/api/banners/1/unpublish' \
-H 'Content-Type: application/json' \
-d '{
"environment": "production"
}'{
"publication": {
"production": {
"versionId": 7,
"version": 3,
"publishedAt": "2026-10-26T09:30:00Z"
},
"staging": {
"versionId": 7,
"version": 3,
"publishedAt": "2026-10-26T09:30:00Z"
}
}
}Publish a bannerPOST
Publishes the working draft as a new version (or re-serves the latest version when nothing changed). Production needs `content.publish` and fails with `approval_required` when the workspace requires review — then request a review (`POST /banners/{id}/publish-requests`). Staging needs `content.edit`.
Request a reviewPOST
Asks a publisher to review and publish the current draft to production (snapshotted as a version now, so later edits don't change what's reviewed). Publishers are emailed.