Browse all documentation

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.

POST → https://fourechelon.com/api/v1/responses/batch
Terminal
$ 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.

requestsarray

1-32 response items, each with the same model and input shape as POST /api/v1/responses.

objectstring

The batch envelope is response_batch.

request_idstring

Batch-level request id. Each item also carries its own request_id.

dataarray

Per-item results in request order. Each entry is either a response body or a structured error with its own status.

data[].statusnumber

Per-item HTTP-style status. The envelope returns 200 when every item succeeded and 207 when any item failed.

Idempotency-Keyheader

Optional. Applied per item as key#index, so retried batches replay item-by-item.

JSON
{
"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.