Bin-Packing APIFree beta
The same Extreme-Point engine that powers the planner, as one HTTP call. Weight limits, stacking rules, fragile cartons, keep-together groups and multi-stop unload zones — all enforced server-side. CORS is open: call it from browsers, scripts, or AI agents.
Request
curl -X POST https://www.dimpack3d.com/api/pack \
-H "Content-Type: application/json" \
-d '{
"container": { "l": 589, "w": 235, "h": 239, "maxWeight": 28200 },
"items": [
{ "label": "Master carton", "l": 60, "w": 40, "h": 40, "weight": 18, "qty": 120 },
{ "label": "Fragile", "l": 45, "w": 35, "h": 25, "weight": 6, "qty": 30, "maxStack": 0 }
]
}'Response
{
"boxes": [ { "id": "i0-0", "label": "Master carton", "l": 60, "w": 40, "h": 40,
"px": 0, "py": 0, "pz": 0, "weight": 18 }, … ],
"unplaced": 0,
"stats": { "volumeUtil": 78.4, "totalWeight": 2340, "weightUtil": 8.3,
"cog": { "x": 271, "y": 63, "z": 115 }, "cogOffsetPct": { "x": -8, "z": -2 } },
"zones": [ { "unloadOrder": 1, "xStart": 0, "xEnd": 589, "count": 150 } ],
"computeMs": 41,
"engine": "dimpack3d-extreme-point"
}Fields
| container.l/w/h | Internal dimensions in cm (required) |
| container.maxWeight | Payload limit in kg (optional) |
| items[].l/w/h | Item dimensions in cm (required) |
| items[].qty | Units of this item (default 1; ≤2,000 total per request) |
| items[].weight | kg per unit (optional; enables weight/CoG stats) |
| items[].maxStack | Max kg allowed on top; 0 = fragile, nothing stacks on it |
| items[].keepUpright | true = never tip on its side ("this way up") |
| items[].allowRotate | false = fixed orientation |
| items[].group | Keep-together group name (packed contiguously) |
| items[].unloadOrder | 1 = unload first (loaded nearest the door); LIFO zones |
Units: cm / kg. Limits: 100 item types, 2,000 total units per request. Positions are min-corner (px, py, pz) with the door at +X.
Terms: Free during beta, fair use. Results are estimates — verify critical loads. Volume or commercial licensing: [email protected]