THE BOX YOU GRABBED
40 × 30 × 25 cm
6.0 kg billable
1 kg of goods, 30 000 cm³ of mostly air. The carrier bills the volume.
Carriers bill by volume. One oversized carton overcharges you on every single parcel, forever. Packfit returns the cheapest carton, the exact packing plan and the billable weight — in one API call, in milliseconds.
No credit card · 500 test packs/month free · REST + JS, Python, PHP SDKs
THE BOX YOU GRABBED
6.0 kg billable
1 kg of goods, 30 000 cm³ of mostly air. The carrier bills the volume.
THE BOX THAT FITS
1.1 kg billable
Same order, packed tight. Same carrier, same contract, different invoice.
COMPOUNDED
10–30 % saved
Plus less void fill, fewer parcels per order and fewer damages in transit.
Post the items and your carton range. Get back which box, how the goods sit inside it, the billable weight and the reason for every decision. Wire it into checkout for live rates, or into pick-and-pack for the warehouse instruction.
curl https://api.packfit.dev/v1/pack \
-H "Authorization: Bearer $PACKFIT_KEY" \
-d '{
"items": [
{ "sku": "MUG", "lengthMm": 120, "widthMm": 100,
"heightMm": 110, "weightG": 380, "quantity": 4 },
{ "sku": "PAN", "lengthMm": 260, "widthMm": 260,
"heightMm": 60, "weightG": 1450, "nonStackable": true }
],
"cartons": [ { "id": "M", "innerLengthMm": 400, "innerWidthMm": 300,
"innerHeightMm": 260, "maxPayloadG": 20000 } ],
"dimWeight": { "divisorCm3PerKg": 5000 }
}'Chilled, frozen and ambient goods never share a carton. Coolant volume counts against capacity.
ADR incompatibility groups enforced per carton — and the response tells you which rule fired.
Non-stackable items stay clear on top, this-side-up limits rotation, crush limits cap the load above.
Split shipments across locations and compare the total landed cost, not just the box count.
€0
500 test packs / mo · no live keys
€29
per month · 1 000 live packs
€199
per month · 50 000 live packs
€499+
per month · 500 000 live packs
Choosing which carton an order should ship in and how the items are arranged inside it. It is a 3D bin-packing problem: the goal is the lowest total shipping cost, not merely a box the goods fit into.
Carriers bill by dimensional weight: the parcel's volume divided by a carrier divisor, commonly 5000 cm³ per kg. If that number exceeds the actual weight, you are billed for volume — so an oversized carton means paying to ship air on every parcel.
Typically 10 to 30 percent of box and shipping cost, plus less void fill and fewer transit damages. The honest answer for your catalogue comes from the savings audit: we repack a month of your real orders and show the delta before you integrate anything.
Yes. Geometry is computed in integer millimetres, units are sorted deterministically, and identical input always produces an identical plan regardless of the order in which items are sent. Every response carries an input fingerprint you can use as a cache key.
Yes. Goods with incompatible ADR hazmat classes are never placed in the same carton, and ambient, chilled and frozen items are separated. The response names the rule that caused a separation, so a compliance owner can audit the decision. It is not a substitute for compliance advice — carrier terms and transport regulations take precedence.
Items can be marked non-stackable, restricted to an upright orientation, or given a crush limit that caps the weight allowed to rest above them. Nothing floats: every item sits on the floor or on at least 75 percent solid surface.
No. The endpoint is stateless — dimensions, SKUs and carton data are computed in memory and discarded with the response. We persist only a monthly request counter for quota enforcement.
It is reported in the unpacked array with a reason, rather than silently dropped or forced into a carton that does not exist. The packer only ever chooses from the cartons you send.
Upload a month of historical orders. We repack them against your carton range and hand you the delta — before you write a line of integration code.