Changelog
Our versioning policy: new fields and new endpoints are additive and never count as a breaking change under the /api/v1/ prefix — removing or changing the meaning of an existing field would be a v2. That means you can treat every entry below as "here's what's new," not "here's what might break your integration."
2026-09-26
format_requirementon ad-hocfieldsis now applied. WhenPOST /batches/{batch_name}/processwas called withfields(notemplate_id), each field'sformat_requirementwas dropped before extraction, so values came back as printed on the document. They now reach the model, and they take precedence over any template the documents were uploaded with. Saved templates were not affected. See the Batches reference.POST /documentsrejects abatch_namelonger than 50 characters with400 invalid_parameter. Such names previously failed with a 500, or with a misleading "Failed to render PDF." on PDF uploads.
2026-09-14
PUT /templates/{id}/settingsadded. Sets a template's global format requirement and Multi-Page Merge configuration (whether multiple uploaded pages belonging to the same record — a multi-page lease, a stapled receipt bundle — should fold into a single output row). TheTemplateobject returned by every templates endpoint now also includesglobal_format_requirementand everymerge_*field. See the Templates & Fields reference.GET /batches/{batch_name}/resultsnow supports?merge=true. Applies the batch's resolved template's Multi-Page Merge config, if it has one — documents that fold into a merged record carry a newsource_document_idsfield alongside the usualdocument_id, and the response gains a top-levelmerge_activefield. Default staysfalse: this endpoint predates Multi-Page Merge, so existing integrations keep seeing one entry per uploaded document unless they explicitly opt in. Cannot be combined withinclude=bbox.GET /batches/{batch_name}/exportalready applied merge unconditionally before this change and is unaffected. See the Batches reference.- Model Tier now correctly reflected in credit accounting for
POST /batches/{batch_name}/process. An account assigned Advanced or Premium (3x/6x the Standard credit cost per document) now has that rate applied consistently to both the deduction at process time and any later refund for a canceled or failed document — previously a document whoseImageUploadrow had already been removed by the time a refund ran could fall back to being refunded at the Standard rate, under-refunding a non-Standard account.GET /account/usageentries for a non-Standard deduction/refund now carry a tier-suffixedaction(deduction_advanced,deduction_premium) instead of the bare name. Model Tier itself isn't new, and there's still no request-level way to select or override it — this entry is about the accounting now being correct and visible, not a new capability. See the Account Settings & API Behavior guide and the Account reference.
2026-08-04
GET /eventsadded for polling integrations. The event feed returnsbatch.completed,document.completed, anddocument.failedevents newest-first, with stable event IDs for Zapier-style deduplication. See the Webhooks reference.
2026-07-22
POST /templatesnow enforces a 30-template cap per account. Once you're at the limit, creating another template (from scratch or from a preset) returns400 template_limit_reached— delete an existing template first. This limit was previously unenforced. See the Templates & Fields reference.
2026-07-21
POST /documentsnow accepts Word (.docx) and plain text (.txt) files, not just images and PDFs. Both are converted to a PDF server-side and then follow the exact same per-page split as a native PDF upload — a multi-page.docxproduces one Document per page, same as today's PDF behavior. The legacy binary.docformat is not supported; save as.docxfirst. See the Documents reference.- Per-upload page limit raised from 30 to 50 pages. Applies to both native PDF uploads and
.docx/.txtfiles converted server-side. See the Documents reference. GET /documents/{document_id}/imagenow supports?size=thumbfor a smaller, pre-generated version of the page image — faster to load in a list/grid view than the full resolution page. Falls back to the full image if no thumbnail was generated for that document (never an error). See the Documents reference.
2026-07-20
- Batch webhooks now re-arm automatically when you reprocess a batch. If you upload more documents into a batch that already notified you once and call
processagain, you'll now get notified again when that new wave finishes — no need to re-PUTthe webhook. See the Webhooks guide. If your integration currently re-registers the webhook before each wave as a workaround, it's safe to stop — that call was never actually re-arming anything. - Bbox annotation jobs now deliver a webhook event. A
document.bbox_completedevent fires on the document's batch webhook when a bbox job reaches a terminal status — previously bbox completions produced no notification at all, regardless of registration. See the Webhooks guide. remaining_batch_capacityadded toPOST /documentsresponses. Tells you how many more documents this batch can accept before hitting your plan's max batch size, without a separate call toGET /account.document.bbox_completeddeliveries are now claimed atomically, same asbatch.completed. A bbox job whose row-groups finish within moments of each other on different threads used to sometimes fire two separate deliveries for what was logically one completion — you should no longer see that. If your integration was deduping these events bydata.group_batch_idas a workaround, that's harmless to keep doing.
2026-07-16
- v1 API launched. Public release of
/api/v1/, covering Documents, Batches, Templates & Fields, Webhooks, and Account resources for thetable(structured field extraction) processing mode. See API Overview to get started.