Releases and scheduling
Publish many entries as one unit, schedule a publish or unpublish for later, and run agents on a schedule.
Releases
Section titled “Releases”A release is a named set of entries and assets that should change together: a product launch, a campaign, a rebrand. Each item says whether the release will publish or unpublish it. Publishing the release applies every item in one step, so readers never see half of a launch.
- Create a release with a title (Releases → New, or
POST …/releases). - Add entries and assets to it from the entry editor or the release
(
POST …/releases/{id}/itemswith{ "entityId": …, "action": "publish" }). - Review the list, then Publish release (
POST …/releases/{id}/published, needscontent:publish), or schedule it.
Publishing a release emits one entry.published event per entry, plus a release.published
event that names them all, which is the one to subscribe to if a deploy hook should run once per
launch.
Scheduled publishing
Section titled “Scheduled publishing”Schedule an entry or a release to publish or unpublish at a time:
curl -s "$API/spaces/$SPACE/environments/main/scheduled-actions" \ -H "Authorization: Bearer $CMA" -H 'content-type: application/json' \ -d '{ "action": "publish", "entityType": "entry", "entityId": "'"$ENTRY_ID"'", "scheduledFor": "2026-12-01T09:00:00Z" }'Scheduled actions are listed under GET …/scheduled-actions and can be cancelled until they run.
Scheduling needs content:publish, because it is a publish that happens later.
A scheduled publish validates the entry when it runs, not when it was scheduled, so a draft that has since gone invalid fails rather than going live.
Agent schedules
Section titled “Agent schedules”An agent schedule runs one of the AI agents on a cadence over the entries published since its last run: for example, enrich new articles every night, or moderate everything hourly. A schedule has a five-field cron expression in UTC, an optional content type, and whether its results apply directly or wait for review:
{ "workflow": "enrich", "cron": "0 2 * * *", "contentTypeApiId": "article", "autoApply": false }The first run only records where to start; it doesn’t reprocess everything already published. Each run is capped in entries and tokens, and a run that stops early picks up where it left off. See AI features.