Skip to main content

Field Review Summary

Get review queue counts for dashboards: the total number of extracted fields awaiting human review, broken down by trigger and by pipeline. Cheap to poll.

The field-review summary returns queue counts for the human review workload in your workspace, sized for a dashboard badge or a periodic poll. The response is the total number of extracted fields currently awaiting review, plus a breakdown by trigger (gate versus declarative) and a breakdown by pipeline. This is the count behind a "fields to review" nav badge.

The summary is deliberately lightweight: it counts rows without loading cell values, verdicts, or the classified reasons that the list and triage views compute. Use it to decide whether there is review work to do at all, then call GET /v1/field-reviews to fetch the actual items when the total is non-zero.

The byTrigger map gives counts keyed by trigger, so you can tell a queue of failed gates apart from a queue of declarative holds. The byPipeline array gives one entry per run with its name and count, so you can route review work to the right owner. All counts are scoped to your organization. This endpoint requires an API key with the read scope.

This endpoint is built for frequent polling. It counts rows only and never loads cell values or verdicts, so it stays cheap even when the queue is large.
GET/v1/field-reviews/summary

curl

curl -s https://api.talonic.com/v1/field-reviews/summary \
  -H "Authorization: Bearer tlnc_your_api_key"

Response

Response fields

totalintegerTotal fields currently awaiting review.
byTriggerobjectCounts keyed by trigger (gate, declarative).
byPipelinearrayPer-pipeline breakdown.
byPipeline[].pipelineIdstringPipeline run UUID.
byPipeline[].pipelineNamestringRun name.
byPipeline[].countintegerFields awaiting review in this run.

Response

{
  "total": 14,
  "byTrigger": {
    "gate": 11,
    "declarative": 3
  },
  "byPipeline": [
    {
      "pipelineId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "pipelineName": "Lease Agreement — 2024-09-14",
      "count": 9
    },
    {
      "pipelineId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "pipelineName": "Invoice Batch — 2024-09-13",
      "count": 5
    }
  ]
}

Errors

Error responses

401unauthorizedMissing or invalid API key.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.

Frequently asked questions

How often can I poll this endpoint?+
It is designed for frequent polling. It only counts rows and never loads cell values or verdicts, so it stays cheap even with a large queue. Use it to drive a nav badge or a periodic check.
Why is byTrigger keyed by gate and declarative?+
A field can be parked by a failed blocking validation gate (gate) or by a declarative `requires_review` hold at the end of the pipeline (declarative). The split lets you size each kind of review work separately.
What is the difference between summary and triage?+
Summary counts rows only, so it is the cheap poll for "is there review work". Triage loads cells and verdicts to classify every held item by reason, field, document, assignee, and tag, so it costs more and powers a full review dashboard.