publ betaReference (MCP guide)
Open publ console

publ Reference

content_series_apply

Create or edit a series, manage its publication state and organize existing content links.

Read the shared content contract for authorization, app identity, result interpretation and recovery.

Inputs and actions

Require channelCode, supported article/photobook/resource pAppCode, requestId and expectedRevision. Use list selectionRevision from content_series_get for create, or detail revision for every other action. dryRun defaults to false.

action.kind Fields
create title, explicit isPublished, optional photobook explicitNavigationType.
update seriesId and nonempty fields (see below).
visibility seriesId and isPublished.
delete seriesId and confirmation DELETE_SERIES.
link seriesId and 1–100 distinct postIds from the same app, none already linked. The resulting series must contain at most 100 posts.
unlink seriesId and episodeId from this series; disconnects the link, not the original post.
move seriesId, episodeId and beforeEpisodeId; null moves it last, otherwise select another episode in this series.

Editable fields

Article/resource title allows 1–65 UTF-16 units and description 0–250; photobook title 1–150 and description 0–800. Omit description to preserve it; null or an empty string clears it to the source null value. This normalization applies only to new write bodies, never saved journal expectations. The generic schema's larger envelope does not override app-specific runtime guards. All support coverImageSrc; article/resource support thumbnailSrc, while photobook supports logoImageSrc, explicitNavigationType and useWatermarkOverlayProtection. Image fields accept an HTTP(S) URL or empty string to clear.

Photobook navigation is NAV_B00005_HORIZONTAL_POST_VIEWING (default on creation) or NAV_B00005_VERTICAL_POST_VIEWING. Other apps cannot set it. publishedAt is source UTC metadata without a suffix, to whole-second precision, and does not schedule publication. Use content_schedule_apply for that purpose. Obtain new artwork URLs with content_file_upload.

Input example

This is an input illustration, not a recorded call. Replace the channel, app, observed IDs and all-zero revision with values from the matching authorized read. A dry run does not save changes.

{
  "channelCode": "selected-channel",
  "pAppCode": "B00001",
  "requestId": "example-request-001",
  "expectedRevision": "0000000000000000000000000000000000000000000000000000000000000000",
  "dryRun": true,
  "action": {
    "kind": "move",
    "seriesId": 1,
    "episodeId": 2,
    "beforeEpisodeId": null
  }
}