204 No Content. extraction_id is the id of an entry of results.extractions in Get run. One extraction belongs to one workflow version, so a name picks exactly one field.
Naming the field
Name the field by its key in the results (sanitized_name) or by its persistent_id, not both. Send the key you just read, or the persistent_id if you keep ids: it survives a rename. A field’s persistent_id is the one Get workflow returns for it.
A column key is unique only within its table, so
column goes with the table’s sanitized_name. row_index counts from 0. A cell of a table is named by a column and a row: the table alone, or a column without its row_index, answers 422.
The value
value is required. Send null to empty the field. Today the API takes the value as a string or null, the form Get run returns. Treat value as the field’s value in whatever type results return for it: a later release can accept numbers, booleans, dates and lists in the same key, and refuse a value that does not fit the field’s type.
A value that is the same text as the original verifies the field. Any other value marks it human_edited. A yes/no field set back to its original answer still counts as an edit when the text differs, such as "true" and "True". value_unit is not part of the public request.
What else the edit does
- On a dataset document whose extraction is fully verified, the edit rewrites the document’s ground truth.
- A document with an assigned verifier refuses every other user with
403 NOT_ASSIGNED_VERIFIER. The key acts as its owner. - The edit changes the stored results only. It does not run the workflow again.

