[mindgraph AI]

ETA Sentinel

Logistics — Ocean Shipment Tracking

Cost-effective daily ocean-shipment tracker for an apparel sourcing desk: reads the ETA sheet, checks 17 shipping lines every morning, and flags each shipment that will miss its cancel date.

Carrier business APIs, scrapers and a paid aggregator behind one line registry, polite 15-minute scheduling per line, a retry ladder, and a ledger that sorts late shipments to the top by days to spare.

Shipping lines checked daily: 17

24 / LOGISTICS / OCEAN SHIPMENT TRACKING

Cost-effective daily ocean-shipment tracker for an apparel sourcing desk: reads the ETA sheet, checks 17 shipping lines every morning, and flags each shipment that will miss its cancel date.

Client: US/Indian Apparel sourcing company

Tags: Logistics · Ocean Tracking · Web Scraping · Carrier APIs · FastAPI · Celery

Problem

A shipping coordinator follows tens of active MBLs across a dozen shipping lines. Every morning they open each line's website, type container and B/L numbers one by one, copy the latest ETA into the Exenta ERP, and email a status report to the sales teams. Carrier sites block repeat visitors without warning. A shipment that slips past the buyer's cancel date shows up only when someone notices.

Our Solution

A ledger that checks every shipment daily and sorts late ones to the top. The coordinator drops the existing ETA monitoring sheet; rows sharing an MBL merge into one shipment (44 rows became 25). Every morning, every active shipment is looked up. Each row shows days to spare (cancel date minus latest ETA) and a status: Late, At risk (within 3 days), Slipped or On time. Late rows are light red, the rest light green. Every date carries its source: carrier, public tracking or sheet or actual arrival. Delay reasons are recorded and carried forward.

Technical Details

Direct API Calls via Business Accounts, Scrapers and Paid Subscription Services

A varied approach allows unified coverage at the lowest cost per shipment: Maersk, Hamburg Süd, MSC, CMA CGM, Hapag-Lloyd, ONE, Evergreen, COSCO, OOCL, HMM, Yang Ming, ZIM and Wan Hai. Direct calls to the carriers' own tracking endpoints cover KMTC, SM Line, T.S. Lines and HEDE.

Carrier Business APIs

The dependable route: register as a shipper on the line's developer portal, state the use case, receive an API key. A line's method is one registry field, so a line moves onto its key without touching the ledger. KMTC's official API is first in line.

Paid Aggregator, Last Resort

Paid tracking aggregators are the route for lines with no public tracking or API. Matson, Sealead, NYK RoRo and TFL are assigned to it in the registry.

Polite Scheduling

One lookup per line at a time, 15 minutes apart, so no carrier sees a burst. Different lines run in parallel.

Retry Ladder

Empty or refused lookups retry at 15 min, 1 h, 3 h and 6 h, then at the next daily run. An MBL that returns nothing is retried by one of its containers. A failing row fades slowly; no failure is silent. Tracking stops a week after arrival.

Stack

FastAPI, Postgres, Celery beat, Redis, React + TypeScript + Vite, Caddy; openpyxl reads the sheet. 14 recorded carrier responses back the parser tests.