POST /API/V1/RESPONSES/BATCH
Batch responses
Run up to 32 Rowe requests in one HTTP call. Each item is authorized, rate limited, executed, and metered independently, and the batch returns per-item results in request order.
POST /api/v1/responses/batch
Send requests with 1-32 items. Each item uses the same model and input contract as /api/v1/responses and is authorized, rate limited, executed, and metered on its own, so one failing item never invalidates the rest.
https://fourechelon.com/api/v1/responses/batch$ curl https://fourechelon.com/api/v1/responses/batch \ -H "Authorization: Bearer $FOUR_ECHELON_API_KEY" \ -H "Content-Type: application/json" \ -d '{$ "requests": [$ {$ "model": "rowe-1.0",$ "input": {$ "task_type": "fit",$ "object_id": "case",$ "secondary_id": "shelf",$ "point_cloud_scene": { "point_clouds": [ { "object_id": "case", "kind": "box", "points": [{ "x": 0, "y": 0, "z": 0 }] } ] }$ }$ },$ {$ "model": "rowe-1.0",$ "input": {$ "task_type": "stability",$ "object_id": "case",$ "point_cloud_scene": { "point_clouds": [ { "object_id": "case", "kind": "box", "points": [{ "x": 0, "y": 0, "z": 0 }] } ] }$ }$ }$ ]$ }'Batch contract
Results come back in request order. The envelope is 200 when every item succeeded and 207 when any item carries an error status.
requestsarray1-32 response items, each with the same model and input shape as POST /api/v1/responses.
objectstringThe batch envelope is response_batch.
request_idstringBatch-level request id. Each item also carries its own request_id.
dataarrayPer-item results in request order. Each entry is either a response body or a structured error with its own status.
data[].statusnumberPer-item HTTP-style status. The envelope returns 200 when every item succeeded and 207 when any item failed.
Idempotency-KeyheaderOptional. Applied per item as key#index, so retried batches replay item-by-item.
{ "object": "response_batch", "request_id": "req_batch...", "data": [ { "id": "resp_...", "status": 200, "output": [{ "type": "fit_result", "data": { "feasible": true } }], "usage": { "input_tokens": 42, "output_tokens": 29, "estimated_cost_usd": 0.000158 }, "request_id": "req_item1..." }, { "status": 503, "error": { "message": "The Rowe runtime is temporarily unavailable.", "type": "service_unavailable" }, "request_id": "req_item2..." } ]}Batch CAD extraction
File extraction has its own asynchronous batch endpoint, POST /api/v1/cad/extract/batch, which returns 202 and a status URL instead of running inline. It is documented with the CAD extraction endpoint.