Case Matching API
The dimension match engine on this site is a standalone module, not markup. The same algorithm and
the same product database are exposed as POST /api/case-match so a mobile app, a CRM, a partner portal
or an AI agent can produce identical recommendations to the website.
Request
Units are millimetres and kilograms. All dimension fields are required; the rest are optional.
{
"length": 620,
"width": 420,
"height": 280,
"weight_kg": 18,
"clearance_mm": 30,
"quantity": 500,
"application": "telecommunications",
"wheels": true,
"waterproof": false,
"impact": true,
"foam": true,
"handle": true
}
Response
{
"result": "match",
"total_candidates": 41,
"recommended_case_ids": ["KX-8-6220", "KX-8-6823", "KX-8-8421"],
"recommended_cases": [
{ "tier": "Option A", "tier_label": "Best fit",
"product": { "sku": "KX-8-6220", "url": "/products/.../kx-86220/",
"internal": [538,408,180], "external": [620,475,199],
"internal_volume_l": 39.5, "usable_interior_volume_l": 34.0,
"net_weight_g": 9000, "shell_material": "PP" },
"fit_score": 91, "clearance_mm": [18, 8, 0], "volume_ratio": 1.24 }
]
}
When nothing clears the envelope the response is deliberately not an empty list:
{
"result": "no_standard_match",
"custom_case_solution": "No standard case in the current range closely matches your equipment dimensions. A custom OEM case or mould solution may be considered.",
"request_more_information": ["equipment_dimensions","equipment_weight","quantity",
"estimated_annual_quantity","application","photos","drawings"]
}
Algorithm, in order
Dimension filter — internal L, W and H must each exceed envelope + clearance.
Weight filter — packed mass + empty mass over 25 kg without wheels is excluded.
Feature filter — wheels, sealing option, lock, handle and foam are hard constraints.
Application filter — sector must appear in the model's application set.
Fit score — unused volume dominates, then evenness of slack, then empty mass, then feature bonuses. Clamped to 35-99.
Three tiers — Best fit, More interior space, Alternative solution.
One file: /assets/data/products.json. Product pages, filters, datasheets, llms.txt and this API all read it, so no consumer can be shown a different dimension from another.
This is a static preview. The reference implementation of the algorithm ships in /assets/js/main.js as window.KXCaseMatch(request, products) and is the exact code the website calls. On deployment the same function is wrapped by a server endpoint so non-browser clients can call it; the request and response shapes above are the contract it must satisfy.
Related contracts
RFQ submission
/api/rfq/ — the structured enquiry payload, the reference-number rule and the CRM state machine.
Product data
products.json — 155 models with measured dimensions and a three-level evidence tag on every protection claim.