---
title: "Update story status and metadata"
method: PATCH
path: "/api/sync/{mapId}/stories"
tags: ["Sync"]
---

# Update story status and metadata

`PATCH /api/sync/{mapId}/stories`

## Request

- Base URL: `https://intentdocs.com`
- URL: `https://intentdocs.com/api/sync/{mapId}/stories`
- Auth: none declared

Update multiple stories with new status, notes, implementation details, and screenshots.

## Path parameters

- `mapId` string, required

## Request body

- object
  - `stories` object[], required
    - `id` string, required
    - `status` 'todo' | 'in_progress' | 'needs_rework' | 'done' | 'approved'
    - `notes` string
    - `implementation_summary` string
    - `implemented_files` string[]
    - `screenshot_url` string
    - `implementation_plan` object
    - `cancelled_at` string, nullable
    - `cancellation_reason` string, nullable
    - `pr_url` string
    - `pr_number` number
    - `forced` boolean: Set when overriding failed must-criteria

## Response `200`

Stories updated successfully

- object
  - `updated` number
  - `stories` unknown[]
    - unknown
  - `readyReleases` unknown[]
    - unknown

## Other responses

- `400`: Invalid request
- `401`: No CLI bearer, or no standing on the map's project

---

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