---
title: "Roll Up Week"
method: POST
path: "/api/v1/internal/release-notes/roll-up"
tags: ["internal", "release-notes"]
---

# Roll Up Week

`POST /api/v1/internal/release-notes/roll-up`

## Request body

- RollUpWeekRequest
  - `week_start` string, date, required

## Response `200`

Successful Response

- RollUpWeekResponse — What the roll-up did, so the client can toast the truth. ``no_changes`` is how a re-run with nothing new reports itself instead of minting an empty duplicate draft.
  - `outcome` 'created' | 'merged' | 'merged_into_published' | 'merged_after_digest' | 'no_changes', required — What one week roll-up run did. ``NO_CHANGES`` is a first-class outcome rather than an empty duplicate draft — a re-run with nothing new must say so, not mint one. A week holds one entry, so every merge outcome names what the merge touched. ``MERGED_INTO_PUBLISHED`` is separate from ``MERGED`` because the entry it grew is already in front of customers: the operator is editing live copy, not a draft, and nothing else on the response says so. ``MERGED_AFTER_DIGEST`` narrows that again to a week some digest has already claimed. Claiming is what makes an entry unmailable a second time, so bullets appended afterwards reach no send unless somebody puts them there — reported, because the alternative is losing them quietly.
  - `releases_added` integer, required
  - `entry` ReleaseNoteEntryResponse, required
    - `id` string, uuid, required
    - `title` string, required
    - `body_markdown` string, required
    - `status` 'draft' | 'published', required
    - `publish_at` string, date-time, nullable, required
    - `week_start` string, date, required
    - `deleted_at` string, date-time, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/maia-analytics/apis/maia-api.md) · [All operations](https://skmtc.net/maia-analytics/apis/maia-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maia-analytics/maia-api/revisions/ba2b8d962161/schema)
