Track and trace shipping containers across all major steamship lines
Project description
tracktrace
tracktrace allows you to track shipping containers across all major shipping lines as well as Class 1 North American railways.
Major steamship lines all have container tracking on their websites and/or apps.
Ocean
Steamship Line | SCAC | Supported | Container Tracking Website | iOS App | Android App |
---|---|---|---|---|---|
Alianca | ANRM | :heavy_check_mark: | Link | No | No |
APL | APLU | :heavy_check_mark: | Link | Yes | Yes |
Arkas Container Transport | ARKU | :white_check_mark: | Link | No | No |
CMA CGM | CMDU | :heavy_check_mark: | Link | Yes | No |
Cosco | COSU | :white_check_mark: | Link | Yes | No |
Emirates Shipping Line | ESPU | :white_check_mark: | Link | Yes | Yes |
Evergreen | EGLV | :white_check_mark: | Link | No | Yes |
Hamburg SUD | SUDU | :heavy_check_mark: | Link | No | No |
Hapag Lloyd | HLCU | :heavy_check_mark: | Link | Yes | Yes |
Hyundai Merchant Marine (HMM) | HDMU | :white_check_mark: | Link | Yes | Yes |
Maersk | MAEU | :white_check_mark: | Link | Yes | Yes |
Matson | MATS | :white_check_mark: | Link | Yes | Yes |
Mediterranean Shipping Company (MSC) | MSCU | :heavy_check_mark: | Link | Yes | Yes |
ONE Line | ONEY | :heavy_check_mark: | Link | No | No |
Orient Overseas Container Line (OOCL) | OOLU | :white_check_mark: | Link | Yes | Yes |
Pacific International Lines (PIL) | PCIU | :white_check_mark: | Link | No | No |
Wan Hai Lines | WHLC | :white_check_mark: | Link | Yes | Yes |
Yang Ming | YMLU | :white_check_mark: | Link | Yes | Yes |
Zim Integrated Shipping Services (ZIM) | ZIMU | :white_check_mark: | Link | Yes | Yes |
Rail
Railroads often require an account to track containers. At certain railroads, you also need to be a Notify Party to access tracking information.
For example, BNSF doesn't show any tracking information if your company is not a Notify Party. UP, on the other hand, shows partial tracking information.
[//]: #| Railroad | Supported | Need Account | Need to be a Notify Party | [//]: #| ---- | :--: | :-------: | :---------: | [//]: #| BNSF Railway (BNSF) | :white_check_mark:| Yes | Yes | [//]: #| Canadian National Railway (CN) | :white_check_mark: | Yes | Don't know | [//]: #| Canadian Pacific Railway (CPR) | :white_check_mark:| Yes | Don't know | [//]: #| CSX Transportation (CSX) | :heavy_check_mark: | No | No | [//]: #| Ferromex | :white_check_mark: | Yes | Don't know | [//]: #| Kansas City Southern Railway (KCS)| :white_check_mark: | Yes | Don't know | [//]: #| Norfolk Southern Railway (NS) | :heavy_check_mark: | Yes | No | [//]: #| Union Pacific Railway (UP) | :white_check_mark: | Yes | No |
Installation
pip install tracktrace
Usage example
>>> from tracktrace import ocean
>>>
>>> container = "MEDU3288655"
>>> scac = "MSCU"
>>>
>>> shipment = ocean.container.create(scac=scac, container=container)
>>>
>>> shipment.updates
[{'location': 'USSTL',
'vessel': 'TRUCK',
'voyage': '',
'movement': 'Empty container returned',
'mode': 'TR',
'date': DateTime(2020, 12, 11, 15, 44, 0, tzinfo=Timezone('UTC'))},
{'location': 'USESL',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Rail last free day',
'mode': '',
'date': DateTime(2020, 12, 8, 23, 59, 0, tzinfo=Timezone('UTC'))},
{'location': 'USSTL',
'vessel': 'TRUCK',
'voyage': '',
'movement': 'Full import container out gated',
'mode': 'TR',
'date': DateTime(2020, 12, 8, 19, 27, 0, tzinfo=Timezone('UTC'))},
{'location': 'USESL',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Notified',
'mode': '',
'date': DateTime(2020, 12, 5, 0, 39, 0, tzinfo=Timezone('UTC'))},
{'location': 'USSTL',
'vessel': 'RAIL_CARRIER',
'voyage': '',
'movement': 'Rail arrived',
'mode': '',
'date': DateTime(2020, 12, 5, 0, 36, 0, tzinfo=Timezone('UTC'))},
{'location': 'USESL',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Unloaded from rail',
'mode': '',
'date': DateTime(2020, 12, 5, 0, 33, 0, tzinfo=Timezone('UTC'))},
{'location': 'USESL',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Rail arrived',
'mode': '',
'date': DateTime(2020, 12, 4, 15, 14, 0, tzinfo=Timezone('UTC'))},
{'location': 'USVAO',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Departed from in transit location',
'mode': '',
'date': DateTime(2020, 12, 4, 11, 32, 0, tzinfo=Timezone('UTC'))},
{'location': 'USVAO',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Arrived at in-transit location',
'mode': '',
'date': DateTime(2020, 12, 4, 10, 28, 0, tzinfo=Timezone('UTC'))},
{'location': 'USEZA',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Rail departed',
'mode': '',
'date': DateTime(2020, 12, 2, 23, 59, 0, tzinfo=Timezone('UTC'))},
{'location': 'USNYC',
'vessel': 'RAIL_CARRIER',
'voyage': '',
'movement': 'Rail departed',
'mode': '',
'date': DateTime(2020, 12, 2, 23, 59, 0, tzinfo=Timezone('UTC'))},
{'location': 'USEZA',
'vessel': 'CSX TRANSPORTATION',
'voyage': '',
'movement': 'Loaded on rail',
'mode': '',
'date': DateTime(2020, 12, 2, 20, 52, 0, tzinfo=Timezone('UTC'))},
{'location': 'USNYC',
'vessel': 'TRUCK',
'voyage': '',
'movement': 'Full import container in gated',
'mode': 'TR',
'date': DateTime(2020, 11, 13, 18, 24, 0, tzinfo=Timezone('UTC'))},
{'location': 'USNYC',
'vessel': 'TRUCK',
'voyage': '',
'movement': 'Full import container out gated',
'mode': 'TR',
'date': DateTime(2020, 11, 13, 18, 15, 0, tzinfo=Timezone('UTC'))},
{'location': 'USNYC',
'vessel': 'NORTHERN MAJESTIC',
'voyage': '41N',
'movement': 'Discharged from vessel',
'mode': 'VE',
'date': DateTime(2020, 11, 3, 8, 31, 0, tzinfo=Timezone('UTC'))},
{'location': 'USNYC',
'vessel': '',
'voyage': '',
'movement': 'Vessel arrived',
'mode': '',
'date': DateTime(2020, 11, 3, 3, 45, 0, tzinfo=Timezone('UTC'))},
{'location': 'USNYC',
'vessel': '',
'voyage': '',
'movement': 'In-bond movement authorized ',
'mode': '',
'date': DateTime(2020, 10, 29, 8, 25, 0, tzinfo=Timezone('UTC'))},
{'location': 'BRPEC',
'vessel': '',
'voyage': '',
'movement': 'Vessel departed',
'mode': '',
'date': DateTime(2020, 10, 26, 1, 7, 0, tzinfo=Timezone('UTC'))},
{'location': 'BRPEC',
'vessel': 'NORTHERN MAJESTIC',
'voyage': '41N',
'movement': 'Loaded on vessel',
'mode': 'VE',
'date': DateTime(2020, 10, 25, 17, 43, 0, tzinfo=Timezone('UTC'))},
{'location': '',
'vessel': '',
'voyage': '',
'movement': 'VGM received',
'mode': '',
'date': DateTime(2020, 10, 20, 21, 24, 0, tzinfo=Timezone('UTC'))},
{'location': 'BRPEC',
'vessel': 'TRUCK',
'voyage': '',
'movement': 'Full export container in gated',
'mode': 'TR',
'date': DateTime(2020, 10, 20, 18, 54, 0, tzinfo=Timezone('UTC'))},
{'location': 'BRFOR',
'vessel': 'TRUCK',
'voyage': '',
'movement': 'Empty out for booking',
'mode': 'TR',
'date': DateTime(2020, 10, 19, 9, 37, 0, tzinfo=Timezone('UTC'))}]
Release History
- 0.0.1
- Work in progress
Meta
Dhruv Kar – dhruvkar – dhruv@wints.org
Distributed under the MIT license. See LICENSE
for more information.
Contributing
- Fork it (https://github.com/dhruvkar/tracktrace/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tracktrace-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 684aaa730b07aa3f8cbda68ee6418683492873ca6c101ecb7f8cae5db9c070e4 |
|
MD5 | ed4b4c1ce176e6bf6b09a066e9c58890 |
|
BLAKE2b-256 | 93ac0198935353952dc3369e5f23712976afcbe8b1cffe00e6031558d4699d73 |