---
title: "Update Values for the specified Form"
method: PATCH
path: "/v1/forms/{uuid}/values"
tags: ["forms"]
---

# Update Values for the specified Form

`PATCH /v1/forms/{uuid}/values`

Atomically sets or clears a partial batch of standard Form Values. Omitted Fields remain unchanged. Formatted-text input is canonicalized. By default, unresolved tracked changes reject the batch; callers can explicitly discard them with tracked_changes_policy DISCARD.

## Path parameters

- `uuid` string, uuid, required

## Request body

- FormValuesUpdate
  - `tracked_changes_policy` 'FAIL' | 'DISCARD' — Controls unresolved tracked changes on targeted Values. Defaults to FAIL when omitted. FAIL rejects the entire batch. DISCARD rejects unresolved suggestions atomically before replacing the Values.
  - `values` FormValueUpdateItem[], required — The partial batch of Form Values to set or clear. Fields omitted from the batch remain unchanged, and each Field may appear only once. The combined length of all non-null Values must not exceed 1,000,000 Unicode code points.
    - `field_uuid` string, uuid, required — The UUID of the Form Field whose Value to set or clear.
    - `value` string, nullable, required — The opaque Value to store. Use null to clear the stable Value slot. Non-null Values may contain at most 500,000 characters under Fieldguide's native validation semantics, which count Unicode surrogate pairs and base-character-plus-FE0E/FE0F presentation sequences as one character. Formatted-text HTML is canonicalized by Fieldguide. Image Values can be cleared but cannot be assigned through this endpoint.

## Response `200`

The canonical committed Values in request order

- object
  - `data` FormValueUpdateRead[], required
    - `value` string, nullable, required — The Value exactly as stored. Formatted text is returned as stored HTML. This is null for image-backed Values.
    - `file_uuid` string, uuid, nullable, required — The stored File UUID for an image-backed Value; otherwise null.
    - `created_at` string, date-time, required — When the Value was first stored.
    - `updated_at` string, date-time, required — When the stored Value was last changed.
    - `has_pending_track_changes` boolean, required — Whether this formatted-text Value has unresolved track-change suggestions.
    - `field_uuid` string, uuid, required — The UUID of the Form Field whose Value was committed.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden Forbidden (requires scopes `forms:write`) Forbidden for client user credentials; a firm user credential is required (requires scopes `forms:write`)
- `404` — Resource not found
- `409` — A targeted formatted-text Value has unresolved track-change suggestions
- `413` — The request body exceeds 10 MiB after content-encoding decompression
- `429` — Too many requests

---

[API](https://skmtc.dev/fieldguide/apis/fieldguide-api.md) · [All operations](https://skmtc.dev/fieldguide/apis/fieldguide-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fieldguide/fieldguide-api/revisions/747bec80c46e/schema)
