---
title: Item and Box Limits
slug: docs/item-and-box-limits
description: Learn about Paccurate API's item and box limit settings for optimizing cartonization. Explore options like boxesMax, itemsPerBoxMax, and itemsInlineMax to incorporate operational logic into your packing decisions.
icon: 🙅
docTags: 
createdAt: 2025-05-27T13:53:00.290Z
---

Learn how to add specific boundaries when making box selections via the Paccurate API

While the Paccurate API will cartonize requests based on provided boxes, items, and item rules, there are often additional packing operations that need to be considered when making a cartonization decision. For example, you may want to limit the number of boxes used to fulfill an order, or only allow a certain number of items in a box. There are several settings in the Paccurate API that allow these request-level controls:

- `boxesMax`
- `boxesPerItemSetMax`
- `boxesPerSequenceMax`
- `itemsPerBoxMax`
- `itemSetsPerBoxMax`
- `itemsInlineMax`

Let's explore what each of these options mean when making a pack request.

:::hint{type="info"}
📘 Note

Many of these controls can result in leftover items or additional packed boxes if not used carefully. Additionally, half of these options can be overridden on a per-boxType basis.
:::

## Boxes Max

The `boxesMax` parameter sets a limit on how many boxes can be used to cartonize an order. It is an integer, and if not specified, uses as many boxes as required based on any `boxes`,`boxTypes` or `boxTypeGenerators` provided in the request. If `boxesMax` is provided and the items being cartonized exceed the volume of the max number times the largest available box, the pack response will return leftovers. The pack response will always return, at most, the number of boxes as set by this value (as well as subspaces created by items that may have them).

In [this example](https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0BOAJgA4A2CgGhAHcowBzACwjQEZ7CwYoAOyRgA9sLSgAHmgAs9AJ5oArPQBeKgL70AjgFcAhoIiQlqMgAZ6AY1EAbUVjQgAxGWsGLZKCE0BdegAjUSkAFQUABygUDFAmVg5Qgxw0K0ZmdggAWQMZVAoLNMEDAWcAIRCAAlkpLgtashBefiERcRjpOUVuNI1ULjJNf3owQWs7PUIoOGssMAjkNFwDOyQoIJDonLyAZnosPTtotEwQUSisAxNxZxYsUT0IgFoIg2sAaybwaBgciGs2JIQCs7GgIAcoNozgsxBJUKAIJEfKhgXoIKIvkgPEcAGJvdFYUJsHBINj2YioeTAqRgJBZQ4mCJ2MBQJzmIZ+TRAA==), we set `boxesMax` to 3 but pass a quantity of 20. Each box can hold 4 items, so we have 8 leftover.

:::Iframe{iframeHeight="500" code="<iframe src=&#x22;https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0BOAJgA4A2CgGhAHcowBzACwjQEZ7CwYoAOyRgA9sLSgAHmgAs9AJ5oArPQBeKgL70AjgFcAhoIiQlqMgAZ6AY1EAbUVjQgAxGWsGLZKCE0BdegAjUSkAFQUABygUDFAmVg5Qgxw0K0ZmdggAWQMZVAoLNMEDAWcAIRCAAlkpLgtashBefiERcRjpOUVuNI1ULjJNf3owQWs7PUIoOGssMAjkNFwDOyQoIJDonLyAZnosPTtotEwQUSisAxNxZxYsUT0IgFoIg2sAaybwaBgciGs2JIQCs7GgIAcoNozgsxBJUKAIJEfKhgXoIKIvkgPEcAGJvdFYUJsHBINj2YioeTAqRgJBZQ4mCJ2MBQJzmIZ+TRAA==&embed=true&#x22; width=&#x22;100%&#x22;></iframe>"}

:::

## Box Per Item Set Max

When trying to maximize volume utilization, Paccurate will place items in any available space across cartons that have been opened. For example, if an order with several large items requires 3 boxes to opened, when Paccurate has to place additional items of smaller dimensions or weights, the same smaller SKU may wind up being placed in various quantities across all 3 of those boxes before Paccurate opens another box. The `boxesPerItemSetMax` parameter restricts the number of boxes a given `itemSet` can be packed in.

The green items in [this example](https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0BOAJgA4A2CgGhAHcowBzACwjQEZ7CwYoAOyRgA9sLSgAHmgAs9AJ5oArPQBeKgL70AjgFcAhoIiQlqMgAZ6AY1EAbUVjQgAxGWsGLZKCG3Y8RKSUVCS6hsamaGS8/EIi4iio0ioAdKogZnQgGqjK2ozM7JyoXCRp9IIGAs4AgkxIogIABABiOEhsTXCiBgAOIDb2js4uAMwGXBTWo760/gTEqOQUAOxWIPpGJhBmXFQxAsJiEkkgMuaKcupy+UysHNwVVT6oIHAwBnZ2TQDC4tY4aC/NhgawAayEAxAtgcTleLigUC4KwMJF8AF16AAjURSAAqCl6UESmAK9wgeIMODQ6zuRQAsgZzhQLOtKtVXgAhXFNLhkKRcCwCshQviHeInZJLS4ldY5QWaTSY8CCax2PSEKBwAFgXrINC4T5IKDY3HEgAKUCw+Gg8EQjPOZE0QA==) cannot all be packed, since the `boxesPerItemSetMax` is set to 2.

