Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/nmfta-carrier-api-standards-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Nmfta Carrier API Standards API
version: '1.0'
description: 'Operations tagged Carrier API Standards across 2 of this provider''s published API definitions: nmfta-dsdc-ftl-ebol-openapi.yml, nmfta-dsdc-ltl-ebol-2.1.0-openapi.yml. Each path carries the servers of the definition it was published in.'
tags:
- name: Carrier API Standards
description: Standards for Carrier APIs
paths:
/bol/v1/app:
post:
summary: Create/Update/Delete an Electronic Bill of Lading
operationId: bol
description: "## Request\n\nAs a Shipper/3rd Party, I want to Create/Update/Delete an Electronic Bill of Lading and send shipment\ninformation for a particular shipment to a Carrier.\n\n- In a request, the Shipper/3rd Party MUST identify themselves so the Carrier is aware of\nwho is sending the BOL information\n - Types of Roles: Shipper, Third Party, Consignee\n- In a request, the Shipper/3rd Party MUST provide a requested pickup date. The\nrequested pickup date MUST be in date/time format. The API will allow for a Pickup\nBegin and Pickup End date/time.\n - LTL Consideration: The requested pickup date is NOT a formal LTL Pickup\nRequest\n- In a request, the Shipper/3rd Party MUST designate the origin and destination for the\nshipment. This can be via a location id understood by both parties, or via the address of\nthe location.\n- In a request, the Shipper/3rd Party MAY designate whether or not they want an image of\nthe BOL and/or Shipping Labels returned in the response.\n- In a request, the Shipper/3rd Party MAY designate a reference number associated with\ntheir shipment.\n- In a request, the Shipper/3rd Party MUST specify freight Billing terms for the shipment.\n- In a request, the Shipper/3rd Party MUST specify the Billing information for the shipment,\nincluding name, address, and contact information.\n- In a request, a Shipper/3rd Party MAY provide special shipment requirements that would\nindicate if accessorials are needed.\n - Examples Include, but not limited to:\n - Limited Access\n - Time Critical\n - Lift Gate Required\n - Expedite\n- In a request, the Shipper/3rd Party MUST specify the commodity of the freight being\nshipped.\n - LTL Consideration: The classification of LTL commodities MUST be included for\nan LTL shipment\n- In a request, additional details on the shipment MAY be included. The API will allow for\ninformation to be provided at both the commodity level, as well as at the total shipment\nlevel.\n - LTL Consideration: The weight, handling units, and dimensions of an LTL\nshipment MUST be included\n - Examples include:\n - Weight\n - Handling Units\n - Linear Length\n - Overall Dimensions\n- Shipper/3rd Party SHOULD provide details for a HAZMAT shipment. This information\nwith be conditionally required based on U.S. Department of Transportation's (DOT)\nHazardous Materials Regulations (49 CFR Parts 171-180). This includes:\n - Hazardous Description\n - Total Quantity\n - Weight or Volume (i.e. lbs, kilograms, liters, etc.)\n - Hazard class or Division\n - Identification Number (UN/NA)\n - Proper Name\n - Technical Name\n - Packaging Group\n - Emergency Response\n - 24-Hour Emergency Response\n - Emergency Response Guidebook (ERG) Guide Number\n - Marine Pollutant Marking\n - Contact Number\n- Shipper/3rd Party SHOULD provide Total Shipment Value in a designated currency (USD\nas an option) for high value shipments that may require additional considerations by the\nCarrier.\n\n## Response\n\nAs a Carrier, I want to respond to the Shipper/3rd Party who created the electronic Bill of Lading\nand either accept or reject, as well as provide a unique shipment identifier associated with the\nshipment.\n\n- In a response, the Carrier must indicate if the eBOL was successfully accepted\n - Reasons an eBOL request would be rejected:\n - Not enough information provided in eBOL request\n - Internal error in Carrier system (example: PRO number Shipper sent\n already associated with a different shipment)\n- In a response, the Carrier MUST provide the timestamp of the transaction date for the\nelectronic bill of lading.\n- In a response, the Carrier MUST designate a reference number to uniquely identify the\nshipment, if one was not provided in the request.\n - If a reference number was provided in the request, then it MUST be provided in\n the response.\n - Reference Best Practices for list of available reference number types.\n- The Carrier MUST provide BOL details in the response, and MUST provide a PDF image\nof the BOL and Shipping labels if requested in the Request body.\n"
tags:
- Carrier API Standards
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: ./schemas/external-specs/ltl-ebol-2.1.0-openapi.yaml#/components/schemas/BOL_Request
- $ref: '#/components/schemas/FTL_BOL_Request'
responses:
'200':
description: Successful response
content:
application/json:
schema:
oneOf:
- $ref: ./schemas/external-specs/ltl-ebol-2.1.0-openapi.yaml#/components/schemas/BOL_Response
- $ref: '#/components/schemas/FTL_BOL_Response'
'400':
description: Error response
content:
application/json:
schema:
type: array
items:
oneOf:
- $ref: ./schemas/external-specs/ltl-ebol-2.1.0-openapi.yaml#/components/schemas/Result_Status_Codes
- $ref: ./schemas/ftl.yaml#/components/schemas/Result_Status_Codes
/bol/v1/app/:
post:
summary: Create an Electronic Bill of Lading
tags:
- Carrier API Standards
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BOL_Request'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BOL_Response'
'400':
description: Error response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Result_Status_Codes'
/bol/v1/app/{pro}:
put:
summary: Update an Electronic Bill of Lading
tags:
- Carrier API Standards
description: This operation updates an existing Electronic Bill of Lading.
parameters:
- in: path
name: pro
schema:
type: string
required: true
description: PRO Number of eBOL to update.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BOL_Request'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BOL_Response'
'400':
description: Error response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Result_Status_Codes'
'404':
description: eBOL not found.
delete:
summary: Delete an Electronic Bill of Lading
description: This operation deletes an existing Electronic Bill of Lading.
parameters:
- in: path
name: pro
schema:
type: string
required: true
description: PRO Number of eBOL to delete.
operationId: ''
tags:
- Carrier API Standards
responses:
'200':
description: Successful response.
'404':
description: eBOL not found.
'400':
description: Error response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Result_Status_Codes'
components:
schemas:
FTL_BOL_Response:
allOf:
- type: object
properties:
version:
$ref: '#/components/schemas/FTL_Version'
- $ref: ./schemas/ftl.yaml#/components/schemas/BOL_Response
FTL_Version:
title: Version
type: string
description: 'Indicates which version of the Digital FTL Council Bill of Lading spec you are consuming
'
enum:
- 1.0.0-TL
FTL_BOL_Request:
allOf:
- type: object
required:
- bol
- version
properties:
bol:
allOf:
- type: object
required:
- function
properties:
function:
type: string
description: 'The intent for the submitted request.
'
enum:
- Create
- Update
- Delete
- $ref: ./schemas/ftl.yaml#/components/schemas/BOL_Header
version:
$ref: '#/components/schemas/FTL_Version'
- $ref: ./schemas/ftl.yaml#/components/schemas/BOL_Request
BOL_Response:
title: LTL BOL Response
type: object
properties:
version:
type: string
example: 2.1.0
description: Indicates which version of the Digital LTL Council Bill of Lading spec was returned
transactionDate:
type: string
example: '2022-11-20T00:00:00.000'
description: The date associated with this electronic bill of lading transaction.
referenceNumbers:
type: object
properties:
pro:
type: string
example: PRO1234
description: Shipper's pre-assigned PRO number for the requested carrier. If one was not provided in the request, one will be auto assigned by the carrier.
shipmentConfirmationNumber:
type: string
example: SCN1234
description: Number provided by the carrier to acknowledge they accepted the BOL.
scac:
type: string
example: AAAB
description: 4-letter, Standard Carrier Alpha Code, returned by the carrier.
images:
type: object
properties:
bol:
type: string
description: Base 64 encoded PDF of the populated Bill Of Lading. Any bar code within the image(s) should include the check digit when applicable.
example: JVBERi0xLjcKCjQgMCBvYmoKPDwKL0JpdHNQZXJDb21wb25lbnQgOAovQ29sb3JTcGFjZSAvRGV2a......
shippingLabels:
type: string
description: Base 64 encoded PDF of the populated shipping Labels. Any bar code within the image(s) should include the check digit when applicable.
example: JVBERi0xLjcKCjQgMCBvYmoKPDwKL0JpdHNQZXJDb21wb25lbnQgOAovQ29sb3JTcGFjZSAvRGV2a......
termsAndConditions:
type: string
example: Terms and Conditions text available for download at www.myurl-nmfta.org
description: 'Add terms and conditions here if desired, or a link to your terms and conditions. '
messageStatus:
type: object
description: Object containing message status details.
properties:
status:
type: string
description: 'Indicates the status of the request. <br><br>
PASS - Request is successful with no exceptions.<br>
FAIL - Request is unsuccessful due to some exception.<br>
WARNING - Request is successful with some exception.
'
example: PASS
code:
type: string
description: Indicates response detail code.
example: '10000000'
message:
type: string
description: Provides information pertaining to the response code.
example: Transaction was successful.
resolution:
type: string
description: Provides guidance pertaining to the response code.
example: ''
information:
type: array
items:
type: object
properties:
code:
type: string
type:
type: string
message:
type: string
example: []
resultStatusCodes:
description: Error response
type: array
items:
$ref: '#/components/schemas/Result_Status_Codes'
BOL_Request:
title: LTL BOL Request
description: Objects and/or attributes that are required are indicated by a _**red asterisk**_*. For those that are conditionally required, it will be indicated within their description, including the condition in which they are required.
type: object
required:
- bol
- version
- commodities
- payment
- origin
- destination
- billTo
properties:
bol:
type: object
required:
- function
- requestedPickupDate
- isTest
- requestorRole
properties:
requestedPickupDate:
type: string
example: '2022-11-20T00:00:00.000'
description: 'The intended Ship Date. NOTE this does not serve as a Pickup Request
Valid Formats:
* YYYY-MM-DDTHH:mm:ss.sss (ISO 8601)
'
function:
type: string
example: Create
description: 'The intent for the submitted request.
Valid Values:
* Create - Used for initial creation
'
isTest:
type: boolean
example: true
description: Indicates whether or not the submitted request is intended to be a test or not.
requestorRole:
type: string
example: Third Party
description: 'Identifies the party making the request.
Valid Values: See Requestor_Roles schema at the bottom of this page.
'
specialInstructions:
type: string
example: Gate code 123 to enter complex
description: 'Special delivery instructions that need to be followed for the shipment''s delivery. '
version:
type: string
example: 2.1.0
description: 'Indicates which minor version of the Digital LTL Council Bill of Lading spec you are consuming
Valid values: 2.0.0, 2.0.1, 2.1.0
'
images:
type: object
properties:
includeBol:
type: boolean
description: "Indicates whether or not you want an image of the populated BOL returned in the response. \n\nDefault is false.\n"
example: true
includeShippingLabels:
type: boolean
description: "Indicates whether or not you want image(s) of the shipping labels returned in the response. \n\nDefault is false.\n"
example: true
shippingLabels:
type: object
properties:
format:
type: string
description: "Specifies the printer format type for the labels. \nRequired when images.includeShippingLabels is true. \nValid Values: See the Shipping_Label_Formats schema at the bottom of this page.\n"
example: Avery
quantity:
type: integer
description: "Specifies the quantity of pages desired. \n\nRequired when images.includeShippingLabels is true.\n"
example: 5
position:
type: integer
description: "Specifies the starting position for the shipping labels.\n\nRequired when images.shippingLabel is Avery. \n\nValid Values:\n* 1 - 6\n"
example: 2
email:
type: object
properties:
includeBol:
type: boolean
description: 'Used to request the bill of lading PDF to be sent to one or more email addresses
'
example: true
includeLabels:
type: boolean
description: 'Used to request the shipping labels PDF to be sent to one or more email addresses
'
example: true
addresses:
type: array
description: 'Provide one or more email addresses to receive the bol and/or shipping labels PDF
'
items:
type: string
example:
- dispatch@shipper.com
notifications:
type: array
description: include if you want notifications of shipment movements by text message or email
items:
type: object
properties:
phoneNumber:
type: string
description: Phone number of contact for updates about shipment movements
example: '8881234567'
email:
type: string
description: Email address of contact for updates about shipment movements
example: dispatch@consignee.com
referenceNumbers:
type: object
properties:
pro:
type: string
description: Shipper's pre-assigned PRO number for the requested carrier. If one was not provided in the request, one will be auto assigned by the carrier. The PRO number value should include the check digit when applicable.
example: 123456-7
quoteId:
type: string
description: Quote (estimate) number provided by the carrier after submitting a rate quote request.
example: E556724
shipmentId:
type: string
description: Shipment Id (SID) number for the shipment.
example: SID9743985
masterBol:
type: string
description: Master Bill of Lading number for the shipment.
example: MBL98472587
trailerId:
type: string
description: When passed, indicates that the shipment is associated to a specific, spotted trailer.
manifestId:
type: string
description: When passed, indicates that the shipment is associated to a manifest that includes multiple shipments, possibly across multiple spotted trailers.
bol:
type: array
items:
type: string
example:
- BL19498432
- BL99744565
po:
type: array
items:
type: object
properties:
number:
type: string
example: '554238'
description: The Purchase Order number.
pieces:
type: integer
example: 5
description: Total pieces associated with the Purchase Order
weight:
type: integer
example: 150
description: Total weight associated with the Purchase Order
weightUnit:
type: string
example: Pounds
description: "The unit of measurement for weight. Defaults to Pounds (Imperial) if not passed.\n\nValid Values: Pounds or Kilograms \n"
palletized:
type: boolean
example: true
description: Indicates whether or not the pieces associated with the purchase order are on a pallet/slip/skid or not.
additionalShipperInfo:
type: string
example: Freight must always stay upright
description: Additional information from shipper per line item
additionalReferences:
type: array
items:
type: object
properties:
name:
type: string
example: Customer Reference Id
description: 'Indicates the name of the reference number being provided.
'
value:
type: string
example: CRID3452-01
description: Additional reference number that correlates to the additional reference name.
payment:
type: object
required:
- terms
properties:
terms:
type: string
example: Prepaid
description: 'Freight Billing Terms for the shipment
Valid Values: See the Payment_Terms schema at the bottom of this
page.
'
commodities:
type: object
required:
- lineItemLayout
- handlingUnits
- lineItems
properties:
lineItemLayout:
type: string
example: Nested
description: '
Valid values: Nested or Stacked
Nested: Indicates if the Handling Unit/Line Item relationship is
known. If this value is used, each Line Item associated to a
Handling Unit is conditionally required to be passed within that
Handling Unit''s object.
Stacked: Indicates if the Handling Unit/Line Item relationship
is not known. If this value is used, Line Items may passed
within any Handling Unit object.
'
handlingUnits:
type: array
items:
type: object
required:
- count
- type
- weight
properties:
count:
type: integer
example: 2
description: Number of handling units being described
type:
type: string
example: SKD
description: 'Type of the handling units being described
Valid Values: See the Handling_Unit_Types schema at the
bottom of this page
'
tareWeight:
type: integer
example: 5
description: Weight of the skids/pallets/slips used in the shipment.
weight:
type: integer
description: Total weight for the specified handling units.
example: 1500
weightUnit:
type: string
example: Pounds
description: "The unit of measurement for weight. Defaults to Pounds (Imperial) if not passed.\n\nValid Values: Pounds or Kilograms \n"
length:
type: integer
example: 48
description: The length of the handling units being described.
width:
type: integer
example: 48
description: The width of the handling units being described.
height:
type: integer
example: 48
description: The height of the handling units being described.
dimensionsUnit:
type: string
example: Inches
description: 'The unit of measurement for dimensions. Defaults to Inches (Imperial) if not passed.
Valid Values: Inches or Centimeters
'
stackable:
type: boolean
example: false
description: 'Identifies whether or not the freight being described can be stacked on one another.
Default is false.
'
lineItems:
type: array
items:
type: object
required:
- weight
- classification
- description
- hazardous
- stackable
- pieces
- packagingType
properties:
description:
type: string
example: Small frameless mirrors
description: Description of the freight being described.
weight:
type: integer
example: 1500
description: Total weight for the specified lineItem.
weightUnit:
type: string
example: Pounds
description: 'The unit of measurement for weight. Defaults to Pounds (Imperial) if not passed.
Valid Values: Pounds or Kilograms
'
pieces:
type: integer
example: 3
description: Number of individual pieces for the line item being described.
packagingType:
type: string
example: BOX
description: 'Packaging type for the individual pieces of the line item being described.
Valid Values: See the Packaging_Types schema at the
bottom of this page
'
classification:
type: string
example: '55'
description: 'Classification of the line item being described.
Valid Values: See the Classification_Codes schema at
the bottom of this page.
'
nmfc:
type: string
description: NMFC code of the freight being described.
example: '86900'
nmfcSub:
type: string
description: The Sub value for the NMFC of the freight being described.
example: '3'
hazardous:
type: boolean
example: true
description: Identifies whether or not the freight being described contains hazardous materials.
hazardousDescription:
type: string
example: UN 1090, Acetone, 3, PG II
description: Conditionally required when 'hazardous' is 'true'. Provides a detailed description of the hazardous item.
hazardousDetails:
type: object
properties:
weight:
type: integer
example: 45
description: Total weight of hazardous material coveraged by one description.
weightUnit:
type: string
example: Pounds
description: "The unit of measurement for weight. Defaults to Pounds (Imperial) if not passed.\n\nValid Values: Pounds or Kilograms \n"
class:
type: string
example: '3'
description: Class that the hazardous material is catogorized by.
unnaNumber:
type: string
example: UN1234
description: Proper Identification Number (UN or NA) corresponding to the Proper Shipping Name
propername:
type: string
example: Anhydrous ammonia
description: 'Proper shipping name for the hazardous material.
From DOT regulations 172.101
'
technicalName:
type: string
example: NH3
description: 'Technical name for the hazardous material. Not all hazardous items will have a technical name.
From DOT regulations 172.101
'
packingGroup:
type: string
example: '2'
description: Hazmat Packing Group number. Not all hazmat items have a packing group
contractNumber:
type: string
example: '54321'
description: The contract number with the hazardous materials contact
shipmentTotals:
type: object
properties:
grossWeight:
type: integer
example: 2000
description: Total weight of the entire shipment, including handling units (tare weight).
netWeight:
type: integer
example: 1993
description: Total weight of the entire shipment, not including handling units (tare weight).
weightUnit:
type: string
example: Pounds
description: 'The unit of measurement for weight. Defaults to Pounds (Imperial) if not passed.
Valid Values: Pounds or Kilograms
'
handlingUnits:
type: integer
example: 2
description: Handling unit count for the entire shipment
linearLength:
type: integer
description: Linear length for the entire shipment
example: 96
dimensionsUnit:
type: string
example: Inches
description: 'The unit of measurement for dimensions. Defaults to Inches (Imperial) if not passed.
Valid Values: Inches or Centimeters
'
cube:
type: integer
example: 128
description: Cubic volume of the entire shipment (total length X total width X total height).
cubeDimensionsUnit:
type: string
example: Feet
description: 'The unit of measurement for cubic dimensions. Defaults to Feet (Imperial) if not passed.
Valid Values: Feet or Meters
'
declaredValue:
type: integer
example: 7
description: Total monetary value of the shipment in USD (sometimes needed for cross-border moves).
currency:
type: string
example: USD
description: 'Optional attribute to indicate currency of declaredValue.
Defaults to USD.
Valid values: See the Currencies schema at the bottom of this
page.
'
accessorials:
type: object
properties:
codes:
type: array
descri
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nmfta/refs/heads/main/openapi/nmfta-carrier-api-standards-api-openapi.yml