Skip to main content

Bulk Resolve Field Reviews

Resolve up to 500 held fields in one call with a shared action. Each item runs the single-field resolve path and a failed item never aborts the batch.

Resolve a batch of held fields with one action, up to 500 per call. This is how you clear an identical-value cluster: approve every member of a group of fields that all hold the same value in one request. Each item runs the same single-field resolve path, so the decision log, promotion cell, and resume behavior are identical to resolving one field at a time.

The request carries an items array of (pipeline_document_id, field_key) targets, the shared action, and an optional corrected_value and reason applied to every item. A failed item never aborts the rest: the call always returns a per-item result with ok true or an error message, plus the resolved and failed counts. This lets you submit a large batch and reconcile partial failures afterward.

Items targeting a document that does not belong to your organization are reported as failed with a "Pipeline document not found" error rather than failing the whole call. The same loop-guard and resume rules from single-field resolve apply per item: an approve or override suppresses re-blocking, a correct does not. This endpoint requires an API key with the write scope.

A bulk resolve is capped at 500 items. When action is correct, the same corrected_value is promoted across every item, so only batch a correct over fields that genuinely share the right value.
POST/v1/field-reviews/bulk-resolve

Body parameters

items*object[]Targets to resolve (1-500). Each is { pipeline_document_id, field_key }.
items[].pipeline_document_id*stringPipeline document holding the field (UUID).
items[].field_key*stringSchema field key under review (max 500 characters).
action*stringAction applied to every item: approve, correct, or override.
corrected_valuestringValue promoted across the batch. Required for correct. Max 10,000 characters.
reasonstringReason recorded against every decision. Max 2,000 characters.

curl

Response

Response fields

resolvedintegerNumber of items that resolved successfully.
failedintegerNumber of items that failed.
resultsarrayPer-item outcome, in request order.
results[].pipeline_document_idstringThe item's document id.
results[].field_keystringThe item's field key.
results[].okbooleanWhether the item resolved.
results[].errorstringFailure reason when ok is false.

Response

{
  "resolved": 2,
  "failed": 1,
  "results": [
    { "pipeline_document_id": "pd_uuid_1", "field_key": "currency", "ok": true },
    { "pipeline_document_id": "pd_uuid_2", "field_key": "currency", "ok": true },
    {
      "pipeline_document_id": "pd_uuid_3",
      "field_key": "currency",
      "ok": false,
      "error": "Pipeline document not found"
    }
  ]
}

Errors

Error responses

400validation_errorThe body failed validation (e.g. empty items, more than 500 items, or correct without corrected_value).
401unauthorizedMissing or invalid API key.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.