publish_content
Make a content item's working draft live in one locale (a LANGUAGE BRANCH: Norwegian text published into 'en' lands on the English site, so a clear mismatch is refused).
Instructions
Make a content item's working draft live in one locale (a LANGUAGE BRANCH: Norwegian text published into 'en' lands on the English site, so a clear mismatch is refused). A future publishAt SCHEDULES it instead: it stays invisible until then; call again with a new publishAt to reschedule, or without one to go live now. expireAt unpublishes it automatically later. Never fake a schedule with a date field — that publishes now. A changed slug or position gets a 301 from the old URL. Fires content.published. Refused when there is nothing new to publish, when required fields are empty (the error names them), or, if the site requires human review of agent drafts, until an editor approves it. Returns the item in the get_content shape with its new status. To take it down use unpublish_content; to drop unpublished edits, discard_draft.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site slug or id to act in (multisite). Omit to use this server's default site. Call list_sites to see what exists — an empty tree or search usually means the wrong site, not missing content. | |
| locale | No | Locale code. Omit for the document's own locale (its site-default variant, else its only variant). | |
| expireAt | No | When to unpublish automatically (ISO 8601). Must be after publishAt. | |
| publishAt | No | Future go-live time (ISO 8601, e.g. "2026-09-01T09:00:00Z"). Omit to publish immediately. | |
| documentId | Yes | The item's documentId (stable across locales and versions), e.g. from list_tree, list_content or get_content. | |
| allowLanguageMismatch | No | Set true ONLY when publishing content whose language deliberately differs from the locale branch |