Skip to content

MSC Container Tracking Scraper

Try for free

Track MSC containers, bills of lading and bookings in bulk: route, ports, ETA, vessel and voyage, and the full container event history. No login needed.

🚢 MSC Container Tracking Scraper

Track MSC shipments in bulk by container number, bill of lading or booking number and get clean, structured data back: route, ports, ETA, vessel and voyage, and the full event history of every container. Paste your numbers, press Start, and each shipment comes back in about a second. No MSC account, no login, and you pay only for shipments that were found.

✨ Why use MSC Container Tracking Scraper?

  • 📦 All three number types: container, bill of lading (B/L) and booking numbers, detected automatically.
  • ⚡ Fast bulk tracking: numbers are tracked in parallel, so hundreds of containers finish in minutes.
  • 🧭 Ready-to-use summary: status, ETA, latest actual event, next planned event, current vessel and voyage on one flat row, plus the full history per container.
  • 🧹 Forgiving input: spaces and dashes are ignored, duplicates are tracked once, and pasted msc.com tracking links work.
  • 💸 Pay per shipment found: numbers MSC doesn't know are free.
  • 🔁 Drop-in compatible: the original MSC record (tracking_number, tracking_type, bill_of_ladings) is included by default.

🎯 Use cases

  • 🗓️ ETA monitoring: schedule a daily run over your open containers and alert your team when an ETA moves.
  • 🏭 Supply chain dashboards: feed container status, vessel and port events into BI tools, ERPs or TMS systems.
  • 🧾 Freight forwarding and customs: reconcile bills of lading with their containers before arrival.
  • 📊 Demurrage and detention control: see discharge, gate-out and empty-return dates per container.
  • 🔎 Carrier performance research: compare planned and actual transit times across routes and transshipment ports.

🚀 How to use

  1. Paste your MSC container, B/L or booking numbers into Tracking numbers, one per line.
  2. Leave Number type on Auto-detect, or choose a type if all numbers are of one kind.
  3. Optionally keep only shipments that are in transit or delivered, or trim the event history.
  4. Click Start. Each shipment appears in the dataset as soon as it is tracked.
  5. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
trackingNumbersContainer, bill of lading or booking numbers, one per line
trackingTypeauto (default), container, billOfLading or booking
maxItemsTrack at most this many numbers from the list (empty = all)
shipmentStatusany (default), inTransit or delivered
eventsSinceKeep only container events on or after this date (2026-01-31 or 30 days)
maxEventsPerContainerKeep only the latest N events of each container (0 = all)
includeRawDataAdd the original MSC record (default on)
includeNotFoundAdd a free row for each number MSC doesn't know (default off)
{
  "trackingNumbers": ["MSCU0203658", "MEDUEZ472303"],
  "trackingType": "auto",
  "shipmentStatus": "any"
}

📤 Output

One row per tracked number. The Shipments view shows the summary; the Containers view lists every container on its own row.

FieldDescription
trackingNumber, trackingTypeThe number you tracked and its type (Container, Bill of Lading, Booking)
status, deliveredBooked (no container move yet), In transit or Delivered
billOfLadingNumbers, containerNumbers, containerCountDocuments and containers on the shipment
shippedFrom, shippedTo, portOfLoad, portOfDischarge, transshipmentsThe route
finalPodEtaEstimated arrival at the port of discharge
latestEventDate, latestEventDescription, latestEventLocationThe most recent actual container event
nextEventDate, nextEventDescription, nextEventLocationThe next planned event, such as the estimated departure or arrival
latestVesselName, latestVoyage, latestVesselImoThe vessel of the most recent vessel event
containers[]Per container: type, delivered flag, latest move, ETA and every event with date, location, UN/LOCODE, description, laden/empty, an estimated flag for planned moves, vessel, voyage, IMO, flag, terminal and the planned intermediate port calls
tracking_number, tracking_type, bill_of_ladingsThe original MSC record (when includeRawData is on)

Example (shortened, from a real run):

