Description
n8n-nodes-freightutils




n8n community node for FreightUtils — free freight calculators, ADR 2025 dangerous-goods lookup, HS 2022 codes, UK import duty, UN/LOCODE, and more. One node, 19 operations, four resources.
Install
Inside n8n:
1. Open Settings → Community Nodes
2. Click Install
3. Enter n8n-nodes-freightutils
4. Confirm
Manual install (self-hosted, if the UI is disabled):
cd ~/.n8n/nodes
npm install n8n-nodes-freightutils
Restart n8n. The node appears as FreightUtils under the Transform group.
Releasing (maintainers only)
This package uses release-it (driven by n8n-node release) for the publish flow. Do NOT use npm publish directly — there is intentionally no prepublishOnly hook to short-circuit the registry publish, but release-it is the path that handles the version bump, git tag, GitHub release, and npm publish together in the right order.
npm run release # interactive: pick patch / minor / major
npm run release minor # non-interactive
Why no prepublishOnly: an earlier scripted prepublishOnly ran n8n-node prerelease which itself shells into release-it; chaining release-it through npm publish failed deterministically when a same-version git tag already existed (a common state after a manual / aborted publish), with EPERM-flavoured noise on Windows + OneDrive trees that had nothing to do with the actual problem. Removing the hook means npm publish works as a standard fallback if the release script ever needs an end-run.
Credentials
1. Generate a free API key at
2. In n8n → Credentials → Create New, pick FreightUtils API.
3. Paste the key. Leave Base URL as https://www.freightutils.com/api unless you’re pointing at a preview deployment.
4. Save. n8n tests the credential by hitting /api/health — you should see a green tick.
Rate limits
| Tier | Limit | Pricing |
|——|——-|———|
| Anonymous (no key) | 25/day per IP | Free |
| Free key | 100/day | Free |
| Pro key | 50,000/month | £19/month |
See X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset headers.
Operations
Freight Ops — CBM · LDM · Chargeable Weight · Pallet Fitting · Unit Converter · Consignment
Dangerous Goods — ADR Lookup · ADR LQ/EQ Check · ADR Exemption Calculator · ADR Exemption Calculator (Consignment)
Customs & Trade — HS Code Lookup · Incoterms Lookup · UK Duty Calculator
Reference Data — Airline · UN/LOCODE · ULD · Container · Vehicle · Health Ping · List Tools
Consignment-shape operations: literal or dynamic items
Consignment, ADR LQ/EQ Check, and ADR Exemption Calculator (Consignment) all take a list of items. You can provide them either way:
- Literal: leave Items Source at the default
Add Items in List, then clickAdd Itemin the node UI for each item and fill the fields directly. Best for small fixed lists. - Dynamic: switch Items Source to
JSON Expression, then paste an array (or expression) into the Items (JSON) field — e.g.={{ JSON.stringify($json.items) }}from a Code or Set node that produces[{un_number, quantity, unit}, ...]. Best when the consignment shape comes from a webhook, database query, or another workflow. - n8n core: literal-mode
multipleValuesfixedCollection silently corrupts expression input. If you set the literal-modeItemsfixedCollection (or theDangerous Goods Itemscollection) directly to an expression like={{ $json.items }}instead of switching to JSON Expression mode, n8n’sNodeHelpers.getNodeParametersiterates the expression string’s characters and feeds the API one default-filled item per character. Always use JSON Expression mode for dynamic input. Linked to upstream n8n issue: https://github.com/n8n-io/n8n/issues/29619
Both shapes hit the same API endpoint with the same wire format. (v0.3.0 had a regression where the literal-mode fixedCollection silently mishandled expressions; fixed in v0.3.1 by adding the JSON Expression source — see CHANGELOG.)
Known limitations
Example A — Chargeable weight on an incoming air-freight booking
Trigger: a webhook fires when a booking is created in your TMS.
1. Webhook → receives { length, width, height, grossWeight } (cm, kg).
2. FreightUtils node → Resource Freight Ops, Operation Calculate Chargeable Weight.
3. Map webhook fields into Length (cm), Width (cm), Height (cm), Gross Weight (kg).
4. Downstream: write chargeableweightkg back to the booking record.
Example response:
{
"length_cm": 120,
"width_cm": 80,
"height_cm": 100,
"grossweightkg": 500,
"volumetricweightkg": 160,
"chargeableweightkg": 500,
"billing_basis": "actual"
}
Example B — HS code + UK duty lookup from a SKU
Trigger: row added to a “SKU Imports” spreadsheet.
1. Google Sheets trigger → new row with skudescription, countryoforigin, unitvalue_gbp.
2. FreightUtils node 1 → Resource Customs & Trade, Operation HS Code Lookup, Query = {{ $json.sku_description }}.
3. Set node → pick the top match’s commodity_code.
4. FreightUtils node 2 → Resource Customs & Trade, Operation UK Duty Calculator, map Commodity Code, Origin Country, Customs Value (GBP).
5. Write dutyratepercent and totaldutygbp back to the spreadsheet.
Other ways to use FreightUtils
FreightUtils ships across multiple distribution surfaces. Pick the one that fits how you work:
Same data, same compliance reference set (ADR 2025, HS 2022, IATA-regulated airline prefixes), every surface kept in sync.
Licence
MIT — see LICENSE.md.
Built by Marius Cristoiu, ADR-certified freight transport planner.