canonical: https://jentic.com/apis/3dbinpacking.com/3dbinpacking

# 3D Bin Packing API

Jentic publishes the only available OpenAPI specification for 3D Bin Packing API, keeping it validated and agent-ready. The 3D Bin Packing API computes optimal placements for items inside bins, pallets, or shipping containers. It supports multiple optimisation modes (minimize bins, maximize utilisation, minimize cost), 3D coordinate placement, weight constraints, and visual SVG/PNG output. The API exposes six endpoints covering multi-bin packing, pallet packing, smallest-bin search, dimension lookup, box-size try-out, and maximum-load checks, with a hard limit of 4,999 items per request.

## For AI agents

Compute optimal 3D placements of items into bins, pallets, or containers, find the smallest bin that fits a load, and validate maximum-load constraints.

## Scope

Does not generate shipping labels, calculate freight rates, or track shipments - use for computing optimal 3D item placements inside bins, pallets, and containers only.

## Capabilities

- Pack items into multiple bins with configurable goals - minimize bin count, maximize space usage, or minimize cost
- Compute optimal pallet packing layouts with item rotation and weight stacking constraints
- Find the smallest stock bin from a catalogue that fits a list of items
- Look up the dimensions of a bin in the registered dimension catalogue
- Try out a candidate box size against a representative item set to validate the choice
- Check whether a candidate load exceeds a bin's maximum allowed weight

## Use cases

### Carton Optimisation for E-Commerce Fulfilment

When a customer orders multiple items, decide which standard carton sizes to ship them in. The packIntoMany endpoint takes the order's items and the available bin catalogue and returns a packing plan that minimises bin count or maximises utilisation. Warehouses use this to cut shipping cost and reduce dimensional weight charges.

Example prompt: Pack a 12-item order into the smallest combination of three available carton sizes (Small/Medium/Large) using packIntoMany with the goal of minimizing bin count, and return per-item 3D coordinates.

### Pallet Build for Wholesale Shipments

Compute pallet layouts for wholesale or B2B shipments where items must stack within a maximum height and weight. The palletPack endpoint accepts the pallet dimensions, items with weights, and stacking rules, and returns a 3D placement plan plus utilisation metrics so warehouse staff can build the pallet correctly the first time.

Example prompt: Build a EUR pallet (1200x800x1500mm, 1000kg max) layout for 80 cartons of mixed sizes using palletPack with weight-aware stacking.

### Smallest Bin Lookup for Single-Item Orders

For single-SKU orders, pick the smallest available shipping bin that the item fits into. The findSmallestBin endpoint searches a catalogue of bins and returns the smallest one that can hold the supplied items - useful in real-time at the warehouse pick-and-pack station to reduce void fill.

Example prompt: From a catalogue of 10 bin sizes, find the smallest bin that fits a single item measuring 250x180x60mm at 1.2kg using findSmallestBin.

### Agent-Driven Packing Optimisation

Let an AI agent select the right packing strategy by intent - choose between pack-into-many for ecommerce orders, pallet-pack for B2B shipments, or smallest-bin lookup for single-SKU orders - through Jentic. The agent supplies items and constraints, and Jentic injects the username API key transparently.

Example prompt: Through Jentic, search 'pack items into bins', load the packIntoMany schema, supply the order's items and the bin catalogue, and return the optimal packing plan.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /packer/packIntoMany | Pack items into multiple bins with optimisation goals |
| POST | /packer/palletPack | Compute optimal pallet packing layout |
| POST | /packer/findSmallestBin | Find the smallest bin that fits items |
| POST | /packer/findBinSize | Look up bin dimensions |
| POST | /packer/tryOutBoxSizes | Test a candidate box size against representative items |
| POST | /packer/checkMaxLoad | Check whether a load exceeds a bin's max weight |

## Key resources

- **Packing** — Core packing endpoints - packIntoMany, palletPack, findSmallestBin, tryOutBoxSizes
- **Dimension Calculation** — Bin dimension lookup via findBinSize
- **Validation** — Maximum-load checks via checkMaxLoad

## Why Jentic

- **Setup:** Wiring the 3D Bin Packing API by hand means managing its username and API key credentials and assembling item, bin, and container payloads yourself. Through Jentic you install once, import the 3D Bin Packing API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** This API carries items and containers in the request body rather than a resource id in the path, so limit the agent to the operations it needs, such as packing items into bins or finding the smallest bin, and leave out others unless you add them. You choose the allowed set, so only the operations you pick can run.
- **Credential handling:** Your 3D Bin Packing username and API key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'pack items into boxes' or 'find the smallest bin for these items', and Jentic returns the matching 3D Bin Packing operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Easyship API** — Easyship rates and labels shipments once 3D Bin Packing has chosen the carton size.
- **ShipEngine API** — ShipEngine handles label creation and tracking after the carton size is determined.
- **ShipStation API** — ShipStation orchestrates fulfilment workflows that consume packing decisions from 3D Bin Packing.

## FAQ

### Why is there no official OpenAPI spec for 3D Bin Packing API?

3DBinPacking.com publishes HTML reference documentation but no OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call 3D Bin Packing API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the 3D Bin Packing API use?

It authenticates by passing a username as the query parameter username on every request to https://global-api.3dbinpacking.com. Through Jentic, the username key is stored encrypted in the vault and injected at execution - the agent never sees the credential.

### How many items can I pack in a single request?

The vendor enforces a hard limit of 4,999 items per request across packIntoMany, palletPack, and the other endpoints. For larger orders, split items into batches and combine the resulting plans on the client side.

### Can I get a visual representation of the packing layout?

Yes. packIntoMany and palletPack support visual output in SVG or PNG format, which most developers use to render a per-bin layout for warehouse pickers. Item placements are also returned as 3D coordinates for programmatic processing.

### How do I find the smallest box for a set of items through Jentic?

Run pip install jentic, then search 'find smallest bin', load the findSmallestBin operation, supply items with dimensions and weights plus the candidate bin catalogue, and execute. Run it through Jentic One, the self-hosted execution layer to receive an agent API key.

### What optimisation goals does the packing engine support?

packIntoMany supports goals including minimise bin count, maximise utilisation, and minimise total cost given per-bin price. The choice of goal is passed in the request body and changes which bins the engine prefers when several feasible plans exist.

### Can I limit what my agent is allowed to do with the 3D Bin Packing API?

Yes. Because you run Jentic One yourself, your own rules decide which of the six 3D Bin Packing operations the agent may call, so you can allow only what a task needs, such as packIntoMany and findSmallestBin, and leave out palletPack, findBinSize, tryOutBoxSizes, or checkMaxLoad. Since items and containers travel in the request body rather than a resource id in the path, you scope access by choosing the allowed operation set rather than by filtering identifiers. Only the operations you pick can run, and your stored username and API key are injected at execution so the agent never sees the credential.
