Skip to main content
GET
/
v1
/
documents
/
{id}
/
verify
curl -X POST https://api.okrapdf.com/document/doc-abc123/verify \
  -H "Authorization: Bearer okra_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "approve",
    "pages": [7, 8, 9],
    "actor": "cli"
  }'

Overview

Page-level verification provides a vendor-agnostic view of extraction quality. Every page derives its status from child node statuses:
  • verified — all nodes on the page are verified
  • needs_review — at least one node needs review or is pending
  • failed — at least one node has failed verification
  • clean — no extractable content on the page

Get Verification Summary

id
string
required
Document ID (e.g. doc-abc123) or 6-char short hash.
page
integer
Single page number for detail view. Returns node-level issues.
status
string
Filter pages by status: verified, needs_review, failed, clean.
below
number
Filter pages with min confidence below this threshold (0–1).

Response

{
  "document_id": "doc-abc123",
  "phase": "complete",
  "total_pages": 13,
  "verified": 10,
  "needs_review": 2,
  "failed": 1,
  "clean": 0,
  "verification_pct": 77,
  "vendor": "llamaparse",
  "pages": [
    {
      "page": 1,
      "status": "verified",
      "confidence": 0.95,
      "node_count": 9,
      "verified": 9,
      "needs_review": 0,
      "failed": 0,
      "image_url": "https://res.okrapdf.com/v1/documents/doc-abc123/pg_1.png"
    }
  ]
}

Page Detail (single page)

When ?page=N is provided, returns node-level issues:
{
  "document_id": "doc-abc123",
  "page": 7,
  "status": "needs_review",
  "confidence": 0.43,
  "vendor": "llamaparse",
  "image_url": "https://res.okrapdf.com/v1/documents/doc-abc123/pg_7.png",
  "issues": [
    {
      "node_id": "node_doc-abc123_p7_b3",
      "type": "cell",
      "label": "Revenue",
      "value": "1,234,567",
      "confidence": 0.43,
      "status": "needs_review",
      "reason": null
    }
  ]
}

Approve or Flag Pages

curl -X POST https://api.okrapdf.com/document/doc-abc123/verify \
  -H "Authorization: Bearer okra_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "approve",
    "pages": [7, 8, 9],
    "actor": "cli"
  }'

Request Body

action
string
required
approve or flag.
pages
integer[]
Explicit page numbers to act on.
filter
object
Filter-based targeting (alternative to pages).
reason
string
Required when action is flag. Recorded in audit trail.
actor
string
Actor identifier. Defaults to api. Use cli, mcp_agent, or a user ID.

Response

{
  "success": true,
  "action": "approve",
  "pages_updated": 3,
  "nodes_updated": 47,
  "skipped": 0,
  "pages": [7, 8, 9]
}