Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "adr_lookup", "airline_lookup", "airport_lookup" and 20 more
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"hazard_class":{"description":"Filter ⟨149 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"country":{"description":"Filter ⟨140 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"iata":{"description":"Exact ⟨59 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"height_cm":{"description":"Height ⟨44 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"factor":{"description":"Volumetric ⟨83 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"items":{"description":"Deprecated ⟨12 unchanged words⟩ . Provide lines OR items.","items":{"additionalProperties":false,"properties":{"description":{"description":"Item ⟨404 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"full":{"description":"Lists ⟨167 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"basis":{"description":"Emissions ⟨139 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"tier":{"description":"Tier ⟨13 unchanged words⟩
⟨69 unchanged words⟩ a section). Behavior: read-only; description searchisrunskeyword-basedfirst against the official WCO HSdescriptions,descriptions;sowheneverydaynoneproductcontains the words,canitreturnfallszerobackrowsto—
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"description":{"description":"The ⟨16 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"category":{"description":"Filter ⟨97 unchanged words⟩
⟨57 unchanged words⟩ 3 divides the floor footprint accordingly; fits isfalsetrue only when the loadexceedsfits the vehicle's LENGTH,oritsneedspalletmoreFLOORpalletPOSITIONSfloorandpositions—thanwhentheweight_kgvehicleisrecord
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"latitude":{"description":"Latitude ⟨74 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"allow_rotation":{"description":"Allow ⟨108 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"q":{"description":"One ⟨35 unchanged words⟩
⟨155 unchanged words⟩ is the separate row count. The suggested vehicle is the smallest that holds the load by itsown record (length, its payload,and its palletcapacityfloor positions — the record's own count when it is a floor count, otherwise worked from its deck (a 7.5t rigid holds 15 Euro pallets on the floor; modeSpecific.suggestedVehicleFloorPositions says which) — and trailerUtilisation is of that vehicle (utilisationBasis ⟨185 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"commodity_code":{"description":"UK ⟨114 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"category":{"description":"Filter ⟨115 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"from":{"description":"Source ⟨97 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"code":{"description":"Exact ⟨87 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"text":{"description":"Arbitrary ⟨61 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"category":{"description":"Filter ⟨106 unchanged words⟩
Changed the definition of "adr_exemption_calculator", "adr_lookup", "adr_lq_eq_check" and 14 more
⟨210 unchanged words⟩ rests on)","pattern":"^(?:\\s*(?:UNUN\\s*)?\\d{4}|\\s*ID\\s*\\s*|\\s*ID\\s*[-:.]?\\s*\\d{4}\\s*)$","type ⟨291 unchanged words⟩ as an item.","pattern":"^(?:\\s*(?:UNUN\\s*)?\\d{4}|\\s*ID\\s*\\s*|\\s*ID\\s*[-:.]?\\s*\\d{4}\\s*)$","type ⟨155 unchanged words⟩
Changed the definition of "adr_lookup" and "uk_duty_calculator"
⟨5 unchanged words⟩ {"description":"Filter by ADR hazard classand(TableitsAdivisions.column (3a)). Examples: \"3\" (flammable liquids), \"6.1\" (toxic), \"8\" (corrosive), \"1.4\1\" (anexplosives — the division and compatibility group are in classification_code, e.g. \"1.4S\").","type":"string"},"search" ⟨39 unchanged words⟩ : \"1203\", \"UN1203\", \"UN 1203\", \"0004\".","pattern":"^(UN?:UN\\s*
Changed the definition of "adr_exemption_calculator", "adr_lq_eq_check" and "shipment_summary"
⟨168 unchanged words⟩ packagings, in kg.","exclusiveMinimum":0,"maximum":1000000000,"type":"number"},"un_number":{"description" ⟨148 unchanged words⟩ ,"quantity"],"type":"object"},"minItems":1,"type":"array"},"packing_group":{"description" ⟨95 unchanged words⟩ their packagings, in kg.","exclusiveMinimum":0,"maximum":1000000000,"type":"number"},"un_number":{" ⟨249 unchanged words⟩
⟨104 unchanged words⟩ Changed the definition of "adr_exemption_calculator", "adr_lq_eq_check" and "shipment_summary"
⟨888 unchanged words⟩ (NOT_FOUND); exempt is the overall verdict. Fields are checked by name: a field the tool does not read is refused with a tool error naming it and listing the accepted ones, never ignored. Rate-limited: a limit error carries reset_at, the ⟨188 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"basis":{"description":"OPTIONAL. ⟨54 unchanged words⟩ of items for mixed-load check","items":{"additionalProperties":false,"properties":{"basis":{"description":"OPTIONAL. ⟨610 unchanged words⟩
Changed the definition of "adr_exemption_calculator", "adr_lookup", "adr_lq_eq_check" and 22 more
⟨888 unchanged words⟩ (NOT_FOUND); exempt is the overall verdict. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowance
Changed the definition of "adr_exemption_calculator"
Calculate ADR 1.1.3.6 "small load" exemption points for a dangerous-goodsload.load and say whether it qualifies. Each substance's transport category (Table A column (15), 0-4) sets a points multiplier (1.1.3.6.4: category 1 x50, 2 x3, 3 x1, 4 x0; the nine ADR 1.1.3.6.3 note-a entries UN 0081/0082/0084/0241/0331/0332/0482/1005/1017 are x20);withpointsa=50quantity x multiplier. The rule (1.1.3.6.2), for dangerous goods carried in packages: goods of ONE transport category qualify when their TOTAL on the transport unit stays within that category's 1.1.3.6.3 column (3) maximum — category 1: 20, 2: 333, 3: 1,000 (kgper-transport-unit
Certificate changed, valid to 2026-12-15
Certificate recorded, valid to 2026-10-15
Authorization not required
First tool surface recorded: 25 tools (server version 2.19.0)
Showing the latest 11 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"code":{"description":"Exact ⟨52 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"length_mm":{"description":"Custom ⟨123 unchanged words⟩
⟨104 unchanged words⟩ ("0004"). Behavior: read-only reference lookup; a namesearchessearchreturnorupclasstofilter50isentriesa paged list — total,classtruncatedfiltersandupnext_offset,towith100.offsetAnandunknownlimitUN(atnumbermostor50 per search page, 100 per class page) — never a silently cut list. A search with no hits errors with suggestions: theAPI'sclosestNOT_FOUNDproperbodyshippingandnamesainretryTablehint.A ("acetne" → ACETONE, UN 1090). 28 Table A rows carry a scope remark ⟨129 unchanged words⟩
⟨41 unchanged words⟩ 1.4S\").","type":"string"},"limit":{"description":"search / hazard_class only: rows per page (default 10; at most 50 for search, 100 for hazard_class).","maximum":100,"minimum":1,"type":"integer"},"offset":{"description":"search / hazard_class only: rows to skip (default 0). The response gives total and next_offset.","maximum":9007199254740991,"minimum":0,"type":"integer"},"search":{"description":"Case-insensitive partial match on the proper shipping name ⟨36 unchanged words⟩ 1203\", \"0004\".","pattern":"^^\\s*(?:UN\\s*)?\\d{4}$\\s*$","type":"string"}},"type":"object"}
⟨130 unchanged words⟩ : \"1203\", \"UN1263\", \"UN 1263\", \"0004\".","pattern":"^^\\s*(UN?:UN\\s*)?\\d{4}$\\s*$","type":"string"},"unit":{ ⟨103 unchanged words⟩
⟨78 unchanged words⟩ FUZZY_BEST_MATCH advisory naming the matched field; a querywiththat contains nohitsnamereturnsfallscountback0towiththe closest names in the dataset ("Emirats" → Emirates). A query or country answer is aNO_MATCHlist:advisorysummaryratherrows,than25 per page, with total, truncated and next_offset (full: true for full records); anerror.iata / icao / prefix answer is the holder records in full. Rate-limited: a limit error carries reset_at, the ⟨14 unchanged words⟩ icao_code, awb_prefix[], callsign, country, has_cargo,and verification fields (aliases andper-recordsourcesverificationinfieldsfull records) — under result, plus confidence, _source and ⟨51 unchanged words⟩
⟨13 unchanged words⟩ "minLength":2,"type":"string"},"full":{"description":"Lists only: true returns full records (provenance, sources, rationale) instead of summary rows. A single-record call always returns the full record.","type":"boolean"},"iata":{"description":"Exact IATA code ( ⟨18 unchanged words⟩ ^[A-Za-z]{3}$","type":"string"},"limit":{"description":"Lists only: rows per page (default: every row for summaries; 5 with full: true).","maximum":100,"minimum":1,"type":"integer"},"offset":{"description":"Lists only: rows to skip (default 0). The response gives total and next_offset.","maximum":9007199254740991,"minimum":0,"type":"integer"},"prefix":{"description":"AWB prefix ⟨27 unchanged words⟩
⟨56 unchanged words⟩ figures; total volume = pieces x per-piece CBM (totals are computed from unrounded figures and rounded only for display), with conversions to cubic feet, cubic inches and litresincluded.(exact factors: 1 ft = 0.3048 m). Missing or non-positive dimensions error with a validation ⟨28 unchanged words⟩ _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). Related: chargeable_weight_calculator (air billing weight from ⟨14 unchanged words⟩
⟨49 unchanged words⟩ UPS) typically use 5,000. Behavior: deterministic;per-piecethevolumetricdimensionsweightare per piece and gross_weight_kg is the TOTAL for all pieces; totals are computed from unrounded figures and roundedtoonly2fordecimaldisplayplaces(10,000beforepiecestotalling;of 5 x 5 x 6 cm = 250 kg); basis reports which weight governs ("volumetric" = ⟨48 unchanged words⟩ allowance resets. Returns: chargeable_weight_kg, basis, volumetric_weight_kg (totaltheandtotal;perthepiecehosted endpoint names it volumetricWeightTotalKg) and volumetric_weight_per_piece_kg, gross_weight_kg, cbm, ratio, factor and pieces under result; normalized_input echoes the interpreted inputs (gross_weight_basis, dimensions_basis) and any defaults applied; plus confidence, _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). Related: cbm_calculator (volume only), consignment_calculator ⟨11 unchanged words⟩
⟨17 unchanged words⟩ :{"description":"Actual gross weight in kilograms of ALL pieces together (the total, not one piece) — the dimensions are per piece.","exclusiveMinimum":0,"type":"number"} ⟨48 unchanged words⟩
⟨33 unchanged words⟩ one container's record; omit it to list all10.10 as summary rows (full: true for full records). Add item dimensions (item_length_cm/width_cm/height_cm, optional item_weight_kg and ⟨14 unchanged words⟩ per-record provenance (sources, audited_at, decision_rationale); type is read in any letter case, as the ISO size-type code ("45G1") or the short form of its name ("40HC"); an unknown type errors with the validslugslugslist.and the closest one ("20ft-standrd" → 20ft-standard). Fit calculations are geometric best-effort — they do ⟨42 unchanged words⟩ and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). A list (no single record asked for) returns summary rows with total, truncated, next_offset and detail_hint; full: true returns full records five per page, with offset / limit to page. Limitations: manufacturer-typical specs, provenance pending independent verification ⟨46 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"full":{"description":"Lists only: true returns full records (provenance, sources, rationale) instead of summary rows. A single-record call always returns the full record.","type":"boolean"},"item_height_cm":{"description":"Load fit: item height in cm.","exclusiveMinimum":0,"type":"number"},"item_length_cm":{"description":"Load fit: item length in cm (with item_width_cm and item_height_cm, and type).","exclusiveMinimum":0,"type":"number"},"item_quantity":{"description":"Load fit: number of items (default 1).","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"item_weight_kg":{"description":"Load fit: weight of ONE item in kg (default 0 — no weight check).","minimum":0,"type":"number"},"item_width_cm":{"description":"Load fit: item width in cm.","exclusiveMinimum":0,"type":"number"},"limit":{"description":"Lists only: rows per page (default: every row for summaries; 5 with full: true).","maximum":100,"minimum":1,"type":"integer"},"offset":{"description":"Lists only: rows to skip (default 0). The response gives total and next_offset.","maximum":9007199254740991,"minimum":0,"type":"integer"},"type":{"description":"Container slug (e.g., ⟨15 unchanged words⟩
⟨38 unchanged words⟩ 2 chars), code (2-6 digit lookup, written with or without dots or spaces — "8471.30" is 847130 — returns the code plus its hierarchy), or ⟨143 unchanged words⟩
⟨4 unchanged words⟩ {"code":{"description":"Exact HS code:(2-62–6 digits)", written with or without dots or spaces (e.g. \"pattern847130\":, \"^\\d{28471.30\",6}$\"0901\").","type":"string"},"query":{ ⟨30 unchanged words⟩
⟨60 unchanged words⟩ filtered list, or neither to list all11.11 (a list is summary rows — code, name, category, summary — with full: true for the full rules). Behavior: read-only reference; an unknown code errors with the valid codelist.list, and DAT — replaced in Incoterms 2020 — names its successor, DPU (ICC). Rate-limited: a limit error carries reset_at, the ⟨70 unchanged words⟩
⟨27 unchanged words⟩ A-Za-z]{3}$","type":"string"},"full":{"description":"Lists only: true returns full records (provenance, sources, rationale) instead of summary rows. A single-record call always returns the full record.","type":"boolean"},"limit":{"description":"Lists only: rows per page (default: every row for summaries; 5 with full: true).","maximum":100,"minimum":1,"type":"integer"},"offset":{"description":"Lists only: rows to skip (default 0). The response gives total and next_offset.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"type":"object"}
⟨56 unchanged words⟩ or 3 divides the floor footprint accordingly; fitsreportsiswhetherfalse when the loadfitsexceeds thechosenvehicle's LENGTH or needs more pallet floor positions than the vehicle record holds (Euro and UK pallets count as their own floor positions — pallet_spaces.basis says which — other footprints as Euro equivalents); give weight_kg to also see total_weight_kg against the vehicle's maxpayload);payload; utilisation_percent is of the vehicle's length. Rate-limited: ⟨14 unchanged words⟩ name, length_m, max_payload_kg), utilisation_percent, pallet_spaces (used/availableused/available/basis), total_weight_kg, fits and warnings under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). Related: vehicle_lookup (the trailer specs behind ⟨14 unchanged words⟩
⟨17 unchanged words⟩ layer count within the max height, totals, footprint and volume utilisation, and weight capping. Behavior: deterministic geometric packing ⟨20 unchanged words⟩ when max_payload_kg caps the count below the geometricfit;fit, counted in whole layers (notes say when a part layer is left out, and why nothing fits when no box fits); pallet_deck_height_cm defaults to 15. Missing or non-positive dimensions ⟨18 unchanged words⟩ layers, total_boxes, orientation, boxes_per_row/col, usable_height_cm, utilisation_percent (the share of the pallet FOOTPRINT one layer covers), volume_utilisation_percent (box volume over the usable envelope), total_box_volume_cbm, wasted_space_cbm, max_boxes_by_weight, notes and the weight fields under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). Limitations: a theoretical best-effort fit — ⟨29 unchanged words⟩
⟨60 unchanged words⟩ [] (dims in cm, weight in kg PER ITEM, quantity; optional stackable, pallet_type, hs_code, un_number, customs_value PER ITEM, and adr_quantity — the TOTAL for the dangerous-goods line, all pieces together); origin/destination and incoterm refine the duty leg. ⟨55 unchanged words⟩ reports); palletRows is the separate row count. The suggested vehicle holds the load by its own record (length, payload, pallet capacity) and trailerUtilisation is of that vehicle (utilisationBasis names it); the suggested container is the smallest dry box whose record holds the volume and payload. Sections that cannot run (e.g. duty without ⟨160 unchanged words⟩
⟨85 unchanged words⟩ ":"ADR 1.1.3.6.3 quantity for this dangerous-goods line — the total for the whole line, all pieces together (never per piece), in adr_quantity_unit. SEPARATE from weight, which is gross ⟨61 unchanged words⟩ ],"type":"string"},"customs_value":{"description":"Customs value in GBP PER ITEM (per piece) — multiplied by quantity for the line; the duty estimate uses the sum over all lines.","type":"number"},"description":{"type ⟨135 unchanged words⟩
⟨52 unchanged words⟩ applies on the duty-inclusive value. Provide commodity_code (6-10adigitsdeclarable 10-digit code), origin_country (ISO-2) and customs_value in GBP; ⟨9 unchanged words⟩ lookup plus deterministic arithmetic on the returned rate;anaunknown6- ornon-declarable commodity8-digit codeerrorsis refused — never padded withHMRC'szerosmessageto(a6-digitcodemayyouneeddidextendingnottosendits—8/10-digitwithdeclarabledeclarable_codes,linethe 10-digit codes beneath it in the UK Trade Tariff (610910 → 6109100010, 6109100090); an origin that is not an ISO 3166-1 country is refused; origin-dependent measures the tariff cannot resolve automatically surface ⟨26 unchanged words⟩ , vat_amount, total_import_taxes, total_landed_cost and warnings underresult;result (amounts in GBP); validity.as_of marks the live-rate timestamp; plus confidence, _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). Limitations: an estimate, not a customs ⟨39 unchanged words⟩
⟨5 unchanged words⟩ ":{"description":"UK tariff commodity code(6-10— a declarable 10 digits, spaces allowed (a 6- or 8-digit code is refused with the declarable codes beneath it)","pattern":"^\\d^[\\d\\s]{6,1014}$","type":"string"},"customs_value" ⟨82 unchanged words⟩
⟨49 unchanged words⟩ an IATA code ("AKE", "PMC")or, slug ("ake-ld3") or the record's own name when one record carries it ("LD3" → AKE); omit it to list all 16; category ⟨14 unchanged words⟩ : read-only; an unknown type errors with thevalidclosestlist;codes;per-recorda single record carries its provenance (sources, audited_at, decision_rationale).isAincluded.list (no single record asked for) returns summary rows with total, truncated, next_offset and detail_hint; full: true returns full records five per page, with offset / limit to page. Rate-limited: a limit error carries reset_at, the UTC time the allowance resets. Returns: the ULD record (orfilteredthe list) under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). Limitations: specs are compiled from manufacturer ⟨346 unchanged words⟩
⟨24 unchanged words⟩ ,"main"],"type":"string"},"full":{"description":"Lists only: true returns full records (provenance, sources, rationale) instead of summary rows. A single-record call always returns the full record.","type":"boolean"},"limit":{"description":"Lists only: rows per page (default: every row for summaries; 5 with full: true).","maximum":100,"minimum":1,"type":"integer"},"offset":{"description":"Lists only: rows to skip (default 0). The response gives total and next_offset.","maximum":9007199254740991,"minimum":0,"type":"integer"},"type":{"description":"ULD code (e.g., ⟨20 unchanged words⟩
⟨36 unchanged words⟩ volumetric weight at the IATA 6,000 divisor,:1m³CBMx=1,000,000166.67/kg6000) and freight_tonnes (sea W/M, 1 CBM = 1 freight tonne). Behavior:deterministic;deterministic, on the exact legal factors (1 lb = 0.45359237 kg, 1 in = 2.54 cm); the response names both units and states the formula used. Cross-dimension conversions (e.g. kg to litres), a negative value and freight targets from a non-cbm sourceerrorare refused with theaccepted-unitacceptedlist.units listed by category. Note: short ton (US) = 2, ⟨70 unchanged words⟩
⟨62 unchanged words⟩ caps results (default 20, max 100). The spaced notation "GB LHR" reads as GBLHR in either. Behavior: read-only; exact code hits are provenance-based ⟨104 unchanged words⟩
⟨7 unchanged words⟩ UN/LOCODE lookup (e.g. \"GBLHR\", \"GB LHR\", \"NLRTM\")","pattern":"^^\\s*[A-Za-z]{2}[\\s-]?[A-Za-z0-9]{53}$\\s*$","type":"string"},"country":{ ⟨65 unchanged words⟩
⟨78 unchanged words⟩ read-only; an unknown slug errors with the validlist;listper-recordand the closest slugs; a single record carries its provenance (sources, audited_at, decision_rationale).isAincluded.list (no single record asked for) returns summary rows with total, truncated, next_offset and detail_hint; full: true returns full records five per page, with offset / limit to page. Rate-limited: a limit error carries reset_at, the UTC time the allowance resets. Returns: the vehicle record (orfilteredthe list) under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm). Limitations: typical specs, provenance pending independent ⟨32 unchanged words⟩
⟨12 unchanged words⟩ ,"van"],"type":"string"},"full":{"description":"Lists only: true returns full records (provenance, sources, rationale) instead of summary rows. A single-record call always returns the full record.","type":"boolean"},"limit":{"description":"Lists only: rows per page (default: every row for summaries; 5 with full: true).","maximum":100,"minimum":1,"type":"integer"},"offset":{"description":"Lists only: rows to skip (default 0). The response gives total and next_offset.","maximum":9007199254740991,"minimum":0,"type":"integer"},"region":{"description":"Filter by region", ⟨23 unchanged words⟩
⟨29 unchanged words⟩ freight_cost":{"description":"Freight cost in GBP, 0 or more (default 0)","minimum":0,"type":"number"},"incoterm":{"description" ⟨16 unchanged words⟩ insurance_cost":{"description":"Insurance cost in GBP, 0 or more (default 0)","minimum":0,"type":"number"},"origin_country":{" ⟨24 unchanged words⟩
⟨124 unchanged words⟩ and it stays null.","exclusiveMinimum":0,"maximum":1000000000,"type":"number"},"adr_quantity_unit":{"description" ⟨70 unchanged words⟩ ,"quantity":{"exclusiveMinimum":0,"maximum":90071992547409911000000,"type":"integer"},"stackable":{" ⟨17 unchanged words⟩ description":"Gross weight kg per item","minimum":0,"type":"number"},"width":{"description" ⟨10 unchanged words⟩ weight","quantity"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"mode":{" ⟨39 unchanged words⟩
⟨443 unchanged words⟩ are not_permitted with the prohibition stated in reason. Fields are checked by name: a field the tool does not read is refused with a tool error naming it and listing the accepted ones, never ignored. Rate-limited: a limit error carries reset_at, the ⟨158 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"items":{"description":"Items to check (1–20 per call).","items":{"additionalProperties":false,"properties":{"inner_packaging_qty":{"description":"EQ ⟨225 unchanged words⟩
⟨155 unchanged words⟩ in warnings instead of failing the whole call. Fields are checked by name: a field the tool does not read is refused with a tool error naming it and listing the accepted ones, never ignored. Rate-limited: a limit error carries reset_at, the ⟨114 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"destination":{"additionalProperties":false,"description":"Destination location — ISO country code ⟨59 unchanged words⟩ and optional HS/UN codes","items":{"additionalProperties":false,"properties":{"adr_quantity":{"description":"ADR ⟨178 unchanged words⟩ ],"type":"string"},"origin":{"additionalProperties":false,"description":"Origin location — ISO country code ⟨19 unchanged words⟩
⟨173 unchanged words⟩ table_a_remark preserves the verbatim Table A text. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: count and results[] — per ⟨81 unchanged words⟩
⟨444 unchanged words⟩ not_permitted with the prohibition stated in reason. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: mode, overall_status (qualifies | does_not_qualify ⟨147 unchanged words⟩
⟨93 unchanged words⟩ a NO_MATCH advisory rather than an error. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: count and results[] — per ⟨71 unchanged words⟩
⟨83 unchanged words⟩ unknown code errors with a not-found message. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: count and results[] — per ⟨69 unchanged words⟩
⟨79 unchanged words⟩ with a validation message naming the parameter. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: cbm_per_piece, total_cbm, cubic_feet, litres, ⟨36 unchanged words⟩
⟨105 unchanged words⟩ inputs error with the failing parameter named. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: chargeable_weight_kg, basis, volumetric_weight_kg (total and ⟨46 unchanged words⟩
⟨136 unchanged words⟩ the offending field. Canonical schema: https://www.freightutils.com/schema/consignment.v1.json. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: schema_version, mode, per_line[] (cbm ⟨70 unchanged words⟩
⟨87 unchanged words⟩ model load distribution, securing or mixed cargo. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: the container record — internal/external/door dimensions ⟨76 unchanged words⟩
⟨156 unchanged words⟩ the covered options, never a fabricated factor. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: well-to-wheel AND tank-to-wheel emissions where the ⟨81 unchanged words⟩
FreightUtilsSubscribePlansLink& Pricing
GetReturn theURL where theFreightUtilsuserpricingcanpagesubscribeURLtowithFreightUtilsthe Profor higherplan'sAPIrequestlimitslimit (50,000requests/monthper month).and price. Use when the user askshow to upgradeaboutorFreightUtilsaboutplans, pricing,orafter any other tool errors with a 429 rate_limitedAPIbody.limits. Behavior: static local response — no API call, neverrate-limited. Returns: url, tier, monthly_limit, monthly_pricerate-limited,currency andnonoteaccountunderorresult.paymentHandaction; theURLusertoopens theUSER to openURL in abrowser —browser. Returns:agentsurl,musttier,NOTmonthly_limit,attemptmonthly_price,tocurrencycompleteandthenotesubscriptionunderthemselves.result.
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"FreightUtilsSubscribePlansLink& Pricing"}
⟨104 unchanged words⟩ machines"); prefer the formal tariff wording. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: the query/code echo, count and results ⟨64 unchanged words⟩
⟨82 unchanged words⟩ and no binary accepted/rejected verdict is given. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: the description echo, flagged[] ( ⟨66 unchanged words⟩ uk_duty_calculator (duty/VAT, unrelated to ENS screening).Use BEFORE filing an ENS —Intended forcustoms/documentationcheckingteams,abrokersgoodsanddescriptionagentsbeforebuildinganfilingENSpipelines.is filed.
⟨73 unchanged words⟩ code errors with the valid code list. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: the rule record — name, category ⟨58 unchanged words⟩
⟨84 unchanged words⟩ ); utilisation_percent is of the vehicle's length. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: ldm, vehicle (name, length_m, ⟨41 unchanged words⟩
⟨90 unchanged words⟩ routes — pass coordinates you already hold. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: count and results[] (the airport ⟨44 unchanged words⟩
⟨67 unchanged words⟩ or non-positive dimensions error naming the parameter. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: boxes_per_layer, layers, total_boxes, orientation, ⟨57 unchanged words⟩
⟨8 unchanged words⟩ string in, typed and cited candidates out.The agent front door:Use when you holdanone identifier-ish token ("176", "UN1845", ⟨4 unchanged words⟩ ", "D/E") and do not knowwhich lookupwhattoolkindfits,ofcallidentifierthisitFIRSTis:andeachfollowcandidatethenamescandidate'sitsapi_urlentity/typecanonical_urland(orcarries thematchingapi_urlsiblingandtool)canonical_urlforofdepth.its full record. Provide q: ONE identifier (single token, ⟨129 unchanged words⟩ with valid:false rather than dropping it. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: query, normalized, count and candidates[ ⟨91 unchanged words⟩
⟨156 unchanged words⟩ warnings instead of failing the whole call. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: mode, itemCount, totals {pieces, ⟨104 unchanged words⟩
⟨109 unchanged words⟩ tariff cannot resolve automatically surface in warnings. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: commodity_code and description, origin country, ⟨74 unchanged words⟩
⟨90 unchanged words⟩ (sources, audited_at, decision_rationale) is included. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: the ULD record (or filtered list ⟨365 unchanged words⟩
⟨104 unchanged words⟩ lb, metric tonne = 2,204.6 lb. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: input {value, unit, name}, ⟨38 unchanged words⟩
⟨91 unchanged words⟩ unknown code errors with a not-found message. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: the location record(s) — code ⟨63 unchanged words⟩
⟨103 unchanged words⟩ an empty found[] with a note. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: found[] (each entry with its ⟨64 unchanged words⟩
⟨89 unchanged words⟩ (sources, audited_at, decision_rationale) is included. Rate-limited(anonymous use:25 requests/day per IP):a429limit errorbodycarriesretry_after_seconds and a Retry-After header — back off and retryreset_at,orthecallUTCget_subscribe_linktimeforthehigherallowancelimits.resets. Returns: the vehicle record (or filtered list ⟨51 unchanged words⟩
⟨29 unchanged words⟩ ANY unit — send the net quantity instead. Single-substance form only: sent beside items[] it is refused (INVALID_INPUT) — set it on each item.","enum":["net","gross"], ⟨118 unchanged words⟩ number (4 digits, optionally \"UN\"-prefixed) — or an ID-prefixed air-only number such as \"ID8000\" (routed AIR_ONLY_ID; the warning on that line states the limited-quantity condition the 0 rests on)","pattern":"^(?:(?:UN)?\\d{4}|\\s*ID\\s*[-:.]?\\s*\\d{4}\\s*)$","type":"string"},"unit": ⟨127 unchanged words⟩ (e.g. UN 1789). Ignored for single-row UNs. Single-substance form only: sent beside items[] it is refused (INVALID_INPUT) — set it on each item.","enum":["I","II"," ⟨60 unchanged words⟩ check (4 digits, optionally \"UN\"-prefixed) — or an ID-prefixed air-only number such as \"ID8000\", which has no ADR Table A entry and is routed AIR_ONLY_ID (nothing counted under 1.1.3.6 — the ADR answer for limited-quantity packages to the ICAO Technical Instructions, 3.4.9 / 3.4.10 / 1.1.3.6.5, as the warning on that line states). Single-substance form only: sent beside items[] it is refused (INVALID_INPUT) — send the substance as an item.","pattern":"^(?:(?:UN)?\\d{4}|\\s*ID\\s*[-:.]?\\s*\\d{4}\\s*)$","type":"string"},"unit": ⟨66 unchanged words⟩ says which dimension the entry is counted in. Single-substance form only: sent beside items[] it is refused (INVALID_INPUT) — set it on each item.","enum":["L","kg"], ⟨28 unchanged words⟩ (e.g. concentration bands). Ignored for single-row UNs. Single-substance form only: sent beside items[] it is refused (INVALID_INPUT) — set it on each item.","maximum":9007199254740991,"minimum":0,"type ⟨3 unchanged words⟩