{"slug":"handel-halowerk-com-v1-slotting-plan-718a6d","title":"Takes a warehouse as a table and returns a placement","host":"handel.halowerk.com","method":"POST","resource":"https://handel.halowerk.com/v1/slotting-plan","category":"other","description":"Takes a warehouse as a table and returns a placement. You supply the storage locations with their walking distance to the pick-and-drop point and, where they exist, their weight and volume limits; you supply the SKUs with pick frequency, weight and volume; and you may supply the joint-pick pairs.","price_listed":0.005,"price_asked":0.005,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":1280,"reported_calls_30d":3,"reported_payers_30d":2,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"abc_share_pct":[80,95],"affinities":[{"joint_picks_per_period":210,"sku_a":"A-100","sku_b":"A-101"}],"locations":[{"location_id":"L-01","max_volume_l":60,"max_weight_kg":25,"travel_distance_m":6,"zone":"front"},{"location_id":"L-02","max_volume_l":60,"max_weight_kg":25,"travel_distance_m":9,"zone":"front"},{"location_id":"L-03","max_volume_l":120,"max_weight_kg":40,"travel_distance_m":22,"zone":"middle"},{"location_id":"L-07","max_volume_l":120,"max_weight_kg":40,"travel_distance_m":48,"zone":"back"}],"return_trip":true,"skus":[{"current_location_id":"L-07","picks_per_period":420,"sku":"A-100","volume_l":8,"weight_kg":2.5},{"current_location_id":"L-01","picks_per_period":380,"sku":"A-101","volume_l":5,"weight_kg":1.2},{"current_location_id":"L-03","picks_per_period":95,"sku":"B-200","volume_l":40,"weight_kg":18},{"current_location_id":"L-02","picks_per_period":12,"sku":"C-300","volume_l":2,"weight_kg":0.4}]},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"properties":{"abc_share_pct":{"default":[80,95],"description":"Cumulative pick share in percent that ends class A and class B. First value must be smaller than the second.","items":{"maximum":100,"minimum":0,"type":"number"},"maxItems":2,"minItems":2,"type":"array"},"affinities":{"description":"Pairs of SKUs that are picked together. Used to slot them near each other.","items":{"additionalProperties":false,"properties":{"joint_picks_per_period":{"description":"How often the two are picked in the same order, in the same period as picks_per_period.","maximum":1000000,"minimum":0,"type":"number"},"sku_a":{"maxLength":64,"minLength":1,"type":"string"},"sku_b":{"maxLength":64,"minLength":1,"type":"string"}},"required":["sku_a","sku_b","joint_picks_per_period"],"type":"object"},"maxItems":5000,"type":"array"},"locations":{"description":"The storage locations available for the plan.","items":{"additionalProperties":false,"properties":{"location_id":{"description":"Your location identifier. Must be unique within the request.","maxLength":64,"minLength":1,"type":"string"},"max_volume_l":{"description":"Volume limit of this location in litres. Omitted means no limit.","maximum":100000,"minimum":0,"type":"number"},"max_weight_kg":{"description":"Weight limit of this location in kilograms. Omitted means no limit.","maximum":100000,"minimum":0,"type":"number"},"travel_distance_m":{"description":"One-way walking distance in metres from the pick-and-drop point to this location.","maximum":100000,"minimum":0,"type":"number"},"zone":{"description":"Free-text zone label, passed through unchanged.","maxLength":64,"type":"string"}},"required":["location_id","travel_distance_m"],"type":"object"},"maxItems":5000,"minItems":1,"type":"array"},"return_trip":{"default":true,"description":"Whether the picker walks back the same way. True doubles every distance.","type":"boolean"},"skus":{"description":"The SKUs to place.","items":{"additionalProperties":false,"properties":{"current_location_id":{"description":"Where the SKU sits today. Only used for the before-and-after comparison.","maxLength":64,"type":"string"},"picks_per_period":{"description":"Number of picks in the period you are planning for. The period itself is yours; it only has to be the same for every SKU.","maximum":1000000,"minimum":0,"type":"number"},"sku":{"description":"Your SKU identifier. Must be unique within the request.","maxLength":64,"minLength":1,"type":"string"},"volume_l":{"description":"Volume of one storage unit in litres. Checked against max_volume_l of the location.","maximum":100000,"minimum":0,"type":"number"},"weight_kg":{"description":"Weight of one storage unit in kilograms. Checked against max_weight_kg of the location.","maximum":100000,"minimum":0,"type":"number"}},"required":["sku","picks_per_period"],"type":"object"},"maxItems":2000,"minItems":1,"type":"array"}},"required":["skus","locations"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-09-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.005,"price_match":true,"latency_ms":1280,"error":null}],"description_full":"Takes a warehouse as a table and returns a placement. You supply the storage locations with their walking distance to the pick-and-drop point and, where they exist, their weight and volume limits; you supply the SKUs with pick frequency, weight and volume; and you may supply the joint-pick pairs.","last_updated":"2026-09-19T15:55:13.291Z","schemes":["exact"]}