FreightUtils MCP Server
NPM · FREIGHTUTILS-MCP · 2 COMPONENTS · SCANNED AUG 3
Neutral freight reference + validation layer for AI agents: ADR, HS, UN/LOCODE, freight math
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security63
- No malware found by supply-chain analysis.Pass
- CVE data not yet available for this package.Unverified
- No install/post-install scripts declared.Pass
- Dependency-health data not yet available.Unverified
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability0
- Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Stability & Change Management0
- Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Tool Coverage0
- Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.Unverified
Capabilities0
- Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet.Unverified
Unverified: 4 categories
Categories scored 0 because our sandbox run of this package has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you. How we score packages →
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · freightutils-mcp
claude mcp add soapyred-freightutils -- npx -y freightutils-mcp
codex mcp add soapyred-freightutils -- npx -y freightutils-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"soapyred-freightutils": {
"type": "local",
"command": [
"npx",
"-y",
"freightutils-mcp"
],
"enabled": true
}
}
} openclaw mcp add soapyred-freightutils --command npx --arg -y --arg freightutils-mcp
mcp_servers:
soapyred-freightutils:
command: "npx"
args: ["-y", "freightutils-mcp"] {
"mcpServers": {
"soapyred-freightutils": {
"command": "npx",
"args": [
"-y",
"freightutils-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +8
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Dependency health: unverified → partial ▲ functional
- License: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Stability: unverified → 0.27 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Licence: MIT functional
- Package version: 2.12.1 → 2.12.3 functional
- Package version: 2.12.1 → 2.12.2 functional
- 2 Aug 26 −20
- Provenance: fail → unverified ▼ security
- Install scripts: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- License: pass → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Licence: MIT functional
- 31 Jul 26 −5
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −30
- Known CVEs: partial → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- 29 Jul 26 +49
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Security disclosure: unverified → fail ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Maintenance: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Licence: MIT functional
- 28 Jul 26 −15
- Tool coverage: 100 → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 41
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
adr_exemption_calculator ~713
Calculate ADR 1.1.3.6 "small load" exemption points for a dangerous-goods load. Each substance's transport category (0-4) sets a points multiplier (category 1 x50, 2 x3, 3 x1, 4 x0); points = quantity x multiplier, and a load totalling 1,000 points or less qualifies for reduced ADR requirements. Transport category 0 substances can NEVER use this exemption — has_category_zero flags them. Provide un_number + quantity for a single substance, or items[] for a mixed load (items takes precedence if both are given). Quantities are in kg or litres per the substance's ADR unit. Multi-variant UNs: a UN number with more than one ADR Table A row (packing group / concentration variant — e.g. UN 1789 PG II vs PG III have different transport categories) needs packing_group (I|II|III) or variant_index (from adr_lookup) to pin one row. Without a disambiguator the tool returns blocking_errors[AMBIGUOUS_UN_VARIANT] + human_review_required + candidates[] (each candidate's variant_index, packing_group, proper_shipping_name, transport_category, multiplier) and NO verdict, rather than silently guessing a row. Single-row UNs are unchanged. Behavior: deterministic points arithmetic over ADR 2025 reference data; a UN that cannot be found returns blocking_errors (NOT_FOUND); exempt is the overall verdict. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: items[] (each with packing_group, variant_index, transport_category, multiplier, points), total_points, threshold (1000), exempt, has_category_zero, has_quantity_exceedance, warnings and message under result — or, when a UN is ambiguous, human_review_required + candidates[] with blocking_errors, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: a deterministic calculation over reference data, not legal advice — even exempt loads keep core duties (…
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | — | Mixed-load items (use INSTEAD of un_number/quantity). |
| packing_group | string | — | Packing group (I, II or III) — only needed to disambiguate a UN with more than one ADR Table A row (e.g. UN 1789). Ignored for single-row UNs. Single-substance form only. |
| quantity | number | — | Quantity for the single-substance check, in kg or litres per the substance's ADR unit. Example: 100. |
| un_number | string | — | UN number for a single-substance check — 4 digits, optionally "UN"-prefixed. Example: "1203". |
| variant_index | integer | — | ADR Table A variant index (as returned by adr_lookup) — pins one row when a UN has several variants that share a packing group (concentration bands). Ignored for single-row UNs. Single-substance form… |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
adr_lookup ~546
Look up European road dangerous-goods (ADR 2025) reference data for a substance: hazard class, classification code, packing group, labels, special provisions, limited/excepted quantities, transport category, tunnel restriction code and Kemler (hazard identification) number. Covers 2,939 entries across all 9 hazard classes, from UNECE ADR 2025 (ECE/TRANS/352). Provide exactly ONE of: un_number (exact lookup — returns every packing-group variant of that UN number), search (case-insensitive partial match on the proper shipping name), or hazard_class (all entries in a class or division). un_number is normalised — "1203", "UN1203" and "un 1203" are equivalent, and normalized_input reports the correction; explosives keep their leading zero ("0004"). Behavior: read-only reference lookup; name searches return up to 50 entries, class filters up to 100. An unknown UN number or a search with no hits errors with the API's NOT_FOUND body and a retry hint. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: count and results[] — per entry: un_number, proper_shipping_name, class, classification_code, packing_group, labels, special_provisions, limited_quantity, excepted_quantity, transport_category, tunnel_restriction_code, hazard_identification_number and variant_index/variant_count — under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: a factual compilation of the ADR table, not legal or compliance advice; classification remains the consignor's responsibility — verify against the current UNECE ADR text. Related: adr_lq_eq_check (checks quantities against the LQ/EQ values returned here), adr_exemption_calculator (1.1.3.6 small-load points), consignment_calculator (flags dangerous-goods lines by UN number).
| Name | Type | Req | Description |
|---|---|---|---|
| hazard_class | string | — | All entries in an ADR class or division. Examples: "3" (flammable liquids), "6.1" (toxic), "1.4" (an explosives division). |
| search | string | — | Case-insensitive partial match on the proper shipping name (min 2 characters). Example: "acetone". |
| un_number | string | — | Exact UN number — 4 digits, optionally "UN"-prefixed; explosives keep their leading zero. Examples: "1203", "UN1203", "0004". |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
adr_lq_eq_check ~606
Check whether dangerous goods qualify for ADR Limited Quantity (LQ, ADR 3.4) or Excepted Quantity (EQ, ADR 3.5) relief. LQ compares each item's per-inner-packaging quantity against that substance's LQ maximum; EQ resolves the substance's E-code (E0-E5) and checks the per-inner limit, plus the per-outer limit when inner_packaging_qty is given. Provide mode ("lq" or "eq") and 1-20 items, each with un_number, quantity and unit — ml or L for liquids, g or kg for solids; quantity is per INNER packaging, not the whole load. Multi-variant UNs: a UN number with more than one ADR Table A row (packing group / concentration variant — e.g. UN 1789 PG II LQ 1 L vs PG III LQ 5 L) needs packing_group (I|II|III) or variant_index (from adr_lookup) on that item to pin one row. Without a disambiguator the tool returns blocking_errors[AMBIGUOUS_UN_VARIANT] + human_review_required + candidates[] (each candidate's variant_index, packing_group, proper_shipping_name, limited_quantity, excepted_quantity) and NO verdict, rather than silently checking the wrong packing group. Single-row UNs are unchanged. Behavior: deterministic reference check; each item gets a status and reason (an LQ value of "0" or code E0 means the relief is not permitted for that substance), with overall_status and summary counts across the batch. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: mode, overall_status, items[] (un_number, variant_index, substance, class, packing_group, lq_limit or eq_code, quantity_entered, status, reason), summary {total_items, qualifying, exceeding, not_permitted} and the ADR chapter references under result — or, when a UN is ambiguous, human_review_required + candidates[] with blocking_errors, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: a quantity-threshold check only — LQ/EQ relief…
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | Items to check (1-20 per call). |
| mode | string | yes | Check mode: "lq" (Limited Quantity, ADR 3.4) or "eq" (Excepted Quantity, ADR 3.5). |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
airline_lookup ~455
Search 6,357 airlines by name, IATA code, ICAO code, AWB prefix, or country. AWB prefixes are the first 3 digits of an air waybill number and identify the issuing carrier (e.g. 176 = Emirates). Provide ONE parameter: query is a ranked fuzzy search across names and codes; iata / icao / prefix / country are exact filters. Behavior: read-only; fuzzy query hits report their match quality through the envelope's confidence (basis match_quality, score 0-1) with a FUZZY_BEST_MATCH advisory naming the matched field; a query with no hits returns count 0 with a NO_MATCH advisory rather than an error. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: count and results[] — per airline: airline_name, iata_code, icao_code, awb_prefix[], callsign, country, has_cargo, aliases and per-record verification fields — under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: this dataset's provenance is pending independent verification (the envelope's provenance_status says so) — confirm operationally critical codes with IATA/ICAO or the carrier. Related: airport_lookup (searches AIRPORTS, not carriers), validate (checks an AWB number's check digit and names its airline from this dataset).
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Filter by country name (min 2 chars). Example: "Netherlands". |
| iata | string | — | Exact IATA code — 2 alphanumeric characters. Examples: "EK", "U2". |
| icao | string | — | Exact ICAO code — 3 letters. Examples: "UAE", "BAW". |
| prefix | string | — | Exact AWB prefix — the first 3 digits of an air waybill. Example: "176". |
| query | string | — | Ranked fuzzy search across name, codes, prefix and country (min 2 chars). Example: "emirates". |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
airport_lookup ~414
Look up an airport by IATA code (3 letters, e.g. "LHR"), ICAO code (4 chars, e.g. "EGLL"), or free-text name/city search (e.g. "heathrow"). Covers 85,555 airports worldwide (OurAirports, public domain, cross-checked vs OpenFlights + Wikidata). Provide ONE of iata, icao, or query; the optional type filter narrows results. Behavior: read-only; exact code hits return one record; ambiguous name searches return ranked candidates (exact codes first, then larger airports) with match quality reported via the envelope's confidence (basis match_quality); an unknown code errors with a not-found message. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: count and results[] — per airport: IATA + ICAO/ident, name, type (large/medium/small/heliport/closed/seaplane), municipality, region, country, latitude/longitude and elevation_ft — under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: reference data only — not for navigation; verify operationally critical codes with IATA / ICAO. Related: nearest_airport (find airports FROM a coordinate), airline_lookup (searches CARRIERS / AWB prefixes, not airports), unlocode_lookup (general transport locations, of which airports are one function).
| Name | Type | Req | Description |
|---|---|---|---|
| iata | string | — | Exact 3-letter IATA code. Example: "LHR". |
| icao | string | — | Exact 4-character ICAO / ident. Example: "EGLL". |
| query | string | — | Name / city / municipality search (min 2 chars). Example: "heathrow". |
| type | string | — | Optional filter by airport type. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
cbm_calculator ~345
Calculate cubic metres (CBM) for a shipment from per-piece dimensions. CBM is the standard volume unit in international shipping: 1 CBM = 1m x 1m x 1m = 1,000 litres, and ocean freight prices per "freight tonne" (1 CBM or 1,000 kg, whichever is greater). Behavior: deterministic — identical inputs always return identical figures; total volume = pieces x per-piece CBM, with conversions to cubic feet, cubic inches and litres included. Missing or non-positive dimensions error with a validation message naming the parameter. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: cbm_per_piece, total_cbm, cubic_feet, litres, cubic_inches and pieces under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Related: chargeable_weight_calculator (air billing weight from the same dims), consignment_calculator (multi-line totals), unit_converter (single conversions), shipment_summary (full composite analysis).
| Name | Type | Req | Description |
|---|---|---|---|
| height_cm | number | yes | Height of one piece in centimetres (> 0). Example: 100. |
| length_cm | number | yes | Length of one piece in centimetres (> 0). Example: 120. |
| pieces | integer | — | Number of identical pieces — total volume scales linearly. Default: 1. |
| width_cm | number | yes | Width of one piece in centimetres (> 0). Example: 80. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
chargeable_weight_calculator ~469
Calculate air freight chargeable weight — the greater of actual gross weight and volumetric weight, which is what airlines bill. Volumetric weight (kg) = (L x W x H in cm) / divisor; the IATA-standard divisor is 6,000 (1 CBM = 166.67 kg), while express integrators (DHL, FedEx, UPS) typically use 5,000. Behavior: deterministic; per-piece volumetric weight is rounded to 2 decimal places before totalling; basis reports which weight governs ("volumetric" = cargo is light for its size, "actual" = dense). Air mode only — sea W/M (1 CBM = 1,000 kg) is covered by consignment_calculator with mode=sea. Missing or non-positive inputs error with the failing parameter named. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: chargeable_weight_kg, basis, volumetric_weight_kg (total and per piece), gross_weight_kg, cbm, ratio, factor and pieces under result; normalized_input echoes the interpreted inputs and any defaults applied; plus confidence, _source and citation (the FreightUtils v1 response envelope). Related: cbm_calculator (volume only), consignment_calculator (multi-line, all modes), uld_lookup (the equipment the freight flies in).
| Name | Type | Req | Description |
|---|---|---|---|
| factor | integer | — | Volumetric divisor in cm³/kg. Default: 6000 (IATA standard); express carriers typically 5000. |
| gross_weight_kg | number | yes | Actual gross weight of the WHOLE shipment (all pieces) in kilograms. Example: 500. |
| height_cm | number | yes | Height of one piece in centimetres (> 0). Example: 100. |
| length_cm | number | yes | Length of one piece in centimetres (> 0). Example: 120. |
| pieces | integer | — | Number of identical pieces. Default: 1. |
| width_cm | number | yes | Width of one piece in centimetres (> 0). Example: 80. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
consignment_calculator ~510
Calculate per-line and grand totals for a multi-item mixed consignment: CBM, loading metres (LDM), volumetric weight, and the mode-specific chargeable figure (air chargeable weight, sea revenue tonnes, road LDM), plus objective advisory flags. Provide mode (sea | air | road, default road) and either lines[] (canonical — per line: quantity, dims {l,w,h,unit}, weight {value,unit}, optional description / hs_code / un_number / stackable) or the legacy flat items[] (dimensions in cm, weight in kg). Air uses an IATA volumetric divisor (default 6000, settable via options.air_volumetric_divisor); options.container_number / options.awb_number add a check-digit sanity flag. Behavior: deterministic; flags are advisory only — implausible density, mode/option mismatch, dangerous-goods presence by UN number against ADR 2025, and container/AWB check-digit validity — and never state that a shipment is permitted or compliant. Invalid lines error naming the offending field. Canonical schema: https://www.freightutils.com/schema/consignment.v1.json. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: schema_version, mode, per_line[] (cbm, gross_weight_kg, density, volumetric_weight_kg, ldm, revenue_tonnes, chargeable_weight_kg), totals (incl. billing_basis) and flags[] under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: best-effort deterministic calculation and reference data — not regulatory, customs or dangerous-goods compliance advice; classification, documentation and carrier acceptance remain your responsibility. Related: cbm_calculator / chargeable_weight_calculator / ldm_calculator (single-figure versions), shipment_summary (adds vehicle/container suggestion and duty estimates), adr_lookup (what a flagged UN number is).
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | — | Legacy flat alias — dimensions in cm, weight in kg. Prefer lines. |
| lines | array | — | Canonical consignment lines (preferred, 1-50). Provide lines OR items. |
| mode | string | — | Transport mode: sea | air | road. Default: road. |
| options | object | — | Optional settings. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
container_lookup ~508
Get ISO shipping-container specifications, with optional load-fit maths. Covers 10 types: 20ft/40ft standard, 40ft and 45ft high-cube, 20ft/40ft reefer, 20ft/40ft open-top and 20ft/40ft flat-rack. Provide type as a slug (e.g. "20ft-standard", "40ft-high-cube") for one container's record; omit it to list all 10. Add item dimensions (item_length_cm/width_cm/height_cm, optional item_weight_kg and item_quantity) to also compute how many such items fit. Behavior: read-only reference data with per-record provenance (sources, audited_at, decision_rationale); an unknown type errors with the valid slug list. Fit calculations are geometric best-effort — they do not model load distribution, securing or mixed cargo. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: the container record — internal/external/door dimensions (cm), capacity_cbm, tare_weight_kg, max_gross_kg, max_payload_kg and euro/GMA pallet counts — under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: manufacturer-typical specs, provenance pending independent verification (the envelope's provenance_status says so) — actual equipment varies by lessor and line; confirm against the carrier's equipment guide. Related: validate (checks a container NUMBER's ISO 6346 check digit — not specs), cbm_calculator / consignment_calculator (the cargo volume to fill it), uld_lookup (the air-freight equivalent).
| Name | Type | Req | Description |
|---|---|---|---|
| item_height_cm | number | — | Item height in cm. |
| item_length_cm | number | — | Item length in cm — provide all three item dims to get a load-fit calculation. |
| item_quantity | integer | — | Number of items to check against the container. |
| item_weight_kg | number | — | Item weight in kg — caps the fit by max payload. |
| item_width_cm | number | — | Item width in cm. |
| type | string | — | Container slug. Examples: "20ft-standard", "40ft-high-cube", "20ft-reefer". Omit to list all 10 types. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
emissions_calculator ~608
Estimate freight transport greenhouse-gas emissions (kgCO2e) for a shipment leg, per ISO 14083:2023 / GLEC Framework v3.2: emissions = mass x distance x a published emission-intensity factor (kgCO2e/tonne-km). Provide mass + distance_km + mode (road | rail | sea | air | inland_waterway); optionally choose sub_mode, region/authority (uk = DEFRA, us = EPA, fr = ADEME) and basis (wtw default, or ttw). IMPORTANT: pass ACTUAL GROSS MASS, not chargeable/volumetric weight (a common air-freight mistake — see mass_basis in the result). Distance must be provided — this tool does NOT route, geocode, or compute distances. Behavior: deterministic given the same factor edition; the fleet-average factor already includes average empty running (see empty_running) — do NOT add your own empty-return leg; sea and air are low-representativeness generic defaults (real emissions vary materially by vessel/aircraft, load factor and routing — see representativeness and the result summary). An unknown mode/sub_mode/region returns available:false with the covered options, never a fabricated factor. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: well-to-wheel AND tank-to-wheel emissions where the factor has both, the exact factor used (value, authority, edition), the tonne-km activity and a per-result _source citing BOTH the ISO method and the specific open factor, all under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: best-effort reference estimate from open factors (DEFRA / EPA / ADEME) — NOT a verified or audited carbon report. Related: distinct from cbm_calculator / ldm_calculator / chargeable_weight_calculator (those size or bill a shipment; this one estimates its CO2e).
| Name | Type | Req | Description |
|---|---|---|---|
| basis | string | — | Emissions basis: wtw = well-to-wheel incl. upstream (default), ttw = tank-to-wheel / operation only. |
| distance_km | number | yes | Transport distance in kilometres — you provide it; the tool does not route. |
| mass | number | yes | Shipment mass, expressed in mass_unit. Example: 1000. |
| mass_unit | string | — | Unit for mass. Default: kg. |
| mode | string | yes | Transport mode. |
| region | string | — | Factor source/region: uk = DEFRA, us = EPA, fr = ADEME. Default is per-mode. |
| sub_mode | string | — | Optional sub-mode / vehicle class (e.g. "articulated", "container ship", "long-haul"). Omit for the representative default. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
get_subscribe_link ~133
Get the URL where the user can subscribe to FreightUtils Pro for higher API limits (50,000 requests/month). Use when the user asks how to upgrade or about pricing, or after any other tool errors with a 429 rate_limited body. Behavior: static local response — no API call, never rate-limited. Returns: url, tier, monthly_limit, monthly_price, currency and note under result. Hand the URL to the USER to open in a browser — agents must NOT attempt to complete the subscription themselves.
| Name | Type | Req | Description |
|---|---|---|---|
| tier | string | — | Tier to surface. Only "pro" is supported today. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
hs_code_lookup ~422
Search 6,940 WCO Harmonized System (HS 2022) commodity codes — the 6-digit international customs classification layer. The first 2 digits are the chapter, 4 the heading, 6 the subheading. Provide ONE of: query (free-text description search, min 2 chars), code (2-6 digit lookup, returns the code plus its hierarchy), or section (Roman numeral I-XXI to browse a section). Behavior: read-only; description search is keyword-based against official HS descriptions, so everyday product words can return zero rows — count 0 with an empty results[] is a valid answer (e.g. "laptop" and "computers" find nothing; "automatic data" matches the official phrasing "automatic data processing machines"); prefer the formal tariff wording. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: the query/code echo, count and results[] (hscode, description and hierarchy context) under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: the 6-digit international level only — national tariff lines (8-10 digits) and duty rates are set per country; classification here is indicative, not a binding ruling. Related: uk_duty_calculator (duty/VAT for a code found here), ics2_check (EU ENS goods-description quality — a different check entirely).
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | — | Exact HS code or prefix — 2, 4 or 6 digits. Example: "8471". |
| query | string | — | Keyword search on official HS descriptions (min 2 chars). Formal tariff wording works best. Example: "automatic data" rather than "laptop". |
| section | string | — | Browse a section by Roman numeral I-XXI. Example: "XVI" (machinery). |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
ics2_check ~341
Check a goods description against the official EU ICS2 stop-words list — terms the European Commission deems too vague or generic for an entry summary declaration (ENS) goods-description field (data element 18 05 000 000). Pass description=<goods description>. Behavior: deterministic term matching against the in-force EU list; each flagged term carries a note (a standalone stop-word means automatic rejection, an embedded one means make the description more specific); clean=true means no listed term matched — it does NOT guarantee acceptance, and no binary accepted/rejected verdict is given. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: the description echo, flagged[] (term + note), clean, caveat and disclaimer under result, plus a _source citing the EU list and legal basis, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: STRICTLY a reference check — not an ENS filing, not a customs-compliance determination, not legal advice; the EU list is non-exhaustive and updated periodically. Related: hs_code_lookup (commodity codes — a different field of the ENS), uk_duty_calculator (duty/VAT, unrelated to ENS screening). Use BEFORE filing an ENS — for customs/documentation teams, brokers and agents building filing pipelines.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | The goods description to check. Example: "gifts" (flagged) vs "wooden toys for retail" (specific). |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
incoterms_lookup ~348
Look up the 11 Incoterms 2020 trade rules — who pays for transport, insurance and customs clearance, and where risk transfers from seller to buyer. 7 rules work for any transport mode (EXW, FCA, CPT, CIP, DAP, DPU, DDP); 4 are sea/inland-waterway only (FAS, FOB, CFR, CIF). Provide code for one rule, category (any_mode | sea_only) for a filtered list, or neither to list all 11. Behavior: read-only reference; an unknown code errors with the valid code list. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: the rule record — name, category, summary, seller_responsibility, buyer_responsibility, risk_transfer, cost_transfer, insurance, export/import clearance, best_for and watch_out — under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: summarised guidance on ICC Incoterms 2020; the ICC publication is the binding text and specific contract wording prevails. Related: uk_duty_calculator (accepts an incoterm when composing the CIF value), shipment_summary (composite analysis).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter the list: any_mode (7 rules) or sea_only (4 rules). |
| code | string | — | Three-letter Incoterms 2020 code. Examples: "FOB", "CIF", "EXW", "DAP". |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
ldm_calculator ~532
Calculate loading metres (LDM) for European road freight — how much trailer length a pallet load occupies. 1 LDM = 1 linear metre of a 2.4m-wide trailer; a standard artic is 13.6 LDM. Provide a pallet preset OR custom length_mm + width_mm — omitting both errors with a usage hint. Behavior: deterministic; stackable=true with stack_height 2 or 3 divides the floor footprint accordingly; fits reports whether the load fits the chosen vehicle's LENGTH (give weight_kg to also see total_weight_kg against the vehicle's max payload); utilisation_percent is of the vehicle's length. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: ldm, vehicle (name, length_m, max_payload_kg), utilisation_percent, pallet_spaces (used/available), total_weight_kg, fits and warnings under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Related: vehicle_lookup (the trailer specs behind the vehicle presets), pallet_fitting_calculator (boxes onto one pallet), consignment_calculator (mixed lines including LDM).
| Name | Type | Req | Description |
|---|---|---|---|
| length_mm | number | — | Custom pallet length in millimetres (use with width_mm instead of a preset). Example: 1140. |
| pallet | string | — | Pallet preset: euro=1200x800mm, uk=1200x1000mm, half=800x600mm, quarter=600x400mm. Provide this OR length_mm + width_mm. |
| quantity | integer | — | Number of pallets. Default: 1. |
| stack_height | integer | — | Stack height when stackable: 2 or 3. Default: 2. |
| stackable | boolean | — | Whether pallets can be double/triple-stacked — halves (or thirds) the floor footprint. Default: false. |
| vehicle | string | — | Vehicle preset: artic 13.6m (default), rigid10 = 10m rigid, rigid75 = 7.5t rigid, luton van, or custom. |
| vehicle_length_m | number | — | Custom vehicle load length in metres (required when vehicle=custom). |
| weight_kg | number | — | Weight per pallet in kg — enables the payload side of the fits check. |
| width_mm | number | — | Custom pallet width in millimetres. Example: 980. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
nearest_airport ~382
Find the airports nearest to a caller-provided latitude/longitude, sorted by great-circle (haversine) distance with distance_km on each result. Searches 85,555 airports (OurAirports, public domain). Provide latitude and longitude (decimal degrees); optional radius_km, max_results (1-50, default 10) and type filter (e.g. large_airport only). Coordinates are INPUT only — nothing is stored or logged. Behavior: deterministic distance sort; confidence reflects proximity and airport size (a large airport within 25 km scores high; closed/heliport/seaplane results cap lower). This tool does NOT geocode place names and does NOT compute routes — pass coordinates you already hold. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: count and results[] (the airport record plus distance_km) under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: reference data only — not for navigation; verify codes with IATA / ICAO. Related: airport_lookup (exact code or name lookup, no distance), unlocode_lookup (named transport-location search).
| Name | Type | Req | Description |
|---|---|---|---|
| latitude | number | yes | Latitude in decimal degrees (-90 to 90). Example: 51.47. |
| longitude | number | yes | Longitude in decimal degrees (-180 to 180). Example: -0.4543. |
| max_results | integer | — | Maximum results (1-50). Default: 10. |
| radius_km | number | — | Maximum distance in kilometres — omit for no radius cap. |
| type | string | — | Optional filter by airport type. Example: "large_airport". |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
pallet_fitting_calculator ~475
Calculate how many identical boxes fit on a pallet: boxes per layer (trying 90-degree rotation when allowed), layer count within the max height, totals, volume utilisation and weight capping. Behavior: deterministic geometric packing of one box size in aligned rows and columns — it does not model interlocked or mixed-orientation patterns; weight_limited reports when max_payload_kg caps the count below the geometric fit; pallet_deck_height_cm defaults to 15. Missing or non-positive dimensions error naming the parameter. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: boxes_per_layer, layers, total_boxes, orientation, boxes_per_row/col, usable_height_cm, utilisation_percent, total_box_volume_cbm, wasted_space_cbm and the weight fields under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: a theoretical best-effort fit — real stacking obeys carton strength, overhang and load-stability rules it does not model. Related: ldm_calculator (pallets into trailer length), vehicle_lookup (pallet capacity per vehicle), container_lookup (pallets into containers).
| Name | Type | Req | Description |
|---|---|---|---|
| allow_rotation | boolean | — | Try 90-degree box rotation for the best layer fit. Default: true. |
| box_height_cm | number | yes | Box height in cm. |
| box_length_cm | number | yes | Box length in cm. |
| box_weight_kg | number | — | Weight per box in kg — enables the weight-capping check. |
| box_width_cm | number | yes | Box width in cm. |
| max_payload_kg | number | — | Maximum pallet payload in kg. Example: 1000. |
| pallet_deck_height_cm | number | — | Pallet deck height in cm. Default: 15. |
| pallet_length_cm | number | yes | Pallet length in cm. Example: 120 (euro pallet). |
| pallet_max_height_cm | number | yes | Maximum stack height in cm INCLUDING the pallet deck. Example: 180. |
| pallet_width_cm | number | yes | Pallet width in cm. Example: 80 (euro pallet). |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
shipment_summary ~491
Composite shipment analysis in one call: volume (CBM), gross and chargeable weight, road LDM with pallet spaces and a vehicle suggestion (road mode), volumetric weight (air), revenue tonnes with a container suggestion (sea), dangerous-goods presence for items carrying un_number, and UK duty estimates for items carrying hs_code + customs_value. Provide mode (road | air | sea | multimodal) and items[] (dims in cm, weight in kg, quantity; optional stackable, pallet_type, hs_code, un_number, customs_value); origin/destination and incoterm refine the duty leg. Behavior: chains the same deterministic engines as the single-purpose tools; sections that cannot run (e.g. duty without a customs value) surface in warnings instead of failing the whole call. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: mode, itemCount, totals {pieces, grossWeight, volumeCBM, chargeableWeight, billingBasis}, modeSpecific (LDM / pallet spaces / suggested vehicle, or revenue tonnes / container), warnings and dataVersion under result — note this composite's result uses camelCase field names (legacy shape); plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: a planning summary, not a quotation or compliance determination. Related: consignment_calculator (canonical snake_case lines[] shape with advisory flags), cbm_calculator, chargeable_weight_calculator, ldm_calculator, adr_lookup, uk_duty_calculator (the engines this chains).
| Name | Type | Req | Description |
|---|---|---|---|
| destination | object | — | Destination — ISO country code and optional UN/LOCODE. |
| freight_cost | number | — | Freight cost in GBP for the duty calculation. |
| incoterm | string | — | Incoterms 2020 three-letter code. Examples: "DAP", "EXW", "FOB". |
| insurance_cost | number | — | Insurance cost in GBP for the duty calculation. |
| items | array | yes | Shipment items with dimensions, weight and optional HS/UN codes. |
| mode | string | yes | Transport mode — selects the mode-specific section of the result. |
| origin | object | — | Origin — ISO country code and optional UN/LOCODE. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
uk_duty_calculator ~523
Estimate UK import duty and VAT for a commodity code using the LIVE GOV.UK Trade Tariff — rates are fetched per request, not from a static table. The CIF value is composed from customs_value + freight_cost + insurance_cost; duty = CIF x the duty rate for the origin country; VAT (typically 20%) applies on the duty-inclusive value. Provide commodity_code (6-10 digits), origin_country (ISO-2) and customs_value in GBP; freight_cost, insurance_cost and incoterm are optional refinements. Behavior: live lookup plus deterministic arithmetic on the returned rate; an unknown or non-declarable commodity code errors with HMRC's message (a 6-digit code may need extending to its 8/10-digit declarable line); origin-dependent measures the tariff cannot resolve automatically surface in warnings. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: commodity_code and description, origin country, cif_value, duty_rate (+ percent), duty_amount, vat_rate, vat_amount, total_import_taxes, total_landed_cost and warnings under result; validity.as_of marks the live-rate timestamp; plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: an estimate, not a customs ruling — excise, quotas, anti-dumping measures, reliefs and origin-proof requirements can change the outcome; confirm with a customs broker or HMRC before relying on it. Related: hs_code_lookup (find the 6-digit code first), incoterms_lookup (who actually pays these costs).
| Name | Type | Req | Description |
|---|---|---|---|
| commodity_code | string | yes | HS/UK tariff code, 6-10 digits. Example: "8471300000" (portable computers). 6-digit codes may need the declarable 8/10-digit line. |
| customs_value | number | yes | Goods value in GBP. Example: 1000. |
| freight_cost | number | — | Freight cost in GBP — added to the CIF value. Default: 0. |
| incoterm | string | — | Incoterms 2020 basis of the customs_value — documents which costs are already included. |
| insurance_cost | number | — | Insurance cost in GBP — added to the CIF value. Default: 0. |
| origin_country | string | yes | ISO 2-letter country of origin. Examples: "CN", "DE", "US". |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
uld_lookup ~552
Look up air-cargo ULD (Unit Load Device) specifications — 16 types spanning lower-deck containers (AKE/LD3 and family), main-deck pallets (PMC, PAG and family) and temperature-controlled units. Each record carries external/internal/door dimensions (cm), tare and max gross weight (kg), usable volume (m³), deck position and compatible aircraft. Provide type as an IATA code ("AKE", "PMC") or slug ("ake-ld3"); omit it to list all 16; category (container | pallet | special) and deck (lower | main) filter the list. Behavior: read-only; an unknown type errors with the valid list; per-record provenance (sources, audited_at, decision_rationale) is included. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: the ULD record (or filtered list) under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: specs are compiled from manufacturer and carrier-published sources with ≥4 cited sources per record. Provenance is PENDING, not verified — read the envelope's provenance_status rather than this sentence. As of 2026-08-03 every cited source HAS been read and verdicted by a second agent, and confirmed reads carry a timestamp; provenance stays pending because no record yet has a confirmed primary source PLUS a second independent non-tertiary source agreeing with it — on each record the second such source either contradicted the stored value or did not list the code. Treat tare_weight with particular caution: no non-tertiary source confirms it on ANY record. Confidence is medium and a PROVENANCE_PENDING advisory rides every response. Pallet records (PMC, PAG, PGA, PLA, PAJ, PMCQ7) have NO internal dimensions — a pallet has no walls or roof; read max_build_up_height_cm for the aircraft contour ceiling and do not multiply dimensions to get a volume. Airline-specific ULD variants still dif…
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by ULD category. |
| deck | string | — | Filter by deck position. |
| type | string | — | IATA ULD code or slug. Examples: "AKE", "PMC", "ake-ld3". Omit to list all 16. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
unit_converter ~436
Convert freight and logistics units: weight (kg, lbs, oz, tonnes, short_tons, long_tons), volume (cbm, cuft, cuin, litres, gal_us, gal_uk), length (cm, inches, m, feet, mm), plus two freight-specific targets valid only FROM cbm — chargeable_kg (air volumetric weight at the IATA 6,000 divisor, 1 CBM = 166.67 kg) and freight_tonnes (sea W/M, 1 CBM = 1 freight tonne). Behavior: deterministic; the response names both units and states the formula used. Cross-dimension conversions (e.g. kg to litres) and freight targets from a non-cbm source error with the accepted-unit list. Note: short ton (US) = 2,000 lb, long ton (UK) = 2,240 lb, metric tonne = 2,204.6 lb. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: input {value, unit, name}, result {value, unit, name}, formula and note under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Related: cbm_calculator (dimensions to volume first), chargeable_weight_calculator (proper air billing weight with pieces and a custom divisor).
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | yes | Source unit — weight (kg, lbs, oz, tonnes, short_tons, long_tons), volume (cbm, cuft, cuin, litres, gal_us, gal_uk) or length (cm, inches, m, feet, mm). Must be the same dimension as "to". |
| to | string | yes | Target unit — any same-dimension unit, plus chargeable_kg and freight_tonnes (both only valid from cbm). |
| value | number | yes | The numeric value to convert. Example: 5. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
unlocode_lookup ~415
Search 116,129 UN/LOCODE transport locations worldwide — ports, airports, rail and road terminals, inland container depots and border crossings. Codes are 5 characters: a 2-letter ISO country code + a 3-character location code (GBLHR = London Heathrow, NLRTM = Rotterdam). Provide code for an exact record, or query (name search, min 2 chars) optionally narrowed by country and function_type; limit caps results (default 20, max 100). Behavior: read-only; exact code hits are provenance-based while fuzzy name hits report match quality via the envelope's confidence (basis match_quality); an unknown code errors with a not-found message. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: the location record(s) — code, name and name_ascii, country, subdivision, functions[], status, coordinates {lat, lon} and iata_code where assigned — under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: an administrative code list (UNECE UN/LOCODE 2024-2) — confirm operational status and coordinates with the port or authority before critical use. Related: airport_lookup (airport-specific records including ICAO codes), nearest_airport (find airports by coordinates).
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | — | Exact UN/LOCODE — 5 characters. Examples: "GBLHR", "NLRTM". |
| country | string | — | Filter by 2-letter ISO country code. Examples: "GB", "NL". |
| function_type | string | — | Filter by location function. |
| limit | integer | — | Maximum results. Default: 20, max: 100. |
| query | string | — | Location name search (min 2 chars). Examples: "rotterdam", "heathrow". |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
validate ~439
Validate and parse freight identifiers by their public check-digit algorithms: shipping container numbers (ISO 6346), air waybill (AWB) numbers (IATA modulus-7) and IMO ship identification numbers. Two modes: pass text=<arbitrary string> to find and validate every identifier in it (e.g. a booking-email line), OR pass value=<identifier> + type=<container|awb|imo> to validate one. Behavior: deterministic check-digit arithmetic; per identifier found it reports type, the normalised form, valid (pass/fail), expected vs actual check digit, and details (container: owner prefix + equipment category; AWB: airline prefix + the operating airline resolved from the AWB-prefix dataset; IMO: the 7-digit number); text mode with no identifiers found returns an empty found[] with a note. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: found[] (each entry with its own _source naming the standard applied) and disclaimer under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: STRUCTURAL ONLY — a valid check digit means well-formed, NOT that the container, shipment or vessel exists or is active; not a registry or tracking lookup. Related: container_lookup (container TYPE specs, not numbers), airline_lookup (the AWB-prefix dataset the airline resolution uses).
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | — | Arbitrary string to scan for container / AWB / IMO identifiers (parse mode). Provide this OR value+type. Example: "2 cntrs MSKU3068808 / TGHU7654325 on AWB 176-12345675". |
| type | string | — | Identifier type for value: container = ISO 6346, awb = IATA air waybill, imo = IMO ship number. |
| value | string | — | A single identifier to validate (typed mode). Requires type. Example: "MSKU3068808". |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.
vehicle_lookup ~366
Look up road-freight vehicle and trailer specifications — 17 types: EU articulated trailers (standard/mega curtainsider, box, reefer, double-deck, flatbed, low-loader), US 53ft/48ft dry vans, rigid trucks (7.5-26 t) and vans (Luton, Transit, Sprinter). Each record carries internal dimensions, payload and gross weights, euro/UK pallet capacity, axle configuration and features. Provide slug (e.g. "standard-curtainsider") for one record; omit it to list all 17; category (articulated | rigid | van) and region (EU | US) filter the list. Behavior: read-only; an unknown slug errors with the valid list; per-record provenance (sources, audited_at, decision_rationale) is included. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits. Returns: the vehicle record (or filtered list) under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Limitations: typical specs, provenance pending independent verification (the envelope's provenance_status says so) — real equipment varies by operator and build; legal payload is set by the vehicle's plated weights. Related: ldm_calculator (whether a pallet load fits), pallet_fitting_calculator, consignment_calculator.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by vehicle category. |
| region | string | — | Filter by region. |
| slug | string | — | Vehicle slug. Examples: "standard-curtainsider", "mega-trailer". Omit to list all 17. |
| Name | Type | Req | Description |
|---|---|---|---|
| _source | object | yes | — |
| blocking_errors | array | — | — |
| citation | object | yes | — |
| confidence | object | yes | — |
| envelope_version | string | yes | — |
| normalized_input | object | — | — |
| ok | boolean | yes | — |
| result | — | yes | — |
| validity | object | — | — |
| warnings | array | — | — |
No examples provided.