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-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]