Submit several documents for batch extraction
const url = 'https://example.com/v1/batches';const form = new FormData();form.append('files', 'file');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/batches \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: multipart/form-data' \ --form files=@fileHand every PDF to the extraction service at once and return a batch id.
Batch trades latency for cost: most batches settle inside an hour and the ceiling is 24. It is the right home for a document too slow to finish inside a synchronous request, and for a stack of them at once.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”The documents, as PDFs, in one multipart body.
object
One part per PDF. Filenames become the document names in the results.
Responses
Section titled “Responses”Successful Response
object
Poll here until status is ended, then fetch the results.
Example
{ "batch": "batch_7QhKm2vXpLd9", "documents": 3, "poll_url": "https://api.easting.ai/v1/batches/batch_7QhKm2vXpLd9", "status": "in_progress", "submitted_at": "2026-08-07T14:02:11Z"}The request was understood and refused
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Missing, unknown, or revoked API key
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Monthly document cap or overage ceiling reached
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}No such batch under this key
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}The batch has not ended yet
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Results past their retention window
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Document over the size limit
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Body was empty, or was not a PDF, TIFF, PNG, or JPEG
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Rate limited; read Retry-After
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Extraction failed upstream
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}Extraction temporarily unavailable
object
object
Example
{ "error": { "documents_used": 200, "message": "Monthly document quota reached: 200 of 200 documents used this month. The cap resets on 2026-08-01. Email sales@easting.ai to raise it.", "monthly_cap": 200, "resets_on": "2026-08-01", "type": "quota_exceeded" }}