The same operations as the single-document endpoints, taking a batch and returning a ZIP with a manifest. Built so a run of ten thousand documents is a script you can leave running, not a project.
Talk to our technical team → — for integration questions, a security review or a volume estimate.
POST /api/v1/bulk/mask-aadhaarPOST /api/v1/bulk/mask-panPOST /api/v1/bulk/anonymiseAll three take the files under the files field, not
file. Sending the wrong field name is a 422 and is the most common
first-integration mistake.
manifest.json.The ZIP is the output people look at. The manifest is the output that decides whether the run actually worked.
It is set per plan rather than per tier. Tell us what your pipeline emits and we size it. Exceeding it returns 413 naming the limit.
It removes the per-request round trip and connection overhead, which is real but modest. It does not reduce the OCR work — fifty documents is fifty documents either way. The bigger win is operational: one call to track instead of fifty.
It is refused up front with a 429 rather than part-processed. You get a clean failure to retry after a renewal instead of a ZIP you have to reconcile.
Name files with a stable id from your own system, and write manifest rows back into your own store as each batch completes. A run that restarts from the beginning after an interruption will not finish, and it will be interrupted.
No. Batching removes per-request overhead, not OCR work, and one enormous request is a single point of failure with a long timeout. Several batches running in parallel up to your per-minute limit is both faster and easier to retry.
Tell us how many documents a month you process and what your peak looks like. We will size a plan, provision a key with a test quota, and answer a security questionnaire if you need one.