---
title: "Import Historical Release"
method: POST
path: "/api/internal/releases/import-historical"
tags: ["releases"]
---

# Import Historical Release

`POST /api/internal/releases/import-historical`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/internal/releases/import-historical`
- Auth: none declared

Backfill the note for a bundle this install SKIPPED (TOS-4055).

Separate from `/import` on purpose. That endpoint requires the note to match
the running bundle exactly, which is correct for the release you just
adopted and is precisely what makes catch-up impossible: every skipped
bundle is by definition not the one running, so every one of them 409s.

The guard here is the other half of the same idea, and it is deliberately
one-directional: a note may be older than what this install runs, never
newer. Backfilling history is safe; recording a release you have not
actually reached would let What's New advertise code that is not deployed.
Bundle versions are `YYYYMMDD.HHMM-<sha>`, so the timestamp prefix orders
lexicographically and a plain string comparison is a date comparison.

## Headers

- `authorization` string, nullable

## Request body

- BundledReleaseNote: Immutable release metadata carried inside the signed OCI bundle.
  - `schema_version` 1
  - `release_id` string, uuid, required
  - `bundle_version` string, required
  - `git_sha` string, required
  - `source` 'backend' | 'web' | 'bridge' | 'docs' | 'full_stack'
  - `category` 'feature' | 'improvement' | 'fix' | 'performance' | 'security' | 'integration' | 'admin' | 'internal', required
  - `title` string, required
  - `summary` string, required
  - `notes_markdown` string
  - `notes_markdown_admin` string
  - `notify_users` boolean, required
  - `published_at` string, date-time, required
  - `generated_by_ai` boolean

## Response `200`

Successful Response

- ImportBundledReleaseOut
  - `stored` boolean, required
  - `release_id` string, uuid, required
  - `bundle_version` string, required

## Other responses

- `422`: Validation Error

---

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