> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipstar.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# update_content

> Revise the draft text and/or category of a generated content record

Revises the draft text and/or category of a generated content record. The replacement is **wholesale** — pass the complete revised text, not a diff. For structured types (changelogs, KB article sets, release notes emails) the draft must remain JSON in the same shape as the original; pass it as a JSON string or object. Note that edits to already-published content update the public copy immediately.

## Arguments

| Name         | Type             | Description                                                                                    |
| ------------ | ---------------- | ---------------------------------------------------------------------------------------------- |
| `content_id` | string (UUID)    | The `content_id` returned by a `generate_*` tool.                                              |
| `content`    | string or object | Replacement draft text (or JSON object for structured types). Optional if `category` is given. |
| `category`   | string           | Replacement category label. Optional if `content` is given.                                    |

## Returns

The updated record's status payload:

```json theme={null}
{
  "content_id": "7f5e2c1a-...",
  "output_type": "public_changelog",
  "status": "completed",
  "error_message": null,
  "review_status": "ready_for_review",
  "is_published": false,
  "published_at": null,
  "public_slug": null,
  "created_at": "2026-08-10T14:02:11+00:00"
}
```

Typical flow: read with [`get_content_draft`](/mcp/lifecycle/get-content-draft), revise here, then [`approve_content`](/mcp/lifecycle/approve-content) or [`publish_content`](/mcp/lifecycle/publish-content).

## Errors

* `Provide \`content\` and/or \`category\` to update.\` — called with neither argument.
* `Invalid content_id (must be a UUID): abc123`
* `Content not found: 7f5e2c1a-...` — no record with that ID exists in this project.

## Example prompts

> "Tighten the intro paragraph of that blog draft and save it back."

> "Rewrite the changelog headline to mention the API keys page, keeping the JSON structure intact."
