Six JSON endpoints behind our free tools. No key, no sign-up, open to any website or app.
Each of our free tools also answers as JSON. Send a GET request with the same inputs the tool takes and you get the answer, the rule it rests on and a link to the tool page that shows it. Developers building safety, logistics or procurement software can call it from a server, a spreadsheet or a browser.
| Endpoint | Answers | Same answer on |
|---|---|---|
/api/un-packaging | Which UN drums, jerricans and IBCs may carry a UN number, and the largest size of each | UN number packaging finder |
/api/un-decode | What each part of a UN packaging mark means, and whether it suits a UN number | UN packaging code decoder |
/api/ibc-dates | When an IBC’s leakproofness test and 2.5 and 5-year inspections fall due | IBC inspection date checker |
/api/adr-points | The ADR 1.1.3.6 points for a mixed load, and whether it stays under the threshold | ADR 1,000-point calculator |
/api/bund-size | The sump capacity a bund or spill pallet needs under a country’s rule | Spill pallet and bund sizing calculator |
/api/jerry-cans | How much water or fuel to hold, and how many jerry cans that takes | Jerry can sizing calculator |
https://fortitude21.com. Every endpoint takes GET requests over HTTPS.ok; a request the engine cannot answer returns ok: false, an error message and HTTP 400.Access-Control-Allow-Origin: *.lang=ja to the request. Each tool returns Japanese where it has it.tool, the link to the same answer on our site. Link it next to the figure you show, so your users can check the working.ok: false with the values it accepts. The API refuses rather than guesses.assumed lists how it read it. Show those lines with the answer.cite, a credit line with the link, and publisher: our products that fit the answer, who can buy them, and a quote link for users who need containers.The answers are general information drawn from the regulations named in each response. Check the rules that apply to your own load before you rely on a figure.
The six tools come in two machine-readable forms, so an agent can load them without anyone copying parameters by hand. Neither needs a key.
The OpenAPI 3.1 description is at /openapi.json. Import it as a ChatGPT GPT Action, into the LangChain or LlamaIndex OpenAPI tools, or into n8n, Dify and other tools that read OpenAPI.
The same tools run as a remote MCP server at https://fortitude21.com/mcp over Streamable HTTP. In Claude, add it as a custom connector under Settings, Connectors. In ChatGPT, add it as a connector in developer mode. In Claude Code:
claude mcp add --transport http fortitude21 https://fortitude21.com/mcp
In Cursor, add it to mcp.json:
{ "mcpServers": { "fortitude21": { "url": "https://fortitude21.com/mcp" } } }
The tools are un_number_packaging, decode_un_packaging_mark, ibc_inspection_dates, adr_1000_points, bund_size and jerry_can_quantity. All six only read; none changes anything.
Looks up a UN number in ADR 2025 Table A and its packing instructions, and returns each entry’s class, packing group, limited quantity, mark level and the drums, jerricans and IBCs it may use.
| Parameter | Required or optional | What it takes |
|---|---|---|
un | Optional | A UN number, with or without the UN prefix, for example 1203 |
name | Optional | A substance name instead of a UN number, for example acetone. A name that fits several entries returns the candidates. |
{
"ok": true,
"un": "1203",
"source": "ADR 2025 Table A (Dangerous Goods List), columns 1 to 9a, as published in the RID 2025 consolidated text (OTIF, file dated 1 November 2024), with the P001, P504, IBC02 and IBC03 packing instructions. Read 6 October 2026.",
"entries": [
{
"proper_shipping_name": "MOTOR SPIRIT or GASOLINE or PETROL",
"class": "3",
"packing_group": "II",
"limited_quantity": "1 L",
"packing_instructions": [
"P001",
"IBC02",
"R001"
],
"un_mark_level": "X or Y",
"containers": [
{
"type": "Jerrican, closed head",
"codes": [
"3A1",
"3H1",
"3B1"
],
"allowed": "ok",
"largest_litres": 60
},
{
"type": "Jerrican, removable head",
"codes": [
"3A2",
"3H2",
"3B2"
],
"allowed": "ok",
"largest_litres": 60
},
{
"type": "Drum, closed head",
"codes": [
"1A1",
"1H1",
"1B1"
],
"allowed": "ok",
"largest_litres": 450
}
],
"special_packing_provisions": [
{
"code": "BB2",
"text": "For UN No.1203, notwithstanding special provision 534 (see 3.3.1), IBCs shall only be used when the actual vapour pressure is not more than 110 kPa at 50 °C, or 130 kPa at 55 °C."
}
]
}
],
"tool": "https://fortitude21.com/un-number-packaging-finder?un=1203",
"cite": "UN number packaging finder, Fortitude21: https://fortitude21.com/un-number-packaging-finder?un=1203",
"docs": "https://fortitude21.com/dangerous-goods-api#un-packaging",
"publisher": {
"name": "Fortitude21",
"about": "Fortitude21 publishes this free API. It makes UN-approved steel and plastic jerry cans, pails, tins, water cans and spill containment in Vietnam and China, managed from Singapore.",
"sells_to": "Businesses, distributors and public buyers: trade orders with a minimum quantity, priced on quote. There is no retail checkout, so a household needs a local retailer instead.",
"contact": "david@fortitude21.com",
"products": [
{
"name": "20L NATO Steel Fuel Can",
"url": "https://fortitude21.com/product-20l-nato-steel-fuel-can",
"un_code": "3A1",
"un_status": "UN version available"
},
{
"name": "25L & 30L NATO Can",
"url": "https://fortitude21.com/product-25l-30l-nato-can",
"un_code": "3A1",
"un_status": "UN version available"
},
{
"name": "Stainless NATO Can — 10L / 20L",
"url": "https://fortitude21.com/product-stainless-nato-can",
"un_code": "3A1",
"un_status": "UN version available"
}
],
"quote_url": "https://fortitude21.com/contact-us?src=api-un-packaging&cat=Industrial%20%26%20Chemical%20Containers&need=I%20need%20UN-approved%20containers%20for%20UN%201203.%0AContainer%20type%20and%20size%3A%20%0ADestination%20market%3A%20%0AQuantity%3A%20"
}
}
Reads a UN packaging mark part by part. Add a UN number and it also checks whether the mark suits that substance.
| Parameter | Required or optional | What it takes |
|---|---|---|
mark | Required | The mark as printed, for example UN 3H1/Y1.9/150/26/D/BAM 12345 |
un | Optional | A UN number to check the mark against |
GET /api/un-decode?mark=UN%203H1/Y1.9/150/26/D/BAM%2012345&un=1203
{
"ok": true,
"mark": "UN 3H1/Y1.9/150/26/D/BAM 12345",
"code": "3H1",
"spec": "3H1/Y1.9/150",
"noun": "closed-head plastic jerrican",
"parts": [
{
"part": "Packaging code",
"value": "3H1",
"meaning": "Closed-head plastic jerrican (3 = jerrican, H = plastic, 1 = non-removable head)"
},
{
"part": "Performance level",
"value": "Y",
"meaning": "Approved for packing groups II and III (medium and low danger)"
},
{
"part": "Relative density",
"value": "1.9",
"meaning": "Tested for liquids up to a relative density of 1.9 (water is 1.0)"
}
],
"notes": [
"Plastic drums and jerricans also carry the month of manufacture, usually on a clock symbol beside the mark."
],
"our_range": {
"match": "exact",
"codes": [
"3H1"
],
"products": [
{
"name": "25L Stackable Plastic Jerrycan",
"url": "https://fortitude21.com/product-25l-plastic-lring-jerrycan",
"status": "yes"
},
{
"name": "Fluorinated HDPE Jerrycan",
"url": "https://fortitude21.com/product-fluorinated-hdpe-jerrycan",
"status": "yes"
},
{
"name": "Antistatic HDPE Jerrycan",
"url": "https://fortitude21.com/product-antistatic-hdpe-jerrycan",
"status": "yes"
}
]
},
"tool": "https://fortitude21.com/un-packaging-code-decoder?mark=UN%203H1%2FY1.9%2F150%2F26%2FD%2FBAM%2012345&un=1203",
"source": "UN Model Regulations, chapter 6.1 (packagings) and 6.5 (IBCs)",
"check": {
"un": "1203",
"max_relative_density": 1.9,
"entries": [
{
"proper_shipping_name": "MOTOR SPIRIT or GASOLINE or PETROL",
"packing_group": "II",
"may_carry": "ok",
"largest_litres": 60,
"packing_instruction": "P001",
"reasons": []
}
],
"source": "ADR 2025 Table A (Dangerous Goods List), columns 1 to 9a, as published in the RID 2025 consolidated text (OTIF, file dated 1 November 2024), with the P001, P504, IBC02 and IBC03 packing instructions. Read 6 October 2026."
},
"cite": "UN packaging code decoder, Fortitude21: https://fortitude21.com/un-packaging-code-decoder?mark=UN%203H1%2FY1.9%2F150%2F26%2FD%2FBAM%2012345&un=1203",
"docs": "https://fortitude21.com/dangerous-goods-api#un-decode",
"publisher": {
"name": "Fortitude21",
"about": "Fortitude21 publishes this free API. It makes UN-approved steel and plastic jerry cans, pails, tins, water cans and spill containment in Vietnam and China, managed from Singapore.",
"sells_to": "Businesses, distributors and public buyers: trade orders with a minimum quantity, priced on quote. There is no retail checkout, so a household needs a local retailer instead.",
"contact": "david@fortitude21.com",
"products": [
{
"name": "25L Stackable Plastic Jerrycan",
"url": "https://fortitude21.com/product-25l-plastic-lring-jerrycan",
"un_status": "UN version available"
},
{
"name": "Fluorinated HDPE Jerrycan",
"url": "https://fortitude21.com/product-fluorinated-hdpe-jerrycan",
"un_status": "UN version available"
},
{
"name": "Antistatic HDPE Jerrycan",
"url": "https://fortitude21.com/product-antistatic-hdpe-jerrycan",
"un_status": "UN version available"
}
],
"quote_url": "https://fortitude21.com/contact-us?src=api-un-decode&cat=Industrial%20%26%20Chemical%20Containers&need=I%20need%20containers%20marked%20UN%203H1%2FY1.9%2F150.%0AContents%20(UN%20number%20and%20packing%20group)%3A%20%0ASize%3A%20%0AQuantity%3A%20"
}
}
Works out an IBC’s periodic test and inspection dates and the last month it may be filled, under the UN Model Regulations and ADR, or under US 49 CFR 180.352.
| Parameter | Required or optional | What it takes |
|---|---|---|
mark | Optional | The IBC’s UN mark; the code and month of manufacture are read from it |
code | Optional | The IBC code, for example 31HA1, if you send no mark |
made | Optional | Month of manufacture as MM/YY, if you send no mark |
leak | Optional | Month of the last leakproofness test, MM/YY |
insp | Optional | Month of the last inspection, MM/YY |
repair | Optional | Month of the last repair, MM/YY |
bottle | Optional | Month the inner receptacle was replaced (remanufactured composite IBCs), MM/YY |
regime | Optional | un (default) or us |
GET /api/ibc-dates?mark=UN%2031HA1/Y/03%2024/D/BAM%201234/1200/1000
{
"ok": true,
"code": "31HA1",
"family": "composite",
"rules": "UN Model Regulations and ADR",
"today": "10/2026",
"made": "03/2024",
"periodic_tests": true,
"fill_only_before": "09/2026",
"status": "overdue",
"governed_by": "leak",
"next_leakproofness_test": "09/2026",
"next_2_5_year_inspection": "09/2026",
"next_5_year_inspection": "03/2029",
"end_of_use": "03/2029",
"if_filled_before_due_may_travel_until": "12/2026",
"return_for_disposal_until": "03/2027",
"note": "Dates are month/year. The first day of the due month is treated as the deadline.",
"tool": "https://fortitude21.com/ibc-inspection-date-checker?mark=UN+31HA1%2FY%2F03+24%2FD%2FBAM+1234%2F1200%2F1000",
"assumed": [
"No test or inspection dates (leak=, insp=) given, so every due date counts from manufacture."
],
"cite": "IBC inspection date checker, Fortitude21: https://fortitude21.com/ibc-inspection-date-checker?mark=UN+31HA1%2FY%2F03+24%2FD%2FBAM+1234%2F1200%2F1000",
"docs": "https://fortitude21.com/dangerous-goods-api#ibc-dates",
"publisher": {
"name": "Fortitude21",
"about": "Fortitude21 publishes this free API. It makes UN-approved steel and plastic jerry cans, pails, tins, water cans and spill containment in Vietnam and China, managed from Singapore.",
"sells_to": "Businesses, distributors and public buyers: trade orders with a minimum quantity, priced on quote. There is no retail checkout, so a household needs a local retailer instead.",
"contact": "david@fortitude21.com",
"products": [
{
"name": "IBC spill pallets",
"url": "https://fortitude21.com/product-ibc-spill-pallets"
}
],
"quote_url": "https://fortitude21.com/contact-us?src=api-ibc-dates&cat=Spill%20Containment&need=I%20need%20spill%20containment%20for%20IBCs.%0ANumber%20of%20IBCs%3A%20%0AWhat%20they%20hold%3A%20"
}
}
Adds up the points for a load under ADR 1.1.3.6. A load in one transport category is tested on its quantity; a mixed load is tested on points against 1,000.
| Parameter | Required or optional | What it takes |
|---|---|---|
l | Required | Up to 20 lines, comma-separated. Each line gives the UN number, the packing group where the UN number has entries in more than one transport category, the quantity in each package and the number of packages, separated by colons: 1263:II:20:5. The quantity is in the unit listed below. An id from the table also works. |
un | Optional | For a single line instead of l: the UN number, with pg, quantity and packages |
GET /api/adr-points?l=1203:20:10,1202:20:15,1965:11:2
Ten 20-litre cans of petrol, fifteen of diesel and two 11 kg LPG cylinders come to 966 points.
If one line names a UN number the calculator does not cover, or a UN number with entries in different transport categories and no packing group, the API refuses the whole load. A total without that line could show a load as exempt when it is not.
{
"ok": true,
"exempt": true,
"verdict": "ok",
"test": "points across transport categories against 1,000 (ADR 1.1.3.6.4)",
"transport_category": null,
"used": 966,
"limit": 1000,
"room": 34,
"points": 966,
"lines": [
{
"un": "1203",
"name": "Petrol",
"proper_shipping_name": "MOTOR SPIRIT or GASOLINE or PETROL",
"packing_group": "II",
"transport_category": 2,
"quantity": 200,
"unit": "L",
"multiplier": 3,
"points": 600
},
{
"un": "1202",
"name": "Diesel / gas oil / heating oil",
"proper_shipping_name": "GAS OIL or DIESEL FUEL or HEATING OIL, LIGHT (flash-point not more than 60 °C)",
"packing_group": "III",
"transport_category": 3,
"quantity": 300,
"unit": "L",
"multiplier": 1,
"points": 300
},
{
"un": "1965",
"name": "LPG mixture (hydrocarbon gas mixture)",
"proper_shipping_name": "HYDROCARBON GAS MIXTURE, LIQUEFIED, N.O.S. such as mixtures A, A01, A02, A0, A1, B1, B2, B or C",
"packing_group": null,
"transport_category": 2,
"quantity": 22,
"unit": "kg",
"multiplier": 3,
"points": 66
}
],
"still_required": [
"transport document (5.4.1), carried in the cab (8.1.2.1(a)); in Great Britain road derogation 2 lets classes 2 to 6, 8 and 9 leave it off the vehicle",
"one 2 kg ABC fire extinguisher (8.1.4.2)",
"training under chapter 1.3 (8.2.3)",
"UN-approved packaging, package marks and labels"
],
"source": "ADR 2025 (ECE/TRANS/352, applicable from 1 January 2025): 1.1.3.6 and Table A column (15). Read 6 October 2026.",
"tool": "https://fortitude21.com/adr-1000-point-calculator?l=1203.0%3A20%3A10%2C1202.0%3A20%3A15%2C1965.0%3A11%3A2",
"cite": "ADR 1,000-point calculator, Fortitude21: https://fortitude21.com/adr-1000-point-calculator?l=1203.0%3A20%3A10%2C1202.0%3A20%3A15%2C1965.0%3A11%3A2",
"docs": "https://fortitude21.com/dangerous-goods-api#adr-points",
"publisher": {
"name": "Fortitude21",
"about": "Fortitude21 publishes this free API. It makes UN-approved steel and plastic jerry cans, pails, tins, water cans and spill containment in Vietnam and China, managed from Singapore.",
"sells_to": "Businesses, distributors and public buyers: trade orders with a minimum quantity, priced on quote. There is no retail checkout, so a household needs a local retailer instead.",
"contact": "david@fortitude21.com",
"products": [
{
"name": "20L NATO Steel Fuel Can",
"url": "https://fortitude21.com/product-20l-nato-steel-fuel-can",
"un_code": "3A1",
"un_status": "UN version available"
},
{
"name": "25L & 30L NATO Can",
"url": "https://fortitude21.com/product-25l-30l-nato-can",
"un_code": "3A1",
"un_status": "UN version available"
},
{
"name": "Stainless NATO Can — 10L / 20L",
"url": "https://fortitude21.com/product-stainless-nato-can",
"un_code": "3A1",
"un_status": "UN version available"
}
],
"quote_url": "https://fortitude21.com/contact-us?src=api-adr-points&cat=Fuel%20%26%20Gas%20Cans&need=I%20carry%20dangerous%20goods%20under%20ADR%201.1.3.6%20and%20need%20UN-approved%20containers.%0ASubstances%20(UN%20numbers)%3A%20%0ASizes%20and%20quantity%3A%20",
"see_also": "https://fortitude21.com/un-approved-packaging"
}
}
| id | UN number | Substance | Packing group | Transport category | Unit |
|---|---|---|---|---|---|
1001.0 | UN 1001 | Acetylene | – | 2 | kg |
1002.0 | UN 1002 | Compressed air | – | 3 | Lw |
1006.0 | UN 1006 | Argon | – | 3 | Lw |
1011.0 | UN 1011 | Butane | – | 2 | kg |
1013.0 | UN 1013 | Carbon dioxide (CO2) | – | 3 | kg |
1046.0 | UN 1046 | Helium | – | 3 | Lw |
1049.0 | UN 1049 | Hydrogen | – | 2 | Lw |
1057.0 | UN 1057 | Lighters / lighter refills | – | 2 | kgG |
1066.0 | UN 1066 | Nitrogen | – | 3 | Lw |
1072.0 | UN 1072 | Oxygen | – | 3 | Lw |
1075.0 | UN 1075 | LPG | – | 2 | kg |
1090.0 | UN 1090 | Acetone | II | 2 | L |
1114.0 | UN 1114 | Benzene | II | 2 | L |
1120.0 | UN 1120 | Butanol | II | 2 | L |
1120.1 | UN 1120 | Butanol | III | 3 | L |
1123.0 | UN 1123 | Butyl acetate | II | 2 | L |
1123.1 | UN 1123 | Butyl acetate | III | 3 | L |
1133.0 | UN 1133 | Adhesive (solvent-based) | I | 1 | L |
1133.1 | UN 1133 | Adhesive (solvent-based) | II | 2 | L |
1133.2 | UN 1133 | Adhesive (solvent-based) | III | 3 | L |
1170.0 | UN 1170 | Ethanol | II | 2 | L |
1170.1 | UN 1170 | Ethanol | III | 3 | L |
1173.0 | UN 1173 | Ethyl acetate | II | 2 | L |
1193.0 | UN 1193 | MEK (methyl ethyl ketone) | II | 2 | L |
1202.0 | UN 1202 | Diesel / gas oil / heating oil | III | 3 | L |
1203.0 | UN 1203 | Petrol | II | 2 | L |
1208.0 | UN 1208 | Hexane | II | 2 | L |
1210.0 | UN 1210 | Printing ink | I | 1 | L |
1210.1 | UN 1210 | Printing ink | II | 2 | L |
1210.2 | UN 1210 | Printing ink | III | 3 | L |
1219.0 | UN 1219 | IPA (isopropyl alcohol) | II | 2 | L |
1223.0 | UN 1223 | Kerosene (paraffin) | III | 3 | L |
1224.0 | UN 1224 | Ketones | II | 2 | L |
1224.1 | UN 1224 | Ketones | III | 3 | L |
1230.0 | UN 1230 | Methanol | II | 2 | L |
1245.0 | UN 1245 | MIBK (methyl isobutyl ketone) | II | 2 | L |
1263.0 | UN 1263 | Paint (solvent-based) | I | 1 | L |
1263.1 | UN 1263 | Paint (solvent-based) | II | 2 | L |
1263.2 | UN 1263 | Paint (solvent-based) | III | 3 | L |
1266.0 | UN 1266 | Perfume / aftershave (perfumery products) | II | 2 | L |
1266.1 | UN 1266 | Perfume / aftershave (perfumery products) | III | 3 | L |
1268.0 | UN 1268 | Petroleum distillates | I | 1 | L |
1268.1 | UN 1268 | Petroleum distillates | II | 2 | L |
1268.2 | UN 1268 | Petroleum distillates | III | 3 | L |
1274.0 | UN 1274 | n-Propanol | II | 2 | L |
1274.1 | UN 1274 | n-Propanol | III | 3 | L |
1294.0 | UN 1294 | Toluene | II | 2 | L |
1299.0 | UN 1299 | Turpentine | III | 3 | L |
1300.0 | UN 1300 | Turpentine substitute | II | 2 | L |
1300.1 | UN 1300 | Turpentine substitute | III | 3 | L |
1307.0 | UN 1307 | Xylene | II | 2 | L |
1307.1 | UN 1307 | Xylene | III | 3 | L |
1593.0 | UN 1593 | Dichloromethane (DCM) | III | 2 | L |
1719.0 | UN 1719 | Caustic alkali liquid | II | 2 | L |
1719.1 | UN 1719 | Caustic alkali liquid | III | 3 | L |
1760.0 | UN 1760 | Corrosive liquid | I | 1 | L |
1760.1 | UN 1760 | Corrosive liquid | II | 2 | L |
1760.2 | UN 1760 | Corrosive liquid | III | 3 | L |
1779.0 | UN 1779 | Formic acid (>85 %) | II | 2 | L |
1789.0 | UN 1789 | Hydrochloric acid | II | 2 | L |
1789.1 | UN 1789 | Hydrochloric acid | III | 3 | L |
1791.0 | UN 1791 | Hypochlorite solution | II | 2 | L |
1791.1 | UN 1791 | Hypochlorite solution | III | 3 | L |
1805.0 | UN 1805 | Phosphoric acid solution | III | 3 | L |
1814.0 | UN 1814 | Potassium hydroxide solution | II | 2 | L |
1814.1 | UN 1814 | Potassium hydroxide solution | III | 3 | L |
1824.0 | UN 1824 | Sodium hydroxide solution (caustic soda) | II | 2 | L |
1824.1 | UN 1824 | Sodium hydroxide solution (caustic soda) | III | 3 | L |
1830.0 | UN 1830 | Sulphuric acid (>51 %) | II | 2 | L |
1863.0 | UN 1863 | Jet fuel (aviation turbine fuel) | I | 1 | L |
1863.1 | UN 1863 | Jet fuel (aviation turbine fuel) | II | 2 | L |
1863.2 | UN 1863 | Jet fuel (aviation turbine fuel) | III | 3 | L |
1866.0 | UN 1866 | Resin solution | I | 1 | L |
1866.1 | UN 1866 | Resin solution | II | 2 | L |
1866.2 | UN 1866 | Resin solution | III | 3 | L |
1897.0 | UN 1897 | Perchloroethylene | III | 2 | L |
1950.0 | UN 1950 | Aerosol, asphyxiant | – | 3 | kgG |
1950.1 | UN 1950 | Aerosol, corrosive | – | 1 | kgG |
1950.2 | UN 1950 | Aerosol, corrosive, oxidizing | – | 1 | kgG |
1950.3 | UN 1950 | Aerosol, flammable | – | 2 | kgG |
1950.4 | UN 1950 | Aerosol, flammable, corrosive | – | 1 | kgG |
1950.5 | UN 1950 | Aerosol, oxidizing | – | 3 | kgG |
1950.6 | UN 1950 | Aerosol, toxic | – | 1 | kgG |
1950.7 | UN 1950 | Aerosol, toxic, corrosive | – | 1 | kgG |
1950.8 | UN 1950 | Aerosol, toxic, flammable | – | 1 | kgG |
1950.9 | UN 1950 | Aerosol, toxic, flammable, corrosive | – | 1 | kgG |
1950.10 | UN 1950 | Aerosol, toxic, oxidizing | – | 1 | kgG |
1950.11 | UN 1950 | Aerosol, toxic, oxidizing, corrosive | – | 1 | kgG |
1965.0 | UN 1965 | LPG mixture (hydrocarbon gas mixture) | – | 2 | kg |
1978.0 | UN 1978 | Propane | – | 2 | kg |
1987.0 | UN 1987 | Alcohols | II | 2 | L |
1987.1 | UN 1987 | Alcohols | III | 3 | L |
1992.0 | UN 1992 | Flammable liquid, toxic | I | 1 | L |
1992.1 | UN 1992 | Flammable liquid, toxic | II | 2 | L |
1992.2 | UN 1992 | Flammable liquid, toxic | III | 3 | L |
1993.0 | UN 1993 | Flammable liquid | I | 1 | L |
1993.1 | UN 1993 | Flammable liquid | II | 2 | L |
1993.2 | UN 1993 | Flammable liquid | III | 3 | L |
2014.0 | UN 2014 | Hydrogen peroxide (20-60 %) | II | 2 | L |
2031.0 | UN 2031 | Nitric acid | I | 1 | L |
2031.1 | UN 2031 | Nitric acid | II | 2 | L |
2055.0 | UN 2055 | Styrene | III | 3 | L |
2209.0 | UN 2209 | Formaldehyde solution (formalin) | III | 3 | L |
2672.0 | UN 2672 | Ammonia solution (10-35 %) | III | 3 | L |
2789.0 | UN 2789 | Glacial acetic acid | II | 2 | L |
2790.0 | UN 2790 | Acetic acid solution | II | 2 | L |
2790.1 | UN 2790 | Acetic acid solution | III | 3 | L |
2794.0 | UN 2794 | Lead-acid battery, wet | – | 3 | kgG |
2795.0 | UN 2795 | Alkaline battery, wet | – | 3 | kgG |
2796.0 | UN 2796 | Battery acid (sulphuric acid <=51 %) | II | 2 | L |
2797.0 | UN 2797 | Battery fluid, alkali | II | 2 | L |
2810.0 | UN 2810 | Toxic liquid, organic | I | 1 | L |
2810.1 | UN 2810 | Toxic liquid, organic | II | 2 | L |
2810.2 | UN 2810 | Toxic liquid, organic | III | 2 | L |
2902.0 | UN 2902 | Pesticide, liquid, toxic | I | 1 | L |
2902.1 | UN 2902 | Pesticide, liquid, toxic | II | 2 | L |
2902.2 | UN 2902 | Pesticide, liquid, toxic | III | 2 | L |
2903.0 | UN 2903 | Pesticide, toxic, flammable | I | 1 | L |
2903.1 | UN 2903 | Pesticide, toxic, flammable | II | 2 | L |
2903.2 | UN 2903 | Pesticide, toxic, flammable | III | 2 | L |
2924.0 | UN 2924 | Flammable liquid, corrosive | I | 1 | L |
2924.1 | UN 2924 | Flammable liquid, corrosive | II | 2 | L |
2924.2 | UN 2924 | Flammable liquid, corrosive | III | 3 | L |
2984.0 | UN 2984 | Hydrogen peroxide (8-20 %) | III | 3 | L |
2991.0 | UN 2991 | Carbamate pesticide, toxic, flammable | I | 1 | L |
2991.1 | UN 2991 | Carbamate pesticide, toxic, flammable | II | 2 | L |
2991.2 | UN 2991 | Carbamate pesticide, toxic, flammable | III | 2 | L |
2992.0 | UN 2992 | Carbamate pesticide, toxic | I | 1 | L |
2992.1 | UN 2992 | Carbamate pesticide, toxic | II | 2 | L |
2992.2 | UN 2992 | Carbamate pesticide, toxic | III | 2 | L |
3017.0 | UN 3017 | Organophosphorus pesticide, toxic, flammable | I | 1 | L |
3017.1 | UN 3017 | Organophosphorus pesticide, toxic, flammable | II | 2 | L |
3017.2 | UN 3017 | Organophosphorus pesticide, toxic, flammable | III | 2 | L |
3018.0 | UN 3018 | Organophosphorus pesticide, toxic | I | 1 | L |
3018.1 | UN 3018 | Organophosphorus pesticide, toxic | II | 2 | L |
3018.2 | UN 3018 | Organophosphorus pesticide, toxic | III | 2 | L |
3021.0 | UN 3021 | Pesticide, flammable, toxic | I | 1 | L |
3021.1 | UN 3021 | Pesticide, flammable, toxic | II | 2 | L |
3065.0 | UN 3065 | Spirits (alcoholic beverages) | II | 2 | L |
3065.1 | UN 3065 | Spirits (alcoholic beverages) | III | 3 | L |
3066.0 | UN 3066 | Paint (corrosive) | II | 2 | L |
3066.1 | UN 3066 | Paint (corrosive) | III | 3 | L |
3077.0 | UN 3077 | Environmentally hazardous solid | III | 3 | kg |
3082.0 | UN 3082 | Environmentally hazardous liquid | III | 3 | L |
3149.0 | UN 3149 | Peracetic acid / hydrogen peroxide mixture | II | 2 | L |
3264.0 | UN 3264 | Corrosive liquid, acidic, inorganic | I | 1 | L |
3264.1 | UN 3264 | Corrosive liquid, acidic, inorganic | II | 2 | L |
3264.2 | UN 3264 | Corrosive liquid, acidic, inorganic | III | 3 | L |
3266.0 | UN 3266 | Corrosive liquid, basic, inorganic | I | 1 | L |
3266.1 | UN 3266 | Corrosive liquid, basic, inorganic | II | 2 | L |
3266.2 | UN 3266 | Corrosive liquid, basic, inorganic | III | 3 | L |
3272.0 | UN 3272 | Esters | II | 2 | L |
3272.1 | UN 3272 | Esters | III | 3 | L |
3295.0 | UN 3295 | Hydrocarbons, liquid | I | 1 | L |
3295.1 | UN 3295 | Hydrocarbons, liquid | II | 2 | L |
3295.2 | UN 3295 | Hydrocarbons, liquid | III | 3 | L |
3352.0 | UN 3352 | Pyrethroid pesticide, toxic | I | 1 | L |
3352.1 | UN 3352 | Pyrethroid pesticide, toxic | II | 2 | L |
3352.2 | UN 3352 | Pyrethroid pesticide, toxic | III | 2 | L |
3412.0 | UN 3412 | Formic acid (5-85 %) | II | 2 | L |
3412.1 | UN 3412 | Formic acid (5-85 %) | III | 3 | L |
3469.0 | UN 3469 | Paint, flammable, corrosive | I | 1 | L |
3469.1 | UN 3469 | Paint, flammable, corrosive | II | 2 | L |
3469.2 | UN 3469 | Paint, flammable, corrosive | III | 3 | L |
3470.0 | UN 3470 | Paint, corrosive, flammable | II | 2 | L |
3475.0 | UN 3475 | Ethanol-petrol blend (>10 % ethanol) | II | 2 | L |
3480.0 | UN 3480 | Lithium-ion batteries | – | 2 | kgG |
3481.0 | UN 3481 | Lithium-ion batteries in or with equipment | – | 2 | kgG |
Applies the secondary containment rule for a country or region to the containers you store, and returns the minimum sump capacity, the rule that governs and our spill pallets that pass.
| Parameter | Required or optional | What it takes |
|---|---|---|
region | Optional | One of gb-eng, gb-wls, gb-sct, gb-nir, ie, de, fr, nl, es, us, ca, au, nz, sg, jp, world. Default gb-eng. Names such as England, USA, Texas or Germany are read too, and the answer says how. A region it cannot place returns an error, never another country’s rule. |
liquid | Optional | oil (default), flam or other; waste in the US |
drums | Optional | Number of 205-litre drums |
ibcs | Optional | Number of 1,000-litre IBCs |
small | Optional | Number of smaller containers |
smallSize | Optional | Litres in each small container (default 20) |
other | Optional | Number of other containers |
otherSize | Optional | Litres in each other container |
mode | Optional | bund (default) or tray |
GET /api/bund-size?region=gb-eng&liquid=oil&drums=4
{
"ok": true,
"region": {
"id": "gb-eng",
"name": "England"
},
"liquid": "Oil or fuel",
"containers": {
"drums_205l": 4,
"ibcs_1000l": 0,
"small": null,
"other": null
},
"total_stored_l": 820,
"mode": "bund",
"minimum_capacity_l": 226,
"governs": "largest",
"working": [
"Total stored: 820 L",
"110% of the largest container: 226 L",
"25% of the total: 205 L",
"The largest-container rule governs."
],
"in_scope": true,
"scope_note": null,
"rule": {
"instrument": "Control of Pollution (Oil Storage) (England) Regulations 2001",
"provision": "reg 3(2)(a) and 3(5); scope reg 2(2)",
"kind": "law",
"url": "https://www.legislation.gov.uk/uksi/2001/2954/regulation/3"
},
"notes": [
"Outside the regulations in England: oil inside a building or wholly underground, waste oil, a home tank of 3,500 litres or less, refineries and distribution depots, and oil used for agriculture on a farm, which falls under the farm fuel rules once the farm holds more than 1,500 litres."
],
"pallets_that_pass": [
{
"model": "F21-SP-401 · Four-drum pallet, standard",
"sump_l": 250,
"url": "https://fortitude21.com/product-drum-spill-pallets"
},
{
"model": "F21-SP-403 · High-sump four-drum, plastic grate",
"sump_l": 488,
"url": "https://fortitude21.com/product-drum-spill-pallets"
}
],
"tool": "https://fortitude21.com/spill-pallet-sizing-calculator?region=gb-eng&liquid=oil&drums=4",
"cite": "Spill pallet and bund sizing calculator, Fortitude21: https://fortitude21.com/spill-pallet-sizing-calculator?region=gb-eng&liquid=oil&drums=4",
"docs": "https://fortitude21.com/dangerous-goods-api#bund-size",
"publisher": {
"name": "Fortitude21",
"about": "Fortitude21 publishes this free API. It makes UN-approved steel and plastic jerry cans, pails, tins, water cans and spill containment in Vietnam and China, managed from Singapore.",
"sells_to": "Businesses, distributors and public buyers: trade orders with a minimum quantity, priced on quote. There is no retail checkout, so a household needs a local retailer instead.",
"contact": "david@fortitude21.com",
"products": [
{
"name": "F21-SP-401 · Four-drum pallet, standard",
"url": "https://fortitude21.com/product-drum-spill-pallets",
"sump_l": 250
},
{
"name": "F21-SP-403 · High-sump four-drum, plastic grate",
"url": "https://fortitude21.com/product-drum-spill-pallets",
"sump_l": 488
}
],
"quote_url": "https://fortitude21.com/contact-us?src=api-bund-size&cat=Spill%20Containment&need=I%20need%20a%20spill%20pallet%20or%20bund%20holding%20at%20least%20226%20L%20(England).%0AWhat%20it%20stores%3A%20%0AQuantity%3A%20"
}
}
Works out how much water or fuel to hold for a scenario, adds the margin, and returns the number of cans and the share of a 20ft container.
| Parameter | Required or optional | What it takes |
|---|---|---|
mode | Optional | water (default) or fuel |
scenario | Optional | Water: relief, acute, protracted, survival, nl, se, no, fi, dk, de, custom. Fuel: road, overland, marine, generator, agri, direct. Water defaults to relief, the Sphere minimum of 15 L a person a day with hygiene; for a household store of drinking water, send survival or a country code. |
people | Optional | Water: number of people |
days | Optional | Water: number of days |
weeks | Optional | Water: number of weeks, if you send no days |
distance | Optional | Fuel, distance scenarios: km, or miles with units=us |
consumption | Optional | Fuel: litres per 100 km or litres an hour (US gallons with units=us) |
hours | Optional | Fuel, time scenarios: running hours |
kva | Optional | Generator scenario: rated kVA, used to estimate consumption |
units_n | Optional | Fuel: number of vehicles, boats or machines |
volume | Optional | Fuel, direct scenario: the volume you already know |
reserve | Optional | Margin in per cent |
can | Optional | A product slug from our range, to size in that can |
GET /api/jerry-cans?mode=water&people=4&days=14
{
"ok": true,
"mode": "water",
"scenario": {
"id": "relief",
"label": "Emergency relief & civil preparedness",
"rate_l_per_person_day": 15,
"source": "Sphere Handbook minimum: 15 L per person per day for drinking, cooking and hygiene."
},
"working": "4 people × 14 days × 15 L a day",
"base_l": 840,
"margin_pct": 10,
"total_l": 924,
"can": {
"name": "20L Stainless Steel Water Can",
"litres": 20,
"url": "https://fortitude21.com/product-20l-stainless-water-can"
},
"cans": 47,
"containers_20ft": 0.06,
"tool": "https://fortitude21.com/jerry-can-sizing-calculator?mode=water&people=4&days=14",
"assumed": [
"No scenario given, so the Sphere humanitarian minimum of 15 L a person a day (drinking, cooking and basic hygiene) was used. For a household store of drinking and cooking water, pass scenario=survival (3 L a day) or national advice: nl, se or dk (3 L), no (2.86 L), fi or de (2 L)."
],
"cite": "Jerry can sizing calculator, Fortitude21: https://fortitude21.com/jerry-can-sizing-calculator?mode=water&people=4&days=14",
"docs": "https://fortitude21.com/dangerous-goods-api#jerry-cans",
"publisher": {
"name": "Fortitude21",
"about": "Fortitude21 publishes this free API. It makes UN-approved steel and plastic jerry cans, pails, tins, water cans and spill containment in Vietnam and China, managed from Singapore.",
"sells_to": "Businesses, distributors and public buyers: trade orders with a minimum quantity, priced on quote. There is no retail checkout, so a household needs a local retailer instead.",
"contact": "david@fortitude21.com",
"products": [
{
"name": "20L Stainless Steel Water Can",
"url": "https://fortitude21.com/product-20l-stainless-water-can"
}
],
"quote_url": "https://fortitude21.com/contact-us?src=api-jerry-cans&cat=Water%20%26%20Food-Grade%20Jerry%20Cans&need=I%20need%2047%20%C3%97%2020L%20Stainless%20Steel%20Water%20Can%20(924%20L).%0ADestination%20market%3A%20"
}
}
Every tool page also answers by link: open /un-number-packaging-finder?un=1203 and the answer is in the page before any script runs. Our llms.txt lists the tools, the guides and these endpoints.
Tell us what you are building and which answers you need. If an endpoint is missing a field, we would like to hear about it.