Airline luggage weight limit checker and overweight fee tier
Check whether a suitcase, checked bag, or carry-on is within an airline's stated weight allowance before you leave for the airport.
Run — free
Enter the measured bag weight and the applicable limit to see the excess, if any, and the estimated overweight fee tier. You can also set the number of kilograms in each tier to match the airline policy you are using. The result is a planning aid, not a quoted airline charge, because fees can vary by route, fare, airport, and payment timing.
Compare the measurement with the correct allowance
Start with a recent measurement from a luggage scale and the weight allowance printed in your booking or airline baggage rules. Use kilograms for both values; mixing pounds and kilograms produces a comparison that looks valid but is not useful. The checker treats a bag exactly equal to the allowance as within the limit. If the bag is heavier, it reports the difference as overweight kilograms. This direct comparison is helpful when repacking at home, checking several family bags, or deciding whether to move an item into a carry-on. Always select the allowance for the actual bag and fare. A business-class checked allowance, an economy carry-on allowance, and a sports-equipment allowance may all differ even on the same flight. Codeshare itineraries can also apply another operating carrier's policy. The tool does not look up a policy or infer one from an airline name, so the limit remains transparent and under your control. Confirm the final allowance in the booking documents before relying on the result.
Interpret the estimated overweight fee tier
When the bag exceeds the limit, the checker divides the excess into equal weight bands. The default band is five kilograms: an excess greater than zero and up to five kilograms is tier 1, more than five and up to ten is tier 2, and the pattern continues. You can replace the default with a different band width when an airline publishes another structure. The output includes both the tier number and the lower and upper boundaries of that tier, making the estimate easy to audit. A tier is not a currency quote. Some carriers charge one flat amount for any bag above the allowance, some publish several weight bands, and others price baggage differently by route, fare family, airport, or whether the fee is paid online. An airline may also refuse a bag beyond a hard maximum instead of charging another tier. Use the tier to organize or compare a published fee table, then consult the carrier for the actual amount and acceptance rules.
Measure carefully and leave a practical margin
A home scale and an airport scale can differ slightly, and a bag can gain weight after last-minute items are added. For that reason, a result just below the limit should not be treated as a guarantee. Weigh the complete packed bag on a firm, level surface, repeat the measurement, and consider leaving a small margin below the allowance. If a suitcase is overweight, remove or redistribute items only when the receiving bag remains within its own size and weight rules. Do not assume that combining the unused allowance of two travelers is permitted; pooling rules vary by airline and booking. The calculator accepts decimal weights, so you can enter the scale reading without rounding it down. Its arithmetic is deterministic and does not contact an airline, retain a booking, or use live fare data. That makes it useful for repeatable packing checks and automated travel workflows, while keeping the important policy decision visible: you supply the relevant allowance and fee-band width from a current authoritative source.
What you can do with it
Repack before leaving home
See how many kilograms must be removed from a bag and which overweight band currently applies.
Check several fare allowances
Repeat the calculation with the limits shown for different travelers, cabins, or baggage types.
Apply a published fee table
Set the airline's weight-band width and use the returned tier to select the relevant published charge.
FAQ
What does the luggage weight check cost?
The API costs $0.002 per request, and the browser version can run locally on this page.
Does the result show the airline's exact fee?
No. It estimates a numbered weight tier. Check the airline's current fee table for the monetary charge.
What happens when the bag equals the limit?
A bag exactly equal to the stated allowance is reported as within the limit, with no overweight tier.
Can I change the size of an overweight tier?
Yes. Set overweight_tier_kg to the band width used by the airline; it defaults to five kilograms.
Can I enter a weight in pounds?
The inputs are defined in kilograms. Convert both the bag weight and the allowance to kilograms before checking.
Why should I leave room below the limit?
Scale readings can differ, and last-minute additions can increase the weight, so a small margin reduces airport surprises.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/travel/luggage-weight-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bag_weight_kg":27.4,"weight_limit_kg":23}'const res = await fetch("https://api.kit.forhosting.com/travel/luggage-weight-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bag_weight_kg": 27.4,
"weight_limit_kg": 23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/luggage-weight-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bag_weight_kg": 27.4,
"weight_limit_kg": 23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/luggage-weight-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bag_weight_kg":27.4,"weight_limit_kg":23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bag_weight_kg":27.4,"weight_limit_kg":23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/luggage-weight-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"bag_weight_kg": 27.4,
"weight_limit_kg": 23
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.luggage_weight_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |