Ocean Container Tracker - MSC, ONE, COSCO & Yang Ming avatar

Ocean Container Tracker - MSC, ONE, COSCO & Yang Ming

Pricing

from $4.50 / 1,000 tracking result returneds

Go to Apify Store
Ocean Container Tracker - MSC, ONE, COSCO & Yang Ming

Ocean Container Tracker - MSC, ONE, COSCO & Yang Ming

Track containers, bills of lading and booking numbers from MSC, ONE, COSCO and Yang Ming in one run: current status and location, full event history, ETA, vessel and voyage. The carrier is found from the number. Watch mode returns only changes. Unofficial.

Pricing

from $4.50 / 1,000 tracking result returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Track ocean containers, bills of lading and booking numbers from MSC, ONE (Ocean Network Express), COSCO Shipping and Yang Ming in one run. Paste your numbers, mixed from any of the four carriers, and get one row per number with the current status and location, the last event time, the ETA, the vessel and voyage, the ports of loading and discharge, the transshipment ports and the full event history. The carrier is found from the number, so you do not have to say who it belongs to.

Turn on watch mode and schedule the Actor: each run returns the full row only for numbers that have a new event or a changed ETA since they were last returned, with the new events and the ETA before and after listed. Every other number is a short check row at a fraction of the price, and you are never charged twice for the same update.

What you can do with it

  • Track every open shipment in one place, whatever carrier it is on, and send the rows to a sheet, a TMS, Slack or an alert.
  • Get told when a shipment moves: discharged, transshipped, gated out, empty returned, or the ETA slipped by days.
  • Check a bill of lading or booking at once: every container on it comes back with its own type and event history.
  • Keep customers informed with the vessel, voyage and ETA from the carrier instead of copying them by hand from four websites.

What you get for each number

FieldExample
trackingNumber / numberTypeMSMU8698933 / container (also bill-of-lading, booking)
carrier / carrierCodeMSC / msc
currentStatus / currentLocation / currentFacilityFull Transshipment Loaded / COEGA, ZA / the terminal or yard
lastEventAt2026-10-17 (local time at that port)
eta / delivered2026-11-10 / false
vesselName / voyageMSC NURIA / UF642R
portOfLoading / portOfDischargeENNORE, IN / NEW YORK, US
origin / destinationwhere the shipment starts and ends, when the carrier shows them
transshipments["COLOMBO, LK", "COEGA, ZA"]
containerCount / containerseach container with its number, type (40' HIGH CUBE, 20' DRY VAN), ETA and events
eventCount / eventsevery event with at, description, location, locationCode, facility, vessel, voyage, isActual (planned events are false)
billOfLadingNumbers / bookingNumbersthe related numbers the carrier shows
changeswatch mode: newEvents, newEventCount, etaChanged, etaBefore, etaNow, statusBefore, statusNow
checkDigitValidwhether the container number's check digit is right
trackingUrl, scrapedAt, notethe carrier's tracking page for that number, when it was checked, and a note when there is something to say

Values the carrier does not show are null, never guessed.

How to use it

Paste your numbers. Put container numbers (MSCU0203658), bills of lading (MEDUEZ472303) or booking numbers into Tracking numbers, one per line. Spaces and dashes are ignored. Container numbers are sent to the carrier that owns the prefix (MSCU, MEDU, ONEU, CSNU, CBHU, YMLU, ...). Leased containers (TGHU, TCLU, ...) and other numbers are asked of each carrier in turn, and the carrier that knows the number answers.

Say the carrier when you know it. Write it in front of a number (one:NB6BS4513400, cosco:6438012340) or set Carrier for the whole run. This saves a few lookups for numbers without a prefix.

Watch mode. Switch on Watch mode and add a schedule (hourly or daily). Run 1 remembers each number's events and ETA and returns one short watch-started row per number. From run 2 on, a number with an event that was not there before or a new ETA is returned with its full history as a tracking result. A number with no change returns a short no-new-since-last-run row with its status and ETA. Numbers that did not fit under your spending limit are not remembered, so they come back on the next run. Reset watch memory starts over for the numbers in that run.

Input

FieldWhat it does
trackingNumbersContainer, bill of lading or booking numbers, one per line. Up to 500 per run.
carrierauto (default), msc, one, cosco or yangming.
monitoringModeWatch mode: return only numbers with a new event or a changed ETA.
resetMonitoringStateForget what was remembered for the numbers in this run.

Example input:

{
"trackingNumbers": ["MSCU0203658", "ONEU0024740", "CSNU1036292", "YMLU3560471"]
}

Pricing

Pay per result, with two events:

  • Tracking result (tracking-returned): one per number returned with its data, with the whole event history and every container on it included. In watch mode, this is a number with a new event or a changed ETA.
  • Tracking check (tracking-checked, watch mode only): one per watched number that was found but had nothing new, including the first watch run. It costs a small part of a tracking result. A number is never charged both events in the same run.

Rows that explain why there is no result (a number no carrier knows, a number that could not be read, an invalid number) are free and say so in their note field.

FAQ

How do I track an MSC, ONE, COSCO or Yang Ming container by number? Paste the container number into trackingNumbers and run the Actor. The carrier is found from the prefix, and the row gives the current status and location, the ETA, the vessel and voyage and every event.

Can I track containers from several carriers in one run? Yes. Mix numbers from MSC, ONE, COSCO and Yang Ming in one list. Each number comes back as its own row with the carrier it was found at.

Can I track a bill of lading or a booking number? Yes, for MSC, ONE and COSCO. The row lists every container on the bill or booking, each with its type and its own events.

How do I get an alert when a container arrives or its ETA changes? Turn on monitoringMode and schedule the Actor hourly or daily. Numbers with a new event or a new ETA are returned in full, with changes.newEvents, changes.etaBefore and changes.etaNow, so you can send each ok row to email, Slack or a webhook. The other numbers come back as short check rows.

How do I export container tracking to Excel or Google Sheets? Run the Actor and download the dataset as CSV or Excel, or connect it to Google Sheets with an Apify integration.

Good to know

  • Carriers: MSC, ONE (Ocean Network Express), COSCO Shipping and Yang Ming. Numbers from Maersk, CMA CGM, Hapag-Lloyd, Evergreen, ZIM, OOCL and HMM are not tracked; they come back as a free row saying no carrier in this Actor knows the number.
  • Yang Ming is tracked by container number only. Bills of lading and booking numbers are tracked at MSC, ONE and COSCO.
  • A COSCO container number gives the container's latest status. For its full voyage history, track its COSCO bill of lading or booking.
  • On a COSCO bill of lading whose containers have since been loaded on a later shipment, their later status is left out of that bill's row, and the note says so.
  • Times are the local times the carrier prints at each port, written as dates or YYYY-MM-DDTHH:MM without a time zone.
  • The ETA is the carrier's own estimate, as the carrier shows it. Once the container has arrived, delivered and the last event tell you where it is.
  • When a carrier refuses or times out, the number comes back as a free row saying it could not be read. Nothing is solved or bypassed; run it again later.
  • This Actor is not affiliated with or endorsed by MSC, ONE, COSCO Shipping or Yang Ming.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.