{"uid":"cap_aPRjGZvEYpe2Qm6Q4dH1L","slug":"halowerk-warehouse-slotting-optimizer-e7dad20b","name":"HALOWERK Warehouse Slotting Optimizer","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.","url":"https://handel.halowerk.com/v1/slotting-plan?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"skus":{"type":"array","items":{"type":"object","required":["sku","picks_per_period"],"properties":{"sku":{"type":"string","maxLength":64,"minLength":1,"description":"Your SKU identifier. Must be unique within the request."},"volume_l":{"type":"number","maximum":100000,"minimum":0,"description":"Volume of one storage unit in litres. Checked against max_volume_l of the location."},"weight_kg":{"type":"number","maximum":100000,"minimum":0,"description":"Weight of one storage unit in kilograms. Checked against max_weight_kg of the location."},"picks_per_period":{"type":"number","maximum":1000000,"minimum":0,"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."},"current_location_id":{"type":"string","maxLength":64,"description":"Where the SKU sits today. Only used for the before-and-after comparison."}},"additionalProperties":false},"maxItems":2000,"minItems":1,"description":"The SKUs to place."},"locations":{"type":"array","items":{"type":"object","required":["location_id","travel_distance_m"],"properties":{"zone":{"type":"string","maxLength":64,"description":"Free-text zone label, passed through unchanged."},"location_id":{"type":"string","maxLength":64,"minLength":1,"description":"Your location identifier. Must be unique within the request."},"max_volume_l":{"type":"number","maximum":100000,"minimum":0,"description":"Volume limit of this location in litres. Omitted means no limit."},"max_weight_kg":{"type":"number","maximum":100000,"minimum":0,"description":"Weight limit of this location in kilograms. Omitted means no limit."},"travel_distance_m":{"type":"number","maximum":100000,"minimum":0,"description":"One-way walking distance in metres from the pick-and-drop point to this location."}},"additionalProperties":false},"maxItems":5000,"minItems":1,"description":"The storage locations available for the plan."},"affinities":{"type":"array","items":{"type":"object","required":["sku_a","sku_b","joint_picks_per_period"],"properties":{"sku_a":{"type":"string","maxLength":64,"minLength":1},"sku_b":{"type":"string","maxLength":64,"minLength":1},"joint_picks_per_period":{"type":"number","maximum":1000000,"minimum":0,"description":"How often the two are picked in the same order, in the same period as picks_per_period."}},"additionalProperties":false},"maxItems":5000,"description":"Pairs of SKUs that are picked together. Used to slot them near each other."},"return_trip":{"type":"boolean","default":true,"description":"Whether the picker walks back the same way. True doubles every distance."},"abc_share_pct":{"type":"array","items":{"type":"number","maximum":100,"minimum":0},"default":[80,95],"maxItems":2,"minItems":2,"description":"Cumulative pick share in percent that ends class A and class B. First value must be smaller than the second."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_Ajtxx_rB2oB1MZb53GAXR","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Optimizes warehouse slot assignments by computing an optimal placement plan that minimizes travel distance given SKU pick frequencies, storage location constraints, and joint-pick affinities.","exampleAgentPrompt":"Optimize the slot assignments for our warehouse: we have 3 storage locations — A1 at 5m, A2 at 12m, and B1 at 20m from the pick-and-drop point — and 2 SKUs: SKU-001 with 500 picks per period weighing 2kg per unit, and SKU-002 with 80 picks per period weighing 8kg, max weight at A1 is 5kg. Give me the slotting plan that minimizes total travel distance.","exampleUseCases":[{"title":"Seasonal product re-slotting","prompt":"We're heading into peak season and our pick frequencies have changed significantly. Reassign our 150 SKUs across 200 warehouse locations — each location has a travel distance from the pack station, and some have weight and volume limits — so that our most-picked items are closest to the pack station. I'll give you the updated picks-per-week for each SKU."},{"title":"New warehouse slot assignment","prompt":"We're setting up a new fulfillment center with 500 storage locations and 800 SKUs. Each location has a measured walking distance to the dispatch desk and weight capacity. Generate an initial slotting plan that puts our fastest-moving products nearest to dispatch, respecting all weight limits."},{"title":"Joint-pick affinity optimization","prompt":"We often pick SKU-A and SKU-B together on the same order. Can you generate a slotting plan for our 60 SKUs and 80 warehouse slots that keeps frequently co-picked pairs close to each other and close to the drop point, while respecting the volume and weight limits on each rack location?"}],"resultDescription":"Returns a slotting plan listing which SKU should be placed in which location, along with the computed total travel distance for the plan. If current_location_id fields were supplied, also provides a before-and-after comparison showing movement changes and travel distance improvement.","failureModes":["Duplicate SKU identifiers or location IDs within a request cause a validation error","SKU weight or volume exceeds all available location limits, making placement infeasible","More SKUs than available locations results in an infeasible assignment","Missing required fields (sku, picks_per_period, location_id, travel_distance_m) return a 422 validation error","Affinities referencing SKU IDs not present in the SKU list return an error","Exceeding 2000 SKUs or 5000 locations triggers a request-size error","Payment failure or insufficient USDC balance results in a 402 Payment Required response"],"whenToPreferThis":"Choose this endpoint when you need to generate or refresh a warehouse slotting plan and have structured data on pick frequencies, travel distances, and storage constraints. It is purpose-built for warehouse slot assignment optimization rather than general-purpose optimization solvers, and handles weight/volume constraints and joint-pick affinities natively. Prefer it over manual ABC analysis when you need constraint-aware, distance-minimizing assignments at scale (up to 2000 SKUs and 5000 locations).","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T00:44:00.151Z","isFirstParty":false,"canonicalSlug":"halowerk-warehouse-slotting-optimizer-e7dad20b"}