---
title: "Save Permit Packet Edit"
method: POST
path: "/permit-runs/{run_id}/packet/edit"
tags: ["operator-runs"]
---

# Save Permit Packet Edit

`POST /permit-runs/{run_id}/packet/edit`

Save an edited packet master posted by the dashboard's pdf.js editor.

``annotations`` (optional JSON list) carries dashboard-drawn marks —
whiteout boxes (true redactions: underlying text is removed) and inserted
text — applied server-side before the re-flatten. The bytes are stored as a
NEW S3 object next to the original (audit trail — nothing is ever
overwritten), re-flattened + re-rasterized, and the run is marked edited.
Returns fresh presigned links (latest versions).

## Path parameters

- `run_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `404` — Not found
- `422` — Validation Error

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noso/apis/crucible-backend-api/revisions/8eb1d6b3ce25?raw)
