POST /v1/batch is more efficient than firing N parallel POST /v1/analyze calls. Each item is still its own report (priced and tracked individually), but you submit them as a single request and get a single batch ID back.
Request shape
Limits
If you need higher per-batch limits (volume contracts), email [email protected].
Per-item fields
Each item accepts the same fields asPOST /v1/analyze:
Each item can use a different
mode — useful when comparing different perspectives on the same parcel.
Top-level fields
delivery_mode controls how completion events arrive — see delivery modes below.
webhook_url and metadata at the top level apply to items that don’t supply their own.
Response
202 Accepted. Each report_id becomes a normal report you can GET /v1/reports/{id} like any other.
Delivery modes
per_item (default)
You receive a report.completed (or report.failed) webhook for each item as it finishes. Best for UIs that progressively render results.
batch
You receive a single batch.completed webhook after every item has finished (success or failure). The payload includes all reports inline:
delivery_mode: "batch" AND a per-item webhook_url if you want both.
Billing
Each item is priced as an individual report (currently $3.99). The full batch cost is deducted when the batch is created — not as each item finishes. If your balance is insufficient to cover the entire batch, the API returns402 insufficient_balance and no items are created. Top up to at least items_count × $3.99, then retry with the same idempotency key.
Spend caps apply to the full batch cost, so a single batch can trip a daily or monthly cap that would have allowed individual reports.
Failures within a batch
Some items completing while others fail is normal. Each item’s status is independent — afailed report doesn’t roll back the batch or refund the others. Check each report’s status field after delivery.
When not to use batch
- Latency-sensitive single requests. A single batch of 1 isn’t allowed (min 2). Use
POST /v1/analyzefor one-offs. - Mixed priorities. Items in a batch run roughly together. If one item is urgent, send it as its own request.
- Different webhook secrets per item. Webhook secrets are per-customer, not per-request — see webhooks.