---
title: "Finalize a content plan"
method: POST
path: "/content/v1/plans/{plan_id}/commit"
tags: ["Content"]
---

# Finalize a content plan

`POST /content/v1/plans/{plan_id}/commit`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/content/v1/plans/{plan_id}/commit`
- Auth: API key in header `apikey`

Finalize a content plan: complete multipart uploads, promote staged objects to the project's CAS, record per-project reference proofs. Idempotent on already-committed plans.

## Path parameters

- `plan_id` string, required

## Response `200`

Plan committed (or already committed; idempotent)

- ContentPlanCommitResponse
  - `plan_id` string, required
  - `committed` boolean, required
  - `promoted` object[], required

## Other responses

- `404`: Plan not found or not owned by this project

---

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