---
title: "Close the current milestone version and open the next"
method: POST
path: "/v1/projects/{project_id}/versions"
tags: ["project-versions"]
---

# Close the current milestone version and open the next

`POST /v1/projects/{project_id}/versions`

## Request

- Base URL: `https://api.pioneer.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pioneer.ai/v1/projects/{project_id}/versions`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/pioneer/apis/brain-api/docs/v1/projects/:project_id/versions/post.ts> (a function with typed inputs; its response is checked against the schema)

Freeze or abandon the current milestone and open its successor.

Args:
    project_id: Project to advance.
    request: Reviewed summary, its revision token, and close options.
    auth: Authenticated caller.

Returns:
    The closed milestone and the newly opened one.

## Path parameters

- `project_id` string, uuid, required

## Request body

- VersionCreateRequest: Request body for closing the current milestone and opening the next.
  - `revision_token` string, required: Token from the preview whose summary the caller reviewed.
  - `carryover_summary` string, required: Reviewed (and possibly edited) narrative to store on the closing milestone.
  - `objective` string, nullable: Objective for the new milestone.
  - `abandon` boolean: Close without a champion. Required when the milestone has none.
  - `carry_dataset_ids` string[], nullable: Dataset versions to carry forward. Omit to carry every reference on the closing milestone.

## Response `200`

Successful Response

- VersionCreateResponse: The outcome of a milestone transition.
  - `closed` ProjectVersionResponse, required: A single project milestone.
    - `id` string, required
    - `project_id` string, required
    - `team_id` string, required
    - `version_number` integer, required
    - `status` 'current' | 'frozen' | 'abandoned', required: Lifecycle of a project milestone version (EDD section 9.1).
    - `objective` string, nullable, required
    - `carryover_summary` string, required
    - `champion` ChampionRef, required: What a milestone settled on, as exactly one populated target.
      - `training_job_id` string, nullable: Fine-tune chosen as champion.
      - `base_model` string, nullable: Catalog base model chosen as champion.
    - `created_by` string, required
    - `closed_by` string, nullable, required
    - `closed_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
  - `current` ProjectVersionResponse, required: A single project milestone.
    - `id` string, required
    - `project_id` string, required
    - `team_id` string, required
    - `version_number` integer, required
    - `status` 'current' | 'frozen' | 'abandoned', required: Lifecycle of a project milestone version (EDD section 9.1).
    - `objective` string, nullable, required
    - `carryover_summary` string, required
    - `champion` ChampionRef, required: What a milestone settled on, as exactly one populated target.
      - `training_job_id` string, nullable: Fine-tune chosen as champion.
      - `base_model` string, nullable: Catalog base model chosen as champion.
    - `created_by` string, required
    - `closed_by` string, nullable, required
    - `closed_at` string, date-time, nullable, required
    - `created_at` string, date-time, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-24** `0e5e86e2bae5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pioneer/apis/brain-api/changes/v1/projects/:project_id/versions/post.md)

---

[API](https://skmtc.dev/pioneer/apis/brain-api.md) - [All operations](https://skmtc.dev/pioneer/apis/brain-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pioneer/apis/brain-api/revisions/0e5e86e2bae5?raw)
