Skip to content

Review

Create Extract Review
POST/api/v2/extract/{job_id}/review
Get Extract Review
GET/api/v2/extract/{job_id}/review
Change Extract Review Fields
POST/api/v2/extract/{job_id}/review/fields
Approve Extract Review
POST/api/v2/extract/{job_id}/review/approve
Reject Extract Review
POST/api/v2/extract/{job_id}/review/reject
Reopen Extract Review
POST/api/v2/extract/{job_id}/review/reopen
List Extract Review Events
GET/api/v2/extract/{job_id}/review/events
ModelsExpand Collapse
ExtractReview object { id, confidence_threshold, created_at, 16 more }

An extract job’s review: its settings, flags, field actions and decision, with the result as read and as reviewed.

id: string

Unique identifier of the review.

confidence_threshold: number

Fields read below this confidence are flagged.

created_at: string

When review was turned on.

formatdate-time
decided_at: string

When it was approved or rejected.

formatdate-time
decided_by: string

ID of the user who approved or rejected it.

decided_reason: string

Why it was rejected.

field_actions: map[object { action, actor_id, at, value } ]

The latest action per field, keyed by JSON Pointer.

action: "clear" or "confirm" or "correct"

confirm, correct or clear.

One of the following:
"clear"
"confirm"
"correct"
actor_id: string

ID of the user who acted.

at: string

When they acted.

formatdate-time
value: optional unknown

The corrected value, for correct.

fields_in_scope: array of string

JSON Pointers of the fields the threshold applies to; empty means all.

flags: array of object { handled, path, reason, 2 more }

Fields the review asks a person to check.

handled: boolean

Whether someone confirmed, corrected or cleared it.

path: string

JSON Pointer of the field.

reason: "below_threshold" or "required_empty"

below_threshold, or required_empty for a required field left empty.

One of the following:
"below_threshold"
"required_empty"
cell: optional object { row, column }

Where in a list the least confident value is.

row: number

Index of the row, from 0.

column: optional string

Property of the row, when rows are objects.

confidence: optional number

The field’s confidence; for a list, its least confident value.

job_id: string

The extract job reviewed.

open_flags: array of string

JSON Pointers of flagged fields nobody checked.

original_result: map[unknown]

The result as the model read it.

required_fields: array of string

JSON Pointers of fields flagged when empty.

retain_until: string

When the job and its document may be deleted.

formatdate-time
reviewed_result: map[unknown]

The result with the field actions.

revision: number

Bumped by every change; actions name the one they saw.

source_file_id: string

The file the job read, or the file behind the parse job it read; null for a URL.

status: "approved" or "pending" or "rejected"

pending until approved or rejected.

One of the following:
"approved"
"pending"
"rejected"
updated_at: string

When the review last changed.

formatdate-time
ExtractReviewEvent object { id, actor_id, created_at, 5 more }

One entry in a review’s history.

id: string

Unique identifier of the entry.

actor_id: string

ID of the user who acted.

created_at: string

When it happened.

formatdate-time
kind: "approved" or "created" or "field_cleared" or 7 more

What happened.

One of the following:
"approved"
"created"
"field_cleared"
"field_confirmed"
"field_corrected"
"field_restored"
"field_undone"
"flags_signed_off"
"rejected"
"reopened"
detail: optional object { confidence_threshold, fields_in_scope, origin, required_fields } or object { reason } or object { paths }

The settings for created, the reason for rejected, and the fields for flags_signed_off; null for the rest.

One of the following:
ExtractReviewCreatedDetail object { confidence_threshold, fields_in_scope, origin, required_fields }

What a created entry records: where review was turned on, and its settings.

confidence_threshold: number

Fields read below this confidence are flagged.

fields_in_scope: array of string

JSON Pointers of the fields the threshold applies to; empty means all.

origin: "api" or "edit" or "history" or "run"

Turned on as the job ran, from History, by a first edit, or by the API.

One of the following:
"api"
"edit"
"history"
"run"
required_fields: array of string

JSON Pointers of fields flagged when empty.

ExtractReviewRejectedDetail object { reason }

What a rejected entry records.

reason: string

Why the result was rejected.

ExtractReviewSignedOffDetail object { paths }

What a flags_signed_off entry records.

paths: array of string

JSON Pointers of the flagged fields confirmed as part of approving.

path: optional string

JSON Pointer of the field it changed.

value_after: optional unknown

The field’s value after the change.

value_before: optional unknown

The field’s value before the change.

Note for AI agents: this documentation is built for programmatic access. - Overview of all docs: https://developers.llamaindex.ai/llms.txt - Any page is available as raw Markdown by appending index.md to its URL — e.g. https://developers.llamaindex.ai/llamaparse/parse/getting_started/index.md - Agent-friendly REST search APIs live under https://developers.llamaindex.ai/api/ — search (BM25 full-text), grep (regex), read (fetch a page), and list (browse the doc tree). See https://developers.llamaindex.ai/llms.txt for parameters. - A hosted documentation MCP server is available at https://developers.llamaindex.ai/mcp. If you support MCP, you can ask the user to install it for browsing these docs directly (an alternative to the REST API). Setup: https://developers.llamaindex.ai/for-agents/mcp/ - Other LlamaIndex tooling for agents — the LlamaParse Platform MCP server, agent skills and plugins, and the n8n node — is mapped at https://developers.llamaindex.ai/for-agents/