# API versions and changelog

[Get started](/api/getting-started.html) · [API reference](/api/docs) · [Operations](/api/operations.html)

Omitting `X-API-Version` uses the serving release's latest version. The current contract's latest is **2026-11-05**. Pin a supported date explicitly to retain that version's selected response projection. Unsupported dates return `400`, including on usage endpoints.

## Supported projections

| Version      | Main response change                                                                                                                                                                               |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `2026-03-06` | Legacy progress fraction/page_count and older tree representation.                                                                                                                                 |
| `2026-06-07` | Progress facts: progress_details, pages_done/pages_total, total_known and stage replace legacy progress fields.                                                                                    |
| `2026-08-01` | Curated public tree metadata; TOKEN nodes opt-in through tokens=true; strip_geometry affects geometry rather than all metadata.                                                                    |
| `2026-08-05` | Sub-document start/end anchor positions. The folder sub-document route itself is available on all supported versions.                                                                              |
| `2026-08-10` | Line-level handwriting rollup and mixed handwritten-word information.                                                                                                                              |
| `2026-09-03` | Page/document language and reading direction.                                                                                                                                                      |
| `2026-09-12` | Transcript gutter line numbers represented as structured data instead of repeated body-text furniture.                                                                                             |
| `2026-10-20` | Line marks: struck-through and underlined words on TOKEN nodes, and their struck/underlined word rollup on line-level nodes.                                                                       |
| `2026-11-04` | Per-word OCR confidence: `meta.ocr_confidence` (0 to 1) on TOKEN nodes, for warning about text that may be misread.                                                                                |
| `2026-11-05` | Detected key-value pairs: the `key_values` slice (now in the default `include` instead of `kvps`), `meta.key_value` and `meta.key_values` in the tree, and `kvps_status` when `kvps` is requested. |

**`2026-11-05` changes the default response.** It is the first latest version that drops a key from the default `include`: `kvps` is returned only on request. A client that sends no `X-API-Version` and reads `kvps` must send `include=tree,kvps` (or `include=tree,key_values,kvps`), or pin `2026-11-04`.

The class named `speaker_turn` identifies a transcript/Q&A speaker turn where public class names are returned. `conversation` is not a supported filter alias.

## Pagination validation

For `GET /documents/{id}/processing/latest/pages`, send `limit` between 1 and 100 and a non-negative integer `cursor`. Invalid values now return `400 Bad Request`; earlier releases silently clamped limits above 100. These validation rules apply to all supported API versions.

## Upgrade and support

Pin `X-API-Version` on every request. Before upgrading, compare results from a representative document set with both versions; reading results is free. For support and deprecation terms, email [support@lexselect.io](mailto:support@lexselect.io).
