Developer Reference

NMFC Classification

Search articles, look up freight classes, access rules, packages, change history, and density calculators.

Full-text search across NMFC articles by keyword, item number, or description fragment. Returns paginated results sorted by relevance.

Request Body

Parameter Type Description
q required string Search query. Minimum 3 characters. Matches article number, description, and grouping name.
page optional number Page number for pagination. Defaults to 1.

Response Fields

Field Type Description
results array Array of matching article objects
total number Total number of matching articles
page number Current page number
totalPages number Total number of pages
results[].article_number string NMFC article number
results[].description string Article description
results[].grouping_name string Commodity grouping name
results[].classification string Freight classification (e.g., "50", "55", "70")
results[].is_canceled boolean Whether the article has been canceled

Code Examples

curl -X POST https://freightapis.dev/api/search \
  -H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"q": "frozen food", "page": 1}'
GET /api/article/:num

Get Article

Retrieve complete article data for a single NMFC article, including all sub-items, density classifications, hazardous flags, and cross-reference notes.

URL Parameters

Parameter Type Description
num required string NMFC article number (e.g., 63321). Include only the base number, not the sub-item suffix.

Response Fields

Field Type Description
article_number string NMFC article number
description string Full article description
grouping_name string Commodity grouping name
classification string Freight class when no sub-items are present
is_hazardous boolean Whether the article is classified as hazardous material
is_special_handling boolean Whether the article requires special handling
is_canceled boolean Whether the article has been canceled
canceled_reference string | null Replacement article number, if canceled
note_references string[] Array of note identifiers that apply to this article
tariff_issue string Tariff issue number that introduced or last modified this article
supplement string | null Supplement identifier, if applicable
subItems array List of sub-item objects (see below)
subItems[].item string Sub-item suffix (e.g., "00", "01")
subItems[].description string Sub-item description detailing density or packaging conditions
subItems[].classification string Freight class for this sub-item
subItems[].sort_order number Display ordering index

Code Examples

curl https://freightapis.dev/api/article/63321 \
  -H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
GET /api/rule/:num

Get Rule

Retrieve the full text of a single NMFC rule by its rule number, including all sub-headings and structured description blocks.

URL Parameters

Parameter Type Description
num required string NMFC rule number (3–6 characters, e.g., 100). Must match a valid rule in the tariff.

Response Fields

Field Type Description
success boolean Indicates whether the request succeeded
rule object The rule object
rule.ruleNumber string NMFC rule number
rule.ruleHeader string Short title / header of the rule
rule.ruleSubHeading string Secondary heading providing additional context
rule.ruleDescriptions array Ordered list of description blocks
rule.ruleDescriptions[].type string Block type identifier (e.g., "paragraph", "list")
rule.ruleDescriptions[].title string Optional title for the block
rule.ruleDescriptions[].text string Full text content of the block

Code Examples

curl https://freightapis.dev/api/rule/100 \
  -H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
GET /api/package/:num

Get Package

Retrieve the full details of a single NMFC package definition by its package number, including the applicable tariff issue and all structured description blocks.

URL Parameters

Parameter Type Description
num required string NMFC package number (2–6 characters, e.g., 10). Must match a valid package in the tariff.

Response Fields

Field Type Description
success boolean Indicates whether the request succeeded
package object The package object
package.packageNumber string NMFC package number
package.packageHeader string Short title / header of the package definition
package.tariffIssue string Tariff issue number that introduced or last modified this package
package.packageDescriptions array Ordered list of description blocks
package.packageDescriptions[].type string Block type identifier (e.g., "paragraph", "list")
package.packageDescriptions[].title string Optional title for the block
package.packageDescriptions[].text string Full text content of the block

Code Examples

curl https://freightapis.dev/api/package/10 \
  -H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
GET /api/history/:num

Get Article Change History

Retrieve the complete change history for a single NMFC article, including every docket, issued date, subject line, and granular change detail records.

URL Parameters

Parameter Type Description
num required string NMFC article number (3–10 characters, e.g., 63321). Include only the base number, not the sub-item suffix.

Response Fields

Field Type Description
success boolean Indicates whether the request succeeded
articleNumber string The queried NMFC article number
articleChangeHistoryDetails array Ordered list of change history entries
articleChangeHistoryDetails[].docket string Docket identifier associated with this change
articleChangeHistoryDetails[].issuedDate string ISO 8601 date the change was issued
articleChangeHistoryDetails[].subject string Short description of the change subject
articleChangeHistoryDetails[].quickView string One-line summary of the change for display purposes
articleChangeHistoryDetails[].changeDetails array Granular list of individual changes within this entry
articleChangeHistoryDetails[].changeDetails[].description string Narrative description of the individual change
articleChangeHistoryDetails[].changeDetails[].typeOfProvision string Category of provision affected (e.g., "Item", "Note")
articleChangeHistoryDetails[].changeDetails[].item string Primary item identifier affected by the change
articleChangeHistoryDetails[].changeDetails[].alternateItem string Alternate or replacement item number, if applicable
articleChangeHistoryDetails[].changeDetails[].action string Type of action taken (e.g., "Added", "Amended", "Canceled")

Code Examples

curl https://freightapis.dev/api/history/63321 \
  -H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
POST /api/density

Density Calculator

Calculate freight density from dimensions and weight. Supports multiple handling units, various dimension units (Inch, Feet, Centimeter, Meter), and weight units (Pound, Kilogram).

Request Body

Parameter Type Required Description
dimensionType required string Inch, Feet, Centimeter, or Meter
weightType required string Pound or Kilogram
resultUnitType required string PoundsPerCubicFeet or KilogramPerCubicMeter
unitDimensions required array Array of unit dimension objects
unitDimensions[].HandlingUnitCount required number Number of identical handling units
unitDimensions[].length required number Length in specified dimension unit
unitDimensions[].width required number Width in specified dimension unit
unitDimensions[].height required number Height in specified dimension unit
unitDimensions[].handlingUnitWeight required number Total weight of all units combined

Response

Field Type Description
totalHandlingUnitCount number Sum of all handling unit counts
totalHandlingUnitCountVolume number Total volume in result units
totalHandlingUnitWeight number Total weight in result units
totalDensity number Overall density (weight / volume)
unitDimensions[] array Per-unit breakdown with volume and density

Examples

curl -X POST https://freightapis.dev/api/density \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "dimensionType": "Inch",
    "weightType": "Pound",
    "resultUnitType": "PoundsPerCubicFeet",
    "unitDimensions": [{
      "HandlingUnitCount": 1,
      "length": 48, "width": 40, "height": 36,
      "handlingUnitWeight": 500
    }]
  }'
POST /api/item680/:type

Item 680 Calculator

NMFC Item 680 Note calculators for determining freight class by volume, area, or dimension ratio. Three calculator types available: 2a (Volume), 2b (Area), 2c (Ratio).

URL Parameter

Type Endpoint Description
2aPOST /api/item680/2aVolume: commodity vs package volume comparison
2bPOST /api/item680/2bArea: commodity vs handling platform area comparison
2cPOST /api/item680/2cRatio: height to shortest dimension ratio calculation

Note 2A Request Body (Volume)

Parameter Type Description
commodity.length required number Commodity length
commodity.width required number Commodity width
commodity.height required number Commodity height
package.length required number Package length
package.width required number Package width
package.height required number Package height

Response: commodityVolume, packageVolume, percentageVolumeOccupiedByCommodity, isBelowThreshold

Note 2B Request Body (Area)

Parameter Type Description
commodity.length required number Commodity length
commodity.width required number Commodity width
handlingPlatformType.length required number Platform length
handlingPlatformType.width required number Platform width

Response: commodityArea, liftArea, percentageSurfaceAreaOccupiedByCommodity, isBelowThreshold

Note 2C Request Body (Ratio)

Parameter Type Description
length required number Commodity length
width required number Commodity width (shortest dimension)
height required number Commodity height
liftLength required number Lift platform length
liftWidth required number Lift platform width

Response: ratio, isAboveThreshold, maximumAllowableCalculations

Examples

# Note 2A — Volume comparison
curl -X POST https://freightapis.dev/api/item680/2a \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "commodity": {"length": 46, "width": 40, "height": 330},
    "package": {"length": 48, "width": 40, "height": 35}
  }'

# Note 2B — Area comparison
curl -X POST https://freightapis.dev/api/item680/2b \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "commodity": {"length": 38, "width": 32},
    "handlingPlatformType": {"length": 40, "width": 40}
  }'

# Note 2C — Dimension ratio
curl -X POST https://freightapis.dev/api/item680/2c \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"length":50,"width":42,"height":62,"liftLength":52,"liftWidth":45}'