---
title: "Reset Paragraph Contents (Dev Only)"
method: POST
path: "/v1/external/notes/{noteGuid}/paragraphs:reset"
tags: ["Note"]
---

# Reset Paragraph Contents (Dev Only)

`POST /v1/external/notes/{noteGuid}/paragraphs:reset`

## Request

- Base URL: `https://api.tiro-ooo.dev`
- URL: `https://api.tiro-ooo.dev/v1/external/notes/{noteGuid}/paragraphs:reset`
- Auth: HTTP bearer

Resets one content kind across every paragraph in a note atomically.
This endpoint is available only when content editing is enabled in the
environment. It is being tested in dev and is not available in production.
Requires `note:write` and permission to edit the note.

`original` resets plain and speaker-attributed transcripts, including
speaker assignments. It preserves translations and paragraph summaries.
`translated` resets only translations. `summary` resets only paragraph
summaries. Note summaries and documents are separate resources and remain unchanged.

Read `GET /v1/external/notes/{noteGuid}/paragraphs` from the same dev base
URL, `https://api.tiro-ooo.dev`. Production reads omit editState.
Copy `editState.etag` and check
`editState.canResetByKind` for the selected kind. The availability map
applies to the entire note, even though it appears on each paragraph.
Previous Undo history ends for the reset content. Other content and its
Undo history remain available. Original reset also prevents Undo of
affected earlier speaker changes. If any target cannot be reset, no
paragraph content is changed.

The existing single-paragraph reset keeps its three-field behavior.
This operation does not change that endpoint's contract.

## Path parameters

- `noteGuid` string, required

## Request body

- object
  - `kind` 'original' | 'translated' | 'summary', required: Content kind to reset across every paragraph.
  - `etag` string, required: Exact editState.etag from the latest paragraph read response.

## Response `200`

Reset completed. Returns the new etag with undoAvailable and canReset
set to false for this command target. Read the paragraphs again for
updated content and availability for other actions.

- RecoveryEditState
  - `etag` string, required: Opaque token for the updated content state. Never derive or increment this value.
  - `undoAvailable` boolean, required: Whether Undo is available for the command target. False after reset.
  - `canReset` boolean, required: Whether reset is available for the command target. False after reset.

## Other responses

- `400`: Bad request (code 400000). Invalid kind or missing or blank etag. Correct the request body.
- `401`: Authentication failed (code 401001), or the API key is invalid, expired, or revoked (code 401009). Send a valid credential in the Authorization header.
- `403`: Missing note:write scope (code 403013) or note edit permission (code 403001). Use a credential with both permissions.
- `404`: Note unavailable (code 404002): verify noteGuid and access using the same credential. Missing route (code 404000): verify the dev base URL and feature availability. Production does not expose this endpoint.
- `409`: CONTENT_CONFLICT (code 409035) means the etag is stale. Read again and review the changes before choosing reset again. Do not automatically retry with a new etag. CONTENT_NOT_EDITABLE (code 409036) means reset is unavailable, for example during generation or when required generated content is missing. Read the current availability before another attempt.

---

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