Skip to main content

September 27, 2026

[Improved] A table’s parse confidence is the mean of its cells A table block’s parse_confidence is now the mean of the confidence of its cells that carry text: the expected fraction of those cells read correctly. Blank cells keep their own score but do not enter the mean. Before, it was the probability that the whole table was transcribed without a single error, a number that fell with the size of the table regardless of how well it was read. The rule applies on the Standard, Agentic and Fast tiers. Cell-level confidences and non-table blocks are unchanged, and results already stored keep the number they were stored with. Table values rise, typically by tens of points. If you gate or route tables on blocks[].parse_confidence, revisit the threshold. A table none of whose cells carry text reports null.

September 11, 2026

[Breaking + API] One consolidated error envelope across the APIEvery REST API error response now carries {error, detail, error_code, retryable, request_id}. Branch on error_code; request_id is the sole correlation handle to quote in a support request. (MCP tool errors add a numeric status field, because a tool error travels inside a 200 JSON-RPC response.)Action required: read the machine-readable code from error_code, not a separate code field. There is no reference_id — use request_id. Responses no longer include a params object, and there is no bare { "detail": … } fallback shape; any occurrence-specific value, such as the scope a call is missing, is named in the error sentence. detail stays free-shaped developer diagnostics and may be omitted.See Errors for the full envelope and code reference.