{"openapi":"3.1.0","info":{"title":"Dimensional Weight API","version":"1.0.0","description":"Shipping dimensional-weight maths as an API. Carriers bill the greater of a parcel's actual weight and its dimensional (volumetric) weight — the volume divided by a carrier \"dim divisor\" — so a big, light box can cost far more than the scales suggest. The dimweight endpoint computes the dimensional weight in both pounds and kilograms from the length, width and height (in inches or centimetres) and a dim divisor, which you can give directly or pick by carrier (UPS, FedEx, USPS, DHL, IATA). The billable endpoint takes the actual weight as well and returns the billable weight — the greater of actual and dimensional — telling you which one you will be charged on. The girth endpoint computes the girth (twice the width plus height of the two smaller sides), the length-plus-girth and the longest side, and flags whether the parcel is oversize against length limits (defaulting to typical US ground values). Everything is computed locally and deterministically, so it is instant and private. Ideal for e-commerce checkout and shipping estimators, fulfilment and warehouse tools, freight and logistics software, and packaging optimisation. Pure local computation — no key, no third-party service, instant. Live, nothing stored. Divisors and limits are typical published values — confirm with your carrier and service. 3 endpoints. This is dimensional-weight maths; for live shipping rates use a carrier's own API, and for plain unit conversion use a unit-conversion API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/dimweight-api","description":"oanor gateway"}],"tags":[{"name":"Shipping"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/billable":{"get":{"operationId":"get_v1_billable","tags":["Shipping"],"summary":"Billable weight (greater of actual & dim)","description":"","parameters":[{"name":"length","in":"query","required":true,"description":"Length","schema":{"type":"string"},"example":"12"},{"name":"width","in":"query","required":true,"description":"Width","schema":{"type":"string"},"example":"12"},{"name":"height","in":"query","required":true,"description":"Height","schema":{"type":"string"},"example":"12"},{"name":"actual_weight","in":"query","required":true,"description":"Actual weight","schema":{"type":"string"},"example":"8"},{"name":"unit","in":"query","required":false,"description":"in|cm","schema":{"type":"string"},"example":"in"},{"name":"weight_unit","in":"query","required":false,"description":"lb|kg","schema":{"type":"string"},"example":"lb"},{"name":"carrier","in":"query","required":false,"description":"Carrier preset","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Billable weight is the greater of actual and dimensional weight. Carriers usually round up to the next lb or 0.5 kg.","input":{"unit":"in","width":12,"height":12,"length":12,"divisor":139,"weight_unit":"lb","actual_weight":8},"charged_on":"dimensional","actual_weight_kg":3.63,"actual_weight_lb":8,"billable_weight_kg":5.64,"billable_weight_lb":12.43,"dimensional_weight_kg":5.64,"dimensional_weight_lb":12.43},"meta":{"timestamp":"2026-06-03T17:41:59.304Z","request_id":"31316f43-4f2c-41ab-85a8-a0abd0da915b"},"status":"ok","message":"Billable weight","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/dimweight":{"get":{"operationId":"get_v1_dimweight","tags":["Shipping"],"summary":"Dimensional (volumetric) weight","description":"","parameters":[{"name":"length","in":"query","required":true,"description":"Length","schema":{"type":"string"},"example":"12"},{"name":"width","in":"query","required":true,"description":"Width","schema":{"type":"string"},"example":"12"},{"name":"height","in":"query","required":true,"description":"Height","schema":{"type":"string"},"example":"12"},{"name":"unit","in":"query","required":false,"description":"in|cm (default in)","schema":{"type":"string"},"example":"in"},{"name":"carrier","in":"query","required":false,"description":"ups|fedex|usps|dhl|iata","schema":{"type":"string"}},{"name":"divisor","in":"query","required":false,"description":"Or explicit dim divisor","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Dimensional weight = volume ÷ dim divisor (in³/lb for imperial, cm³/kg for metric). Carriers usually round up.","input":{"unit":"in","width":12,"height":12,"length":12,"divisor":139},"volume":1728,"volume_unit":"in3","divisor_source":"default","dimensional_weight_kg":5.64,"dimensional_weight_lb":12.43},"meta":{"timestamp":"2026-06-03T17:41:59.412Z","request_id":"7a66c9b0-592d-4c6d-ae0d-5f07e07a5beb"},"status":"ok","message":"Dimensional weight","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/girth":{"get":{"operationId":"get_v1_girth","tags":["Shipping"],"summary":"Girth & oversize check","description":"","parameters":[{"name":"length","in":"query","required":true,"description":"Length","schema":{"type":"string"},"example":"40"},{"name":"width","in":"query","required":true,"description":"Width","schema":{"type":"string"},"example":"20"},{"name":"height","in":"query","required":true,"description":"Height","schema":{"type":"string"},"example":"20"},{"name":"unit","in":"query","required":false,"description":"in|cm","schema":{"type":"string"},"example":"in"},{"name":"max_length","in":"query","required":false,"description":"Length limit","schema":{"type":"string"}},{"name":"max_length_girth","in":"query","required":false,"description":"Length+girth limit","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Girth = 2 × (width + height) of the two smaller sides. Default limits are typical US ground values (UPS/FedEx).","girth":80,"input":{"unit":"in","width":20,"height":20,"length":40},"limits":{"unit":"in","max_length":108,"max_length_girth":165},"oversize":false,"longest_side":40,"oversize_reasons":[],"length_plus_girth":120},"meta":{"timestamp":"2026-06-03T17:41:59.510Z","request_id":"f78f7c9e-fc59-4259-aa6a-4920cc67c6d3"},"status":"ok","message":"Girth & oversize","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Divisors and limits are typical published values — confirm with your carrier and service.","service":"dimweight","carriers":["ups","fedex","usps","dhl","iata","intl"],"defaults":{"metric_divisor_cm3_per_kg":5000,"imperial_divisor_in3_per_lb":139},"endpoints":{"/v1/girth":"Girth, length+girth and oversize check against length limits.","/v1/billable":"Billable weight = greater of actual and dimensional weight.","/v1/dimweight":"Dimensional (volumetric) weight from L×W×H and a dim divisor or carrier."},"description":"Dimensional/volumetric weight and shipping-size maths: dim weight, billable weight and girth/oversize checks."},"meta":{"timestamp":"2026-06-03T17:41:59.609Z","request_id":"61e96469-eb1f-4c4e-8274-2fa3f359d9ea"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":9435,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1095,"monthly_call_quota":19050,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3085,"monthly_call_quota":240500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6885,"monthly_call_quota":1245000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/dimweight-api"}