---
title: "Preview closing the current milestone version"
method: GET
path: "/v1/projects/{project_id}/versions/preview-close"
tags: ["project-versions"]
---

# Preview closing the current milestone version

`GET /v1/projects/{project_id}/versions/preview-close`

## 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/preview-close`
- 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/preview-close/get.ts> (a function with typed inputs; its response is checked against the schema)

Describe what closing the current milestone would record, writing nothing.

Args:
    project_id: Project to read.
    auth: Authenticated caller.

Returns:
    The manifest, a reviewable summary, any blockers, and the revision token.

## Path parameters

- `project_id` string, uuid, required

## Response `200`

Successful Response

- VersionPreviewResponse: What closing the current milestone would record.
  - `version_id` string, required: Milestone this preview describes.
  - `version_number` integer, required
  - `manifest` CarryoverManifestPayload, required: Deterministic snapshot of a milestone's contents.
    - `schema_version` integer, required: Manifest shape version.
    - `version` ManifestVersionRef, required: Identity of the milestone a manifest describes.
      - `id` string, required: Milestone UUID.
      - `number` integer, required: Monotonic per-project version number.
      - `objective` string, nullable: Goal set when the version opened.
    - `training_jobs` ManifestTrainingJob[]
      - `id` string, required: Training job UUID.
      - `model_name` string, nullable: Customer-facing model name.
      - `version_number` string, required: Version within the model lineage.
      - `base_model` string, required: Base model it was trained from.
      - `status` string, required: Raw persisted training status.
      - `deployable` boolean, required: Whether the artifact may serve traffic.
      - `not_deployable_reason` string, nullable: Stable reason code when the artifact cannot serve traffic.
    - `datasets` ManifestDataset[]
      - `id` string, required: Dataset UUID; an exact immutable version.
      - `name` string, required: Dataset name.
      - `version_number` string, required: Version within the dataset lineage.
    - `experiments` ManifestExperiment[]
      - `id` string, required: Experiment UUID.
      - `title` string, nullable: Agent-generated display name.
      - `stage` 'scoping' | 'preparing_data' | 'training' | 'evaluating' | 'complete' | 'blocked' | 'cancelled', required: Agent-owned workflow stage of an Experiment (EDD section 0.2).
    - `champion` ChampionRef: 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.
  - `summary` string, required: Reviewable narrative carryover; the rendered manifest when the agent could not produce one.
  - `summary_is_fallback` boolean, required: True when the narrative agent failed and the deterministic rendering was used.
  - `revision_token` string, required: Hash of the manifest; required by the create call.
  - `champion` ChampionRef: 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.
  - `blockers` ActiveWorkBlockerResponse[]: Unfinished work that must terminate before this milestone can close.
    - `kind` string, required: Blocking resource type: training_job or experiment.
    - `resource_id` string, required: Identifier of the blocking row.
    - `label` string, required: Customer-safe name of the blocking row.
    - `detail` string, required: Why it blocks the transition.
  - `can_close` boolean, required: Whether a create call would be accepted right now.
  - `carry_dataset_ids` string[]: Dataset versions that would be carried into the next milestone by default.

## 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/preview-close/get.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)