{
  "trackingNumber": "MSDU7979117",
  "trackingType": "Container",
  "status": "In transit",
  "delivered": false,
  "billOfLadingNumbers": [
    "MEDUACD80319"
  ],
  "containerNumbers": [
    "MSDU7979117"
  ],
  "containerCount": 1,
  "shippedFrom": "TIANJINXINGANG, CN",
  "shippedTo": "SANTOS, BR",
  "portOfLoad": "TIANJINXINGANG, CN",
  "portOfDischarge": "SANTOS, BR",
  "transshipments": [
    "NINGBO, CN"
  ],
  "finalPodEta": "2026-10-27",
  "priceCalculationDate": "2026-08-17",
  "latestEventDate": "2026-09-20",
  "latestEventDescription": "Full Transshipment Loaded",
  "latestEventLocation": "NINGBO, CN",
  "nextEventDate": "2026-10-27",
  "nextEventDescription": "Estimated Time of Arrival",
  "nextEventLocation": "SANTOS, BR",
  "latestVesselName": "CONTI CONQUEST",
  "latestVoyage": "QI636A",
  "latestVesselImo": "9293818",
  "containers": [
    {
      "containerNumber": "MSDU7979117",
      "containerType": "40' HIGH CUBE",
      "billOfLadingNumber": "MEDUACD80319",
      "delivered": false,
      "latestMove": "NINGBO, CN",
      "podEtaDate": "2026-10-27",
      "eventCount": 6,
      "events": [
        {
          "order": 5,
          "date": "2026-10-27",
          "location": "SANTOS, BR",
          "unLocode": "BRSSZ",
          "description": "Estimated Time of Arrival",
          "cargoStatus": null,
          "vesselName": "CONTI CONQUEST",
          "voyage": "QI636A",
          "vesselImo": "9293818",
          "vesselFlag": "LIBERIA",
          "vesselBuilt": "2006",
          "terminalName": "SANTOS BRASIL TERMINAL",
          "terminalSmdg": "SSA",
          "terminalBic": null,
          "detail": [
            "CONTI CONQUEST",
            "QI636A"
          ],
          "estimated": true,
          "intermediaryPortCalls": [
            {
              "port": "RIO DE JANEIRO",
              "country": "BR",
              "eta": "2026-10-23T14:30",
              "etd": "2026-10-24T19:30"
            }
          ]
        }
      ]
    }
  ],
  "trackingUrl": "https://www.msc.com/en/track-a-shipment?trackingNumber=MSDU7979117",
  "trackedAt": "2026-10-21T11:37:43Z"
}

💰 Pricing

You pay $8 per 1,000 shipments found ($0.008 per tracked number that returns a shipment), plus the small platform usage of the run. There is no start fee. Numbers MSC doesn't know, invalid entries and shipments removed by the status filter are free.

Example: tracking 1,000 containers that all exist costs about $8 in results; platform usage (compute and residential proxy traffic) adds well under one cent per 100 numbers, because the scraper uses lightweight HTTP requests and 256 MB of memory.

❓ FAQ

Is it legal to scrape MSC tracking? The scraper reads the same public tracking information anyone sees on msc.com without logging in. It collects no personal data. Check that your use complies with MSC's terms and your local laws.

Do I need an MSC account, login or proxy? No account or login is used. The run uses residential proxy exits by default, because MSC refuses about a quarter of datacenter requests. A tracked number uses only a few kilobytes of proxy traffic.

How many numbers can I track in one run? There is no fixed limit. Use Max results to cap a run.

What if a field is empty? MSC doesn't publish every field for every shipment. For example, the ETA disappears once a container is delivered, and some in-transit containers show no bill of lading number. Empty fields come back as null.

Which number should I use? Any of them. A bill of lading or booking number returns every container on that shipment in one row; a container number returns that container.

Can I schedule it or use the API? Yes. Schedule the actor (for example daily) to monitor open shipments, or start runs and read datasets over the API from your own system.

⚠️ Limits

  • Covers MSC (Mediterranean Shipping Company) only, not other carriers.
  • The data is what MSC shows on its public tracking page; MSC decides how long history stays available and which fields are filled.
  • Booking numbers are only tracked while MSC keeps them searchable; once a bill of lading exists, track that instead.
  • Free-text search of shipments without a number is not possible.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.