:::Iframe{iframeHeight="500" code="<iframe src=&#x22;https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0BOAJgA4A2CgGhAHcowBzACwjQEZ7CwYoAOyRgA9sLSgAHmgAs9AJ5oArPQBeKgL70AjgFcAhoIiQlqMgAZ6AY1EAbUVjQgAxGWsGLZKCG3Y8RKSUVCS6hsamaGS8/EIi4iio0ioAdKogZnQgGqjK2ozM7JyoXCRp9IIGAs4AgkxIogIABABiOEhsTXCiBgAOIDb2js4uAMwGXBTWo760/gTEqOQUAOxWIPpGJhBmXFQxAsJiEkkgMuaKcupy+UysHNwVVT6oIHAwBnZ2TQDC4tY4aC/NhgawAayEAxAtgcTleLigUC4KwMJF8AF16AAjURSAAqCl6UESmAK9wgeIMODQ6zuRQAsgZzhQLOtKtVXgAhXFNLhkKRcCwCshQviHeInZJLS4ldY5QWaTSY8CCax2PSEKBwAFgXrINC4T5IKDY3HEgAKUCw+Gg8EQjPOZE0QA==&embed=true&#x22; width=&#x22;100%&#x22;></iframe>"}

:::

## Boxes Per Sequence Max

The `boxesPerSequenceMax` setting works the same way as `boxesPerItemSetMax` but uses an item's `sequence` property to enforce the limit. This sequence can apply to any number of itemSets. A possible use case would be making sure an item category cannot be spread across too many boxes.

## Items Per Box Max

As the name implies, the `itemsPerBoxMax` setting is a number that limits the quantity of items that can be packed in a given carton. At the request level, this applies to all `boxTypes` that are a part of the request body, however any `boxType` specific setting of `itemsPerBoxMax` can override the global setting. If a box's item maximum is reached, Paccurate will add new boxes to pack the remaining items (provided there is not a `boxesMax` setting that would limit the addition of another box).

[Here is an example](https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0BOAJgA4A2CgGhAHcowBzACwjQEZ7CwYoAOyRgA9sLSgAHmgAs9AJ5oArPQBeKgL70AjgFcAhoIiQlqOiADGogDaisaEAGIylgwAYyUENux4ipJRUJLqGxqZoAOy8/EIi4iio0ioAdKogZhYaqMrajMzsnKhcJGn0ggYCjgCCTEiiAgAEAGI4SGyNcKIGAA4g9NZ2DqjOAMwGXBSWoz60fgTEqOQUke6hRiYQZlxrIHwCwmISSSAyqGSKcupyeUysHNzlld4jcDAGNjaNAMLiljjQH5sMCWADWQn6Vls9kcTigUC4kQMJB8AF16AAjURSAAqCh6UESmHy9wgOIMODQuzuhQAsgYzhR3LsKlURgAhbGNLhkKQ7PlkSH7OJHRLJJaXYq7bI7TSadHgQSWGx6QhQOD/MA9ZBoXAfJBQeiQWBIAAKUCwnKk9LOuSAA=) of a request with `itemsPerBoxMax` set to 5; you can see it packs 25 items in 5 boxes of 5 items

:::Iframe{iframeHeight="600" code="<iframe src=&#x22;https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0BOAJgA4A2CgGhAHcowBzACwjQEZ7CwYoAOyRgA9sLSgAHmgAs9AJ5oArPQBeKgL70AjgFcAhoIiQlqOiADGogDaisaEAGIylgwAYyUENux4ipJRUJLqGxqZoAOy8/EIi4iio0ioAdKogZhYaqMrajMzsnKhcJGn0ggYCjgCCTEiiAgAEAGI4SGyNcKIGAA4g9NZ2DqjOAMwGXBSWoz60fgTEqOQUke6hRiYQZlxrIHwCwmISSSAyqGSKcupyeUysHNzlld4jcDAGNjaNAMLiljjQH5sMCWADWQn6Vls9kcTigUC4kQMJB8AF16AAjURSAAqCh6UESmHy9wgOIMODQuzuhQAsgYzhR3LsKlURgAhbGNLhkKQ7PlkSH7OJHRLJJaXYq7bI7TSadHgQSWGx6QhQOD/MA9ZBoXAfJBQeiQWBIAAKUCwnKk9LOuSAA=&embed=true&#x22; width=&#x22;100%&#x22;></iframe>"}

:::

## Item Sets Per Box Max

While `itemsPerBoxMax` limits the total *quantity* of items in a packed box, `itemSetsPerBoxMax` controls how many *types* of items can go into a box. For example, setting `"itemSetsPerBoxMax":1` would mean each type of item would have to go into its own box, and you would prevent Paccurate from mixing SKUs. Setting the value to `3` would mean there would be **at most** 3 different `itemSets` (items with unique refIds) packed together. Much like `itemsPerBoxMax`, `itemSetsPerBoxMax` can be overridden on a per-box basis.

In this example, we have set `"itemSetsPerBoxMax":3` on the request. There are 6 types of items in the request, but only 3 at most in the response.

:::Iframe{iframeHeight="600" code="<iframe src=&#x22;https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0BOAJgA4A2CgGhAHcowBzACwjQEZ7CwYoAOyRgA9sLSgAHmgAs9AJ5oArPQBeKgL70AjgFcAhoIiQlqOiADGogDaisaEAGIylgwAYyUENux4ipJRUJLqGxqZoAOy8/EIi4iio0ioAdKogZhYaqMrajMzsnKhcJGn0ggYCjgCCTEiiAgAEAGI4SGyNcKIGAA4g9NZ2DqjOAMwGXBSWoz60fgTEqOQUke6hRiYQZlxrIHwCwmISSSAyqGSKcupyeUysHNzlld4jcDAGNjaNAMLiljjQH5sMCWADWQn6Vls9kcTigUC4kQMJFm8wCS0okR4IH0GwiqFGMQO8WOyXMZQy3FGFOyXGpuXod0K3FkKUi6QqVVeNnhoJ+oggEHEjQAKnoKpDBjCRk5ZIQqFxZN5fCAcAtAisLjiwpttkS4kdEmSuMo2ekzFRrsUqLcCg9ik8uSB8IJ/lA+AAjHmdaBQL7NMDtSXQ4bOSIkUaELgGVGq/yLZaRQnavFbNDJ/YGhKSU7cS2U4rU9lWnZpW33IpcLhmx0vEC1KD1JoAcSwRkgUE6HwMxAGIdhZHcowosgoPgAuvQPaIpCKFD1G2hMPkKyKDDg0LsmRwALIGM4Udy7Tl1gAy65YnYAQjPIZnDtmTmdB5dzrtsoPNJpJ+BXTY9IQUBwP8YA9MgaC4B8SBQPQHbwIgSAAApQFgN5SHuZyjJoQA==&embed=true&#x22; width=&#x22;100%&#x22;></iframe>"}

:::

## Items Inline Max

Unlike the other box and item limits discussed here, `itemsInlineMax` is an array of 3 values. Each value corresponds to the maximum number of items that can be placed along the X, Y, and Z axes. For example, `"itemsInlineMax":[2, 3, 5]` would mean that boxes can only be packed 2 items tall, 3 items wide, and 5 items deep. Setting this value at a pack request level applies the limits to all `boxTypes` in the order, and it can be overridden by adding the setting to a specific `boxType`.

An order of 24 items, with `itemsInlineMax` set to `[2,3,5]` [will pack like this](https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0AGAGhAHcowBzACwjQEYLCwYoA7JMAex5pQADzQAmCgE9xFAF7iAvhQCOAVwCGXCJGmoxAFgoBjPgBs+WNCADEYo+pJioIBQF0KAIz7CAKpIAOUCgYoNR0jD7qOKQUYQwQALLqoqgAHCTkIFzqnFYAMlG0UAAEAELeIGwc3LwCwSJoAOxSaACcciz6Cm4UYFxGpqqEUHBGWGD+yGi46qZIUL3QMEj4XKZ9UEkp6BIAzGQArK4KQA===):

:::Iframe{iframeHeight="600" code="<iframe src=&#x22;https://inspector.manage.paccurate.io/config-editor?config=N4IglgLgpgtgylCBnEAuA2qATlAZgSQBM0AGAGhAHcowBzACwjQEYLCwYoA7JMAex5pQADzQAmCgE9xFAF7iAvhQCOAVwCGXCJGmoxAFgoBjPgBs+WNCADEYo+pJioIBQF0KAIz7CAKpIAOUCgYoNR0jD7qOKQUYQwQALLqoqgAHCTkIFzqnFYAMlG0UAAEAELeIGwc3LwCwSJoAOxSaACcciz6Cm4UYFxGpqqEUHBGWGD+yGi46qZIUL3QMEj4XKZ9UEkp6BIAzGQArK4KQA===&embed=true&#x22; width=&#x22;100%&#x22;></iframe>"}

:::

