---
title: "Save agent-edited content as a new version"
method: POST
path: "/v1/projects/{projectId}/content-versions"
tags: ["Content"]
---

# Save agent-edited content as a new version

`POST /v1/projects/{projectId}/content-versions`

## Request

- Base URL: `https://www.seoforgpt.io/api`
- URL: `https://www.seoforgpt.io/api/v1/projects/{projectId}/content-versions`
- Auth: HTTP bearer

Appends complete edited content to an existing generated blog's version history. No AI model is called and the original draft remains unchanged.

## Path parameters

- `projectId` string, uuid, required

## Request body

- object
  - `contentId` string, uuid, required
  - `content` string, required
  - `sourceVersionId` string
  - `changeSummary` string

## Response `200`

Identical latest version already exists

## Other responses

- `201`: New content version saved
- `400`: Invalid input
- `401`: Missing or invalid bearer token
- `404`: Resource not found
- `409`: Conflict (e.g. API key limit)
- `500`: Server error
- `default`: Any documented or unexpected 4xx or 5xx response uses the same typed error envelope.

---

[API](https://skmtc.dev/seoforgpt/apis/seoforgpt-public-api.md) · [All operations](https://skmtc.dev/seoforgpt/apis/seoforgpt-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/seoforgpt/apis/seoforgpt-public-api/revisions/d90da8f1ea73?raw)
