Optimize Cluster
POST/optimize/cluster
Optimize Cluster
Request
Query Parameters
Default value: true
- application/json
Body
required
- Array [
- ]
The id of the wave.
The name of the site.
Single or list of starting locations.
Single or list of ending locations.
parameters object
Default value: false
Allow interpolation of missing input locations
How a location name should be processed before looking it up in the warehouseAn example could be that locations are stored as 'A1-24-006A', but the last character is irrelevant.In this case, the matching regex would be r'^(A1-[0-9]{2}-[0-9]{3})([A-Z])$'and the replacement regex would be r'\1'.Multiple regexes can be provided. If two or more regexes match, the first match is used.
Default value: true
If false, a location that does not match any of the provided regexes will be considered invalid.If true, the location will be used as-is if no regex matches.
Possible values: [ASIS
, OPTIMIZED
, AUTOSTORE
]
Default value: OPTIMIZED
The routing policy to use when generating the route. Options are: RoutingPolicy.ASIS (do not optimize the route), RoutingPolicy.OPTIMIZED (optimize the route using the default optimization algorithm), RoutingPolicy.AUTOSTORE (use an autostore specific algorithm, this also removes a lot of input restrictions).
[DEPRECATED] Whether or not to use the asis routing when "optimizing" the route or cluster. Use "routing_policy" instead. If set, this will override "routing_policy" to ASIS for backward compatibility.
Possible values: [IGNORE
, REMOVE_PICKS
, REMOVE_ORDERS
]
Default value: IGNORE
How to handle pick violations. Options are: PickViolationHandling.IGNORE, any pick violation will throw a validation exception. PickViolationHandling.REMOVE_PICKS, any pick violation will be removed from the input. PickViolationHandling.REMOVE_ORDERS, any order with a pick violation will be removed from the input.
Default value: 60
The target runtime for the clustering algorithm in seconds, only relevant if the clustering policy is OPTIMIZED_BALANCED.
Possible values: [ASIS
, OPTIMIZED_MAX
, OPTIMIZED_BALANCED
, OPTIMIZED_FAST
, OPTIMIZED_FULL_CLUSTERS
]
Default value: OPTIMIZED_BALANCED
The clustering policy to use when generating the clusters. Options are: ClusteringPolicy.ASIS (do not optimize the clustering), ClusteringPolicy.OPTIMIZED_MAX (optimize the clustering using most expensive clustering algorithm for the best distance), ClusteringPolicy.OPTIMIZED_BALANCED (optimize the clustering using a balanced clustering algorithm), ClusteringPolicy.OPTIMIZED_FAST (optimize the clustering using a faster clustering algorithm), ClusteringPolicy.OPTIMIZED_FULL_CLUSTERS (optimize the clustering emphasizing the cluster fill rate).
A custom stop condition for the clustering algorithm.
custom_stop_condition_parameters object
The parameters values for the custom stop condition.
Default value: [object Object]
The parameters values for the custom stop condition.
The maximum number of orders that can be assigned to a single cluster.
The maximum number of locations that can be visited in a single cluster.
The maximum volume that can be transported in a single cluster. (1D packing)
The maximum weight that can be transported in a single cluster.
Default value: false
Whether or not to actually optimize the clustering. If False, the clustering will only be done as-is.
The maximum number of clusters returned by our API. This implies that some picks in the provided input may not be clustered.
Extra pass-through data. This is not used by the algorithm, but will be passed to the output.
The timestamp of the response.
picks object[]required
Possible values: >= 1
A list of picks that need to be clustered.
ID to unique identify this pick
The location(s) of the pick in the warehouse.
The sequence number of the pick in the as-is route.Required for calculating as-is distances.
Higher priority picks are picked first.
The id of the SKU on the location.
The quantity of the SKU to pick from the location.
For clustering, the order id of the pick.
The handling unit id of the pick.
The handling unit type of the pick.
For clustering, the as-is list/cluster the pick belongs to.Required for calculating as-is clusters.
The sequence of the pick in the optimized cluster using the routing policy defined in the cluster parameters. (Only used in the optimized cluster output).
For clustering, The width of the SKU.
For clustering, The height of the SKU.
For clustering, The depth of the SKU.
For clustering, The weight of the SKU.
A list containing information for every Handling Unit Type
Responses
- 200
- 422
Successful Response
- application/json
- Schema
- Example (from schema)
Schema
- Array [
- ]
- Array [
- Array [
- ]
- ]
- Array [
- Array [
- ]
- ]
Default value: CLUSTER
The site name of the site.
The id of the wave.
The ObjectId of the corresponding request.
The timestamp of the response.
Time our algorithm spent calculating.
An error message, if an error occurred.
invalid_picks object[]
Invalid picks that were not included in the output route, because they were not valid.
ID to unique identify this pick
The location(s) of the pick in the warehouse.
The sequence number of the pick in the as-is route.Required for calculating as-is distances.
Higher priority picks are picked first.
The id of the SKU on the location.
The quantity of the SKU to pick from the location.
The order id of the pick.
The handling unit id of the pick.
The handling unit type of the pick.
Possible values: [Location not found
, No matching regex
, Order contains invalid pick
]
The reason why the pick is invalid.
Default value: cm
The unit of the distance values
Data passed through from the input.
asis_clusters object[]
The as-is clusters. Only calculated if the provided input picks respects the provided stop conditions
The list_id of the cluster. This is assigned by the clustering algorithm in the case of optimal clusters.In the case of as-is clusters, this is the list_id of the as-is cluster.
picks object[]
The picks in the cluster.
ID to unique identify this pick
The location(s) of the pick in the warehouse.
The sequence number of the pick in the as-is route.Required for calculating as-is distances.
Higher priority picks are picked first.
The id of the SKU on the location.
The quantity of the SKU to pick from the location.
For clustering, the order id of the pick.
The handling unit id of the pick.
The handling unit type of the pick.
For clustering, the as-is list/cluster the pick belongs to.Required for calculating as-is clusters.
The sequence of the pick in the optimized cluster using the routing policy defined in the cluster parameters. (Only used in the optimized cluster output).
For clustering, The width of the SKU.
For clustering, The height of the SKU.
For clustering, The depth of the SKU.
For clustering, The weight of the SKU.
Default value: ``
All the order_ids of the picks in the cluster.
The estimated distance of the cluster.
Default value: true
Whether the as-is clusters respect the provided stop conditions.
optimal_clusters object[]
The optimal clusters.
The list_id of the cluster. This is assigned by the clustering algorithm in the case of optimal clusters.In the case of as-is clusters, this is the list_id of the as-is cluster.
picks object[]
The picks in the cluster.
ID to unique identify this pick
The location(s) of the pick in the warehouse.
The sequence number of the pick in the as-is route.Required for calculating as-is distances.
Higher priority picks are picked first.
The id of the SKU on the location.
The quantity of the SKU to pick from the location.
For clustering, the order id of the pick.
The handling unit id of the pick.
The handling unit type of the pick.
For clustering, the as-is list/cluster the pick belongs to.Required for calculating as-is clusters.
The sequence of the pick in the optimized cluster using the routing policy defined in the cluster parameters. (Only used in the optimized cluster output).
For clustering, The width of the SKU.
For clustering, The height of the SKU.
For clustering, The depth of the SKU.
For clustering, The weight of the SKU.
Default value: ``
All the order_ids of the picks in the cluster.
The estimated distance of the cluster.
{
"type": "CLUSTER",
"site_name": "string",
"wave_id": "string",
"request_id": "string",
"timestamp": "2025-08-05T23:45:09.401Z",
"computation_time": 0,
"error": "string",
"invalid_picks": [
{
"pick_id": "string",
"location_id": [
"string"
],
"asis_sequence": 0,
"priority": 0,
"sku_id": "string",
"quantity": 0,
"order_id": "string",
"hu_id": "string",
"hu_type": "string",
"location_id_processed": [
null
],
"reason": "Location not found"
}
],
"unit": "cm",
"extra": {},
"asis_clusters": [
{
"list_id": "string",
"picks": [
{
"pick_id": "string",
"location_id": [
"string"
],
"asis_sequence": 0,
"priority": 0,
"sku_id": "string",
"quantity": 0,
"order_id": "string",
"hu_id": "string",
"hu_type": "string",
"location_id_processed": [
null
],
"list_id": "string",
"optim_sequence": 0,
"sku_width": 0,
"sku_height": 0,
"sku_depth": 0,
"sku_weight": 0
}
],
"order_ids": [
"string"
],
"estimated_distance": 0
}
],
"asis_respected": true,
"optimal_clusters": [
{
"list_id": "string",
"picks": [
{
"pick_id": "string",
"location_id": [
"string"
],
"asis_sequence": 0,
"priority": 0,
"sku_id": "string",
"quantity": 0,
"order_id": "string",
"hu_id": "string",
"hu_type": "string",
"location_id_processed": [
null
],
"list_id": "string",
"optim_sequence": 0,
"sku_width": 0,
"sku_height": 0,
"sku_depth": 0,
"sku_weight": 0
}
],
"order_ids": [
"string"
],
"estimated_distance": 0
}
],
"asis_distance": 0,
"optimal_distance": 0
}
Validation Error
- application/json
- Schema
- Example (from schema)
Schema
- Array [
- Array [
- MOD2
- ]
- ]
detail object[]
loc object[]required
string
integer
{
"detail": [
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string"
}
]
}