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-08-04

  • GET /events added for polling integrations. The event feed returns batch.completed, document.completed, and document.failed events newest-first, with stable event IDs for Zapier-style deduplication. See the Webhooks reference.

2026-07-22

  • POST /templates now enforces a 30-template cap per account. Once you're at the limit, creating another template (from scratch or from a preset) returns 400 template_limit_reached — delete an existing template first. This limit was previously unenforced. See the Templates & Fields reference.

2026-07-21

  • POST /documents now 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 .docx produces one Document per page, same as today's PDF behavior. The legacy binary .doc format is not supported; save as .docx first. See the Documents reference.
  • Per-upload page limit raised from 30 to 50 pages. Applies to both native PDF uploads and .docx/.txt files converted server-side. See the Documents reference.
  • GET /documents/{document_id}/image now supports ?size=thumb for 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 process again, you'll now get notified again when that new wave finishes — no need to re-PUT the 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_completed event 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_capacity added to POST /documents responses. Tells you how many more documents this batch can accept before hitting your plan's max batch size, without a separate call to GET /account.
  • document.bbox_completed deliveries are now claimed atomically, same as batch.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 by data.group_batch_id as 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 the table (structured field extraction) processing mode. See API Overview to get started.
📮 contact email: [email protected]