Ammunition per kilogram
Returns how much ammunition one to five firearms carry per kilogram: rounds per kilogram of full magazines and how many full magazines fit a weight budget, derived from each firearm's loaded and empty weights, and the estimated mass of a basic load of rounds and magazines from a fitted cartridge-mass model. Derived and estimated figures are labelled; always say which a figure is, and give an estimate with its range. A warning beside a magazine means the catalog's weights for it look wrong.
Example usage
- 1
A person asks
- How many rounds can I carry in 5 kg of magazines for an HK416 against an AK-74?
- 2
The assistant calls the tool
tools/calljson{ "name": "gunspec_ammo_load", "arguments": { "ids": [ "hk416", "ak-74" ], "budget_kg": 5 }} - 3
The server answers
Resultjson{ "method": { "id": "ammo-load", "name": "Magazine arithmetic and the fitted cartridge-mass model", "equation": "Full magazine m_mag = loaded weight − empty weight (derived); rounds per kg = capacity / (m_mag in kg); magazines in a budget B = floor(B / m_mag). Estimated round m_round = bullet + 2.5 g/cm³ × π/4 × base diameter² × case length, with the…", "maxErrorPct": 8.5, "fittedEnvelopeCm3": [ 2.6, 5.7 ], "references": [ { "name": ".45 ACP", "load": "M1911 ball", "roundG": 21.19, "source": "https://man.fas.org/dod-101/sys/land/m1911-ball.htm" }, { "name": "5.56×45mm NATO", "load": "M855", "roundG": 12.31, "source": "https://en.wikipedia.org/wiki/5.56%C3%9745mm_NATO" }, { "name": "7.62×39mm", "load": "57-N-231", "roundG": 16.3, "source": "https://en.wikipedia.org/wiki/7.62%C3%9739mm" } ] }, "load": { "budgetKg": 5, "magazines": 7, "rounds": null, "ammoId": null, "defaulted": [ "ammo_id", "magazines", "rounds" ] }, "results": [ { "firearm": { "id": "hk416", "name": "HK416", "magazineType": "detachable_box", "magazineCapacity": 30 }, "cartridge": { "caliberId": "5-56x45mm-nato", "bulletG": 4, "bulletSource": "caliber", "ammunitionId": null, "envelopeCm3": 3.222 }, "magazine": { "loadedMagazineG": 400, "capacity": 30, "roundsPerKg": 75, "source": "derived", "check": { "verdict": "plausible", "roundsG": { "expected": 361.7, "low": 330.8, "high": 392.5 }, "bandG": { "low": 309, "high": 879.3 }, "source": "estimated" } }, "budget": { "magazines": 12, "rounds": 360, "massG": 4800, "leftoverG": 200, "source": "derived" }, "basicLoad": { "rounds": 210, "roundG": { "expected": 12.06, "low": 11.03, "high": 13.08 }, "roundsG": { "expected": 2531.6, "low": 2315.9, "high": 2747.3 }, "magazines": 7, "magazinesG": { "expected": 3345.3, "low": 2420.9, "high": 5897.3 }, "source": "estimated" }, "delta": null, "warnings": [], "error": null }, { "firearm": { "id": "ak-74", "name": "AK-74", "magazineType": "detachable_box", "magazineCapacity": 30 }, "cartridge": { "caliberId": "5-45x39mm", "bulletG": 3.43, "bulletSource": "caliber", "ammunitionId": null, "envelopeCm3": 3.127 }, "magazine": { "loadedMagazineG": 300, "capacity": 30, "roundsPerKg": 100, "source": "derived", "check": { "verdict": "lighter-than-rounds", "roundsG": { "expected": 337.5, "low": 308.7, "high": 366.2 }, "bandG": { "low": 286.8, "high": 853.1 }, "source": "estimated" } }, "budget": { "magazines": 16, "rounds": 480, "massG": 4800, "leftoverG": 200, "source": "derived" }, "basicLoad": { "rounds": 210, "roundG": { "expected": 11.25, "low": 10.29, "high": 12.21 }, "roundsG": { "expected": 2362.2, "low": 2160.9, "high": 2563.5 }, "magazines": 7, "magazinesG": { "expected": 3176, "low": 2265.9, "high": 5713.5 }, "source": "estimated" }, "delta": { "roundsPerKg": 25, "budgetRounds": 120 }, "warnings": [ "The derived full magazine is lighter than its rounds alone are estimated to weigh, even allowing the model's whole error: one of the record's two weights is wrong, so the figures derived from it are too." ], "error": null } ]}Captured from the live API on Oct 22, 2026. Lists and long text are shortened for display.
Related references
Arguments
- string[]required
One to five firearm slugs.
- Sent as
- ?ids=
- string
A load whose bullet the estimate uses. Leave it out for each cartridge's typical bullet.
- Sent as
- ?ammo_id=
- numberdefault
5A weight of full magazines to fill, in kg.
- Range
- 0.1 – 100
- Sent as
- ?budget_kg=
- integerdefault
7Full magazines in the estimated basic load.
- Range
- 0 – 50
- Sent as
- ?magazines=
- integer
Rounds in the estimated basic load. Leave it out for magazines times the capacity.
- Range
- 1 – 10000
- Sent as
- ?rounds=
Each argument is sent to GET /v1/firearms/ammo-load as the parameter shown, so the same request can be made to the API directly, with your key, if you want to shape what comes back.