---
title: "Revise moment passages"
method: PUT
path: "/api/v1/projects/{projectId}/moment-sets/{momentSetId}/passages"
tags: ["Moments"]
---

# Revise moment passages

`PUT /api/v1/projects/{projectId}/moment-sets/{momentSetId}/passages`

## Request

- Base URL: `https://prismclip.com`
- URL: `https://prismclip.com/api/v1/projects/{projectId}/moment-sets/{momentSetId}/passages`
- Auth: HTTP bearer

Replace the passages of an owned moment set using the same evidence and caption validation as the Studio review UI. Revisions are immutable: PrismClip creates and activates a new ready moment set and returns the prior ID.

## Path parameters

- `projectId` string, uuid, required
- `momentSetId` string, uuid, required

## Request body

- object
  - `passages` object[], required: Complete replacement passage list; revision creates a new immutable moment set
    - `evidence_kind` 'speech' | 'visual' | 'mixed', required
    - `first_word` integer, nullable, required
    - `last_word` integer, nullable, required
    - `start_ms` integer, required
    - `end_ms` integer, required
    - `scene_indices` integer[], required
    - `caption_corrections` object[], required
      - `ordinal` integer, required
      - `text` string, required
    - `reason` string, required

## Response `200`

The new ready revision, validated passages, and prior moment-set ID.

- object
  - `momentSet` object, required
    - `id` string, uuid, required
    - `projectId` string, uuid, required
    - `claim` string, required
    - `targetSeconds` integer, required
    - `selectionMode` 'moment' | 'quick_cut', required
    - `status` string, required
    - `error` string, nullable, required
    - `createdAt` string, required: ISO 8601 timestamp
    - `updatedAt` string, required: ISO 8601 timestamp
  - `passages` object[], required
    - `id` string, uuid, required
    - `position` integer, required
    - `firstWord` integer, nullable, required
    - `lastWord` integer, nullable, required
    - `startMs` integer, required
    - `endMs` integer, required
    - `reason` string, required
    - `evidence` union, required
      - object
        - `kind` 'speech', required
      - object
        - `kind` 'visual', required
        - `visualAnalysisId` string, uuid, required
        - `sceneIndices` integer[], required
      - object
        - `kind` 'mixed', required
        - `visualAnalysisId` string, uuid, required
        - `sceneIndices` integer[], required
    - `captionCorrections` object[], required
      - `ordinal` integer, required
      - `text` string, required
  - `priorMomentSetId` string, uuid, required

## Other responses

- `400`: The replacement source ranges, evidence citations, ordering, or caption corrections are invalid.
- `401`: The API key is missing or invalid.
- `403`: The API key lacks moments:write.
- `404`: The owned moment set or cited evidence was not found.
- `409`: The moment set cannot be revised in its current state.
- `429`: The API-key rate limit was exceeded.
- `503`: Moment or evidence storage is unavailable.

---

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