/api/article/:num
Developer Reference
API Documentation
Everything you need to integrate NMFC data into your application. The REST API accepts JSON requests and returns JSON responses.
Introduction
The NMFC Lookup API provides programmatic access to the National Motor Freight Classification database, Amazon drop point locations, ABF Freight location data, and Central Transport terminal data. All endpoints share a single, consistent REST interface.
Base URL
https://freightapi.dev/api
Response Format
JSON
Authentication
Bearer token
All requests must include a valid API key. Requests without authentication will return
401 Unauthorized.
Authentication
Authenticate by passing your API key in the Authorization header
as a Bearer token. API keys are prefixed with nmfc_live_.
Request Header
Authorization:
Bearer YOUR_API_KEY
You can generate and manage API keys from your dashboard after signing up. Each key is displayed only once at creation time — store it securely.
curl https://freightapi.dev/api/article/63321 \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
Rate Limits
API usage is metered monthly per account. When you exceed your plan's limit the API returns
429 Too Many Requests.
Limits reset on the first day of each calendar month (UTC).
| Plan | Requests / Month | Notes |
|---|---|---|
| Free | 5 | Good for prototyping |
| Starter | 1,000 | For developers building freight tools |
| Pro | 5,000 | Production workloads |
| Enterprise | Unlimited | SLA + priority support |
Every API response includes the following rate-limit headers:
| Header | Description |
|---|---|
X-RateLimit-Limit |
Maximum requests allowed in the current period |
X-RateLimit-Remaining |
Requests remaining in the current period |
Error Codes
The API uses standard HTTP status codes. Error responses always include a JSON body with an
error
field containing a human-readable message.
{
"error": "Invalid API key"
}
| Status | Meaning | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 400 | Bad Request | Invalid parameters or malformed request body |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | Your current plan does not include access to this endpoint |
| 404 | Not Found | The requested resource does not exist |
| 429 | Rate Limit Exceeded | You have exceeded your monthly request quota |
| 500 | Internal Server Error | An unexpected error occurred on our end |
/api/search
Search Articles
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://freightapi.dev/api/search \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"q": "frozen food", "page": 1}'
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://freightapi.dev/api/article/63321 \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/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. Requires a Pro or higher plan.
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://freightapi.dev/api/rule/100 \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/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. Requires a Pro or higher plan.
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://freightapi.dev/api/package/10 \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/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. Requires a Pro or higher plan.
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://freightapi.dev/api/history/63321 \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/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://freightapi.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
}]
}'
/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 |
|---|---|---|
| 2a | POST /api/item680/2a | Volume: commodity vs package volume comparison |
| 2b | POST /api/item680/2b | Area: commodity vs handling platform area comparison |
| 2c | POST /api/item680/2c | Ratio: 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://freightapi.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://freightapi.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://freightapi.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}'
/api/drop-points?zip=:zip
Get Drop Points by Zip Code
Retrieve Amazon drop-off / pickup locations near a given US zip code, sorted by proximity. Results are paginated (25 per page).
Query Parameters
| Parameter | Type | Description |
|---|---|---|
zip
required
|
string
|
5-digit US zip code (e.g., 90001) |
page
optional
|
integer
|
Page number for pagination (default: 1) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
zip
|
string
|
The queried zip code |
dropPoints
|
array
|
List of nearby drop point locations |
dropPoints[].accessPointId
|
string
|
Unique UUID identifier for the drop point |
dropPoints[].name
|
string
|
Store name (e.g., "Staples-Torrance") |
dropPoints[].chainStoreId
|
string
|
Chain store identifier (e.g., CC0090) |
dropPoints[].address
|
object
|
Address with line1, city, state, zipCode, country |
dropPoints[].phone
|
string
|
Store phone number |
dropPoints[].location
|
object
|
Geocode with latitude and longitude |
dropPoints[].timezone
|
string
|
IANA timezone (e.g., US/Pacific) |
dropPoints[].operatingHours
|
object
|
Weekly operating hours keyed by day name |
dropPoints[].email
|
string
|
Store contact email |
dropPoints[].type
|
string
|
Access point type (e.g., HELIX) |
dropPoints[].isStaffAssisted
|
boolean
|
Whether staff assistance is available |
dropPoints[].tags
|
array
|
Tags (e.g., ["Store"]) |
total
|
integer
|
Total number of matching drop points |
currentPage
|
integer
|
Current page number |
totalPages
|
integer
|
Total number of pages |
Code Examples
curl "https://freightapi.dev/api/drop-points?zip=90001" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/drop-points/:id
Get Drop Point Detail
Retrieve full details for a single Amazon drop point by its unique access point ID.
URL Parameters
| Parameter | Type | Description |
|---|---|---|
id
required
|
string
|
UUID of the access point (e.g., deade3db-2d3a-4ccb-9983-0c695dfbc06a) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
dropPoint
|
object
|
Full drop point object (same structure as items in the dropPoints array above) |
Code Examples
curl https://freightapi.dev/api/drop-points/deade3db-2d3a-4ccb-9983-0c695dfbc06a \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/drop-points/search?q=:query
Search Drop Points
Search Amazon drop points by name or city. Returns paginated results matching the keyword. Requires a Pro or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
q
required
|
string
|
Search keyword (minimum 2 characters). Matches against store name and city. |
page
optional
|
integer
|
Page number for pagination (default: 1) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
query
|
string
|
The search keyword used |
dropPoints
|
array
|
Matching drop point objects |
total
|
integer
|
Total number of matching results |
currentPage
|
integer
|
Current page number |
totalPages
|
integer
|
Total number of pages |
Code Examples
curl "https://freightapi.dev/api/drop-points/search?q=Torrance" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/abf-location?zip=:zip&city=:city
ABF Location by ZIP Code
Look up ABF Freight service coverage for a US ZIP code. Returns station info, service type, daily schedule, and transit add-on days.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
zip
required
|
string
|
5-digit US ZIP code |
city
optional
|
string
|
City name to disambiguate multi-city ZIPs |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
zip
|
string
|
The queried ZIP code |
status
|
string
|
served | multi_city | not_served |
location
|
object
|
Location with station details (when status=served) |
cities
|
array
|
Array of candidate cities (when status=multi_city) |
message
|
string
|
Human-readable status message |
Code Examples
curl "https://freightapi.dev/api/abf-location?zip=00501" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/abf-location/search?q=:query
Search ABF Locations
Search ABF Freight locations by city or state. Returns paginated results matching the query. Requires a Starter or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
q
required
|
string
|
Search query (minimum 2 characters). Matches city and state. |
page
optional
|
integer
|
Page number for pagination (default: 1) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
query
|
string
|
The search query used |
locations
|
array
|
Matching ABF location objects |
total
|
integer
|
Total number of matching results |
currentPage
|
integer
|
Current page number |
totalPages
|
integer
|
Total number of pages |
Code Examples
curl "https://freightapi.dev/api/abf-location/search?q=miami" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/abf-location/station/:num
Station Lookup
Retrieve all ZIP code locations served by a specific ABF Freight station number. Requires a Pro or higher plan.
URL Parameters
| Parameter | Type | Description |
|---|---|---|
num
required
|
string
|
ABF station number |
page
optional
|
integer
|
Page number for pagination (default: 1) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
stationNumber
|
string
|
The queried station number |
locations
|
array
|
Array of ABF location objects served by this station |
total
|
integer
|
Total number of locations served |
currentPage
|
integer
|
Current page number |
totalPages
|
integer
|
Total number of pages |
Code Examples
curl "https://freightapi.dev/api/abf-location/station/219" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/abf-location/batch
Batch ZIP Lookup
Look up ABF Freight coverage for multiple ZIP codes in a single request. Requires a Pro or higher plan.
Request Body
| Parameter | Type | Description |
|---|---|---|
zips
required
|
string[]
|
Array of 5-digit ZIP codes. Max 20 for Pro, 50 for Enterprise. |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
results
|
object
|
Map of ZIP to {status, location} |
summary
|
object
|
{served, multi_city, not_served, total} |
Code Examples
curl -X POST "https://freightapi.dev/api/abf-location/batch" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"zips": ["00501", "00907", "90001"]}'
/api/abf-location/coverage?state=:state
State Coverage
Retrieve ABF Freight service coverage statistics for a US state. Requires a Pro or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
state
required
|
string
|
2-letter US state code (e.g., TX) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
state
|
string
|
The queried state code |
totalLocations
|
integer
|
Total number of served locations in the state |
serviceBreakdown
|
object
|
{Direct, DirectViaMarketingPartner, Connect} |
unservedZips
|
integer
|
Number of ZIP codes in the state with no ABF service |
Code Examples
curl "https://freightapi.dev/api/abf-location/coverage?state=TX" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/abf-location/service-days?zip=:zip
Service Days
Retrieve the pickup and delivery schedule for a specific ZIP code. Requires a Starter or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
zip
required
|
string
|
5-digit US ZIP code |
city
optional
|
string
|
City name to disambiguate multi-city ZIPs |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
zip
|
string
|
The queried ZIP code |
city
|
string
|
City name for this location |
state
|
string
|
2-letter state code |
schedule
|
object
|
7-day pickup/delivery schedule keyed by day name |
nextPickupDay
|
string
|
Next available pickup day |
nextDeliveryDay
|
string
|
Next available delivery day |
Code Examples
curl "https://freightapi.dev/api/abf-location/service-days?zip=47524" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/abf-location/transit-info?origin_zip=:zip&dest_zip=:zip
Transit Info
Retrieve transit add-on day information between an origin and destination ZIP code pair. Requires a Starter or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
origin_zip
required
|
string
|
5-digit origin ZIP code |
dest_zip
required
|
string
|
5-digit destination ZIP code |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
origin
|
object
|
Origin location details with station info |
destination
|
object
|
Destination location details with station info |
totalAddOnDays
|
integer | null
|
Sum of inbound and outbound add-on days, or null if either ZIP is unserved |
bothServed
|
boolean
|
Whether both origin and destination are served by ABF |
Code Examples
curl "https://freightapi.dev/api/abf-location/transit-info?origin_zip=00501&dest_zip=87012" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/abf-location/carriers?zip=:zip
Carrier Info
Retrieve carrier and service type details for a ZIP code, including SCAC code, service classification, and add-on day counts. Requires a Pro or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
zip
required
|
string
|
5-digit US ZIP code |
city
optional
|
string
|
City name to disambiguate multi-city ZIPs |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
zip
|
string
|
The queried ZIP code |
city
|
string
|
City name for this location |
state
|
string
|
2-letter state code |
serviceType
|
string
|
ABF service type (e.g., Direct, Connect) |
carrier
|
object
|
{scac, isDirect, isPartner, isConnect} |
addOnDays
|
object
|
{inbound, outbound} |
stationNumber
|
string
|
Serving ABF station number |
Code Examples
curl "https://freightapi.dev/api/abf-location/carriers?zip=87012" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/ct-location?zip=:zip&city=:city
CT Location by ZIP Code
Look up Central Transport service coverage for a US ZIP code. Returns terminal info, service type, and timezone data.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
zip
required
|
string
|
5-digit US ZIP code |
city
optional
|
string
|
City name to disambiguate multi-city ZIPs |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
zip
|
string
|
The queried ZIP code |
status
|
string
|
served | multi_city | not_served |
location
|
object
|
Location with terminal details (when status=served) |
cities
|
array
|
Array of candidate cities (when status=multi_city) |
message
|
string
|
Human-readable status message |
Code Examples
curl "https://freightapi.dev/api/ct-location?zip=08807" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/ct-location/search?q=:query
Search CT Locations
Search Central Transport locations by city or state. Returns paginated results matching the query. Requires a Starter or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
q
required
|
string
|
Search query (minimum 2 characters). Matches city and state. |
page
optional
|
integer
|
Page number for pagination (default: 1) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
query
|
string
|
The search query used |
locations
|
array
|
Matching CT location objects |
total
|
integer
|
Total number of matching results |
currentPage
|
integer
|
Current page number |
totalPages
|
integer
|
Total number of pages |
Code Examples
curl "https://freightapi.dev/api/ct-location/search?q=dallas" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/ct-location/terminal/:num
Terminal Lookup
Retrieve all ZIP code locations served by a specific Central Transport terminal number. Requires a Pro or higher plan.
URL Parameters
| Parameter | Type | Description |
|---|---|---|
num
required
|
string
|
CT terminal number |
page
optional
|
integer
|
Page number for pagination (default: 1) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
terminalNumber
|
string
|
The queried CT terminal number |
locations
|
array
|
Array of CT location objects served by this terminal |
total
|
integer
|
Total number of locations served |
currentPage
|
integer
|
Current page number |
totalPages
|
integer
|
Total number of pages |
Code Examples
curl "https://freightapi.dev/api/ct-location/terminal/089" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"
/api/ct-location/batch
Batch ZIP Lookup
Look up Central Transport coverage for multiple ZIP codes in a single request. Requires a Pro or higher plan.
Request Body
| Parameter | Type | Description |
|---|---|---|
zips
required
|
string[]
|
Array of 5-digit ZIP codes. Max 20 for Pro, 50 for Enterprise. |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
results
|
object
|
Map of ZIP to {status, location} |
summary
|
object
|
{served, multi_city, not_served, total} |
Code Examples
curl -X POST "https://freightapi.dev/api/ct-location/batch" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"zips": ["08807", "75201", "90001"]}'
/api/ct-location/coverage?state=:state
State Coverage
Retrieve Central Transport service coverage statistics for a US state. Requires a Pro or higher plan.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
state
required
|
string
|
2-letter US state code (e.g., NJ) |
Response Fields
| Field | Type | Description |
|---|---|---|
success
|
boolean
|
Indicates whether the request succeeded |
state
|
string
|
The queried state code |
totalZips
|
integer
|
Total number of ZIP codes queried in the state |
directService
|
integer
|
Number of ZIPs with direct CT service |
indirectService
|
integer
|
Number of ZIPs with indirect CT service |
Code Examples
curl "https://freightapi.dev/api/ct-location/coverage?state=NJ" \
-H "Authorization: Bearer nmfc_live_xxxxxxxxxxxxxxxxxxxx"