Terminal49 gets data from variety of sources in order to create a complete view of a shipment and containers. However, some data is not universally available from all sources, and some data does not become available until certain milestones pass. This page will help you understand which data sources we support, and which data items should be universally expected.
Data Sources
Ocean carriers (aka steamship lines): bill of lading/booking details, vessel eta, containers and milestones
Container terminal operators: container availability, last free day, holds, fees etc
Container rail carriers: container milestones via rail
AIS data: vessel details and real-time location tracking (coming soon!)
Direct Class 1 Rail Data: Rail Loaded, Departed, Arrived, Rail Unloaded, pickup facility, container availability and LFD
โNote: Rail milestones are available with Terminal49's Rail Visibility add-on. Should you wish to turn on the rail beta on your account, please reach out to [email protected].
Supported Ocean Carriers
Terminal49 is integrated with all major ocean carriers, providing coverage for 98% of ocean shipments worldwide.
Every shipping line provides slightly different data.
You can see all supported carriers and which data points are available for each one at this link.
Ports and Terminals
Terminal49 is currently integrated with all port terminals in the US and Canada. You can see a list of all supported terminals and their specific attributes at this link.
Rail Carriers
Terminal49 is currently integrated with 6 rail carriers. You can see a list of all supported carriers at this link.
Data Fields & Availability
Below is a list of data that can be retrieved via the API, including whether is is always available, or whether it is only supported by certain carriers (Carrier Dependent), certain Terminals (Terminal Dependent) or on certain types of journeys (Journey dependent).
Shipment Data
Shipment Data is the primary data that comes from the Carrier. It containers the details of the shipment retrieved from the Bill of Lading, and references multiple container objects.
DATA | AVAILABILITY | MORE DETAILS | NOTES |
Port of Lading | Always | Port of Lading name, Port of Lading UN/LOCODE, Port of Lading Timezone |
|
Port of Discharge | Always | Port of Discharge name, Port of discharge UN/LOCODE,Port of Discharge Timezone |
|
Final Destination beyond Port of Discharge | Carrier dependent, Journey Dependent | ,Destination name, Destination UN/LOCODE, Destination UN/LOCODE, Destination Timezone | Only for shipments with inland moves provided by or booked by the carrier. |
Listing of Container Numbers | Always | A list of container numbers with data attributes listed below |
|
Bill of Lading Number | Always (inputted by user) | BOL |
|
Shipping Line Details | Always | SCAC, SSL Name |
|
Voyage Details | Milestone-based | Vessel Name, Vessel IMO, Voyage Number |
|
Estimated Time of Departure | Carrier dependent | Timestamp |
|
Actual Time of Departure | Always | Timestamp | After departure |
Estimated Time of Arrival at Port of Discharge | Carrier dependent | Timestamp |
|
Actual Time of Arrival at Port of Discharge | Always | Timestamp | Available after arrival |
Estimated Time of Arrival at Final Destination | Carrier dependent, Journey dependent | Timestamp | Only for vessels with inland moves. |
Container Data
At the container level, the following data is available. Container data is combined from all sources to create a single data view of the container. As such some of this data will only available when certain milestones have passed.
DATA | AVAILABILITY | MORE DETAILS | NOTES |
Container Number | Always | number |
|
Seal Number | Carrier dependent | number |
|
Equipment Type | Always | Dry, reefer, open top, flat rack, tank, hard top | Enumerated data type |
Equipment length | Always | 20, 40, 45, 50 | Enumerated Data Type |
Equipment height | Always | Standard, high cube | Enumerated Data Type |
Weight | Carrier Dependent | Number |
|
Terminal Availability | Always | Availability Known, Availability for Pickup |
|
Holds | Terminal Dependent | Array of statuses | Each status includes the hold name (one of: customs, freight, TMF, other, USDA) and the status (pending, hold) as well as any extra description |
Fees | Terminal Dependent | Array of statuses | Each status includes the fee type (one of: Demurrage, Exam, Other) and the amount the hold is for (a float) |
Last Free Day | Terminal Dependent | Date of last free day |
|
Arrived at Port of Discharge | Always | Once Arrived |
|
Discharged at Port of Discharge | Always | Once discharged |
|
Full Out at Port of Discharge | Always |
|
|
Full out at final destination | Journey Dependent | Only if non-port final destination |
|
Milestone Event Data
When a milestone passes, the Terminal49 API will ping one of your webhooks with a Milestone event. For each milestone, the following data is always provided. Container, Shipment, Vessel, Location and Terminal data will be provided as objects that contain the information listed above.
MILESTONE DATA | DESCRIPTION |
Event Name | the name of the event. e.g. 'container.transport.vessel_loaded' |
Created At | when the event was created in our system |
Timestamp | when the event occured |
Timezone | Which timezone did the event occur in. |
Voyage Number | the voyage number of the vessel |
Container | A link to the Container Data |
Shipment | A link to the Shipment Data |
Vessel | Which vessel did the event occur on. |
Location | Where did the event oocur. |
Terminal | Which terminal did this occur at. |
Milestones Events Supported
A list of milestones that the API can track, as well as the event name used in the API. In future, further events may be supported.
MILESTONE EVENT NAME | EVENT NAME |
Vessel Loaded | container.transport.vessel_loaded |
Vessel Departed | container.transport.vessel_departed |
Vessel Arrived | container.transport.vessel_arrived |
Vessel Berthed | container.transport.vessel_berthed |
Vessel Discharged | container.transport.vessel_discharged |
Empty Out | container.transport.empty_oud |
Full In | container.transport.full_id |
Full Out | container.transport.full_out |
Empty In | container.transport.empty_id |
Rail Departed | container.transport.rail_departed |
Rail Arrived | container.transport.rail_arrived |
Rail Loaded | container.transport.rail_loaded |
Rail Unloaded | container.transport.rail_unloaded |
Transshipment Arrived | container.transport.transshipment_arrived |
Transshipment Discharged | container.transport.transshipment_discharged |
Transshipment Loaded | container.transport.transshipment_loaded |
Transshipment Departed | container.transport.transshipment_departed |
Feeder Arrived | container.transport.feeder_arrived |
Feeder Discharged | container.transport.feeder_discharged |
Feeder Loaded | container.transport.feeder_loaded |
Feeder Departed | container.transport.feeder_departed |