ONE Container Tracking API & MCP

Query live ONE (Ocean Network Express) (one) shipping container moves in a single synchronous GET request or MCP tool call. Pass the container number; no booking, bill of lading or ONE account is needed.

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)one
Brand aliasesONE, Ocean Network Express, ONE Line, one-line.com
CategoryOcean container shipping line
Single-container REST endpointGET https://api.lastscanned.com/v1/track/{containerNumber}
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=ONEU1234566,ONEU0123450
MCP server (https://mcp.lastscanned.com/mcp)track_package, track_packages, list_carriers
Authentication & pricingAuthorization: Bearer lsk_live_... · 1 free keyless lookup/day per IP

Container Number Format & Auto-Detection

PassRule / RegexCheck DigitExamples
Pass 1 (matches)/^(ONEU|KKFU)\d{7}$/ISO 6346ONEU1234566 · ONEU0123450 · KKFU8123458
Pass 2 (mayMatch)nonenonenone

A container number is the owner's 4-letter code, 6 digits and an ISO 6346 check digit. ONE's own owner codes detect to one automatically. A leased container (Textainer TGHU, Triton TCNU, CAI CAIU, SeaCo SEGU and others) can sail with any line, so pass ?carrier=one for one booked with ONE.

Synchronous GET Request & Normalized JSON Response

curl -s "https://api.lastscanned.com/v1/track/ONEU1234566" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"

The response below is a real lookup from November 2026, with its events cut to the newest four of 13.

{
  "carrier": "one",
  "trackingNumber": "ONEU1234566",
  "status": "in_transit",
  "statusDescription": "Departure from Transshipment Port",
  "service": "40'DRY HC.",
  "deliveredAt": null,
  "deliveredAtLocal": null,
  "signedBy": null,
  "destination": {
    "city": "Guayaquil",
    "state": null,
    "country": "EC"
  },
  "estimatedDelivery": "2026-11-12T01:00:00",
  "estimatedDeliveryAt": "2026-11-12T06:00:00Z",
  "message": "Booking ASUG00526300",
  "events": [
    {
      "timestamp": "2026-10-25T09:20:00Z",
      "localTime": "2026-10-25T04:20:00",
      "status": "in_transit",
      "description": "Departure from Transshipment Port",
      "location": "Cartagena, CO",
      "code": "E073-01"
    },
    {
      "timestamp": "2026-10-25T04:27:00Z",
      "localTime": "2026-10-24T23:27:00",
      "status": "in_transit",
      "description": "Loaded on Vessel at Transshipment Port, Magellan Star 2643N",
      "location": "Cartagena, CO",
      "code": "E070-01"
    },
    {
      "timestamp": "2026-10-06T16:26:00Z",
      "localTime": "2026-10-06T11:26:00",
      "status": "in_transit",
      "description": "Vessel Arrival at T/S Port",
      "location": "Cartagena, CO",
      "code": "E066"
    },
    {
      "timestamp": "2026-10-06T02:48:00Z",
      "localTime": "2026-10-05T21:48:00",
      "status": "in_transit",
      "description": "Departure from Transshipment Port",
      "location": "Cartagena, CO",
      "code": "E073-02"
    }
  ]
}

Notes

  • Source: ONE's public cargo tracking API. The container search finds the booking, then the booking's events give every move. Two plain requests, no browser.
  • Times: ONE gives each move in UTC and in the port's local time, so both timestamp and localTime are exact. It is the only line here that does.
  • ETA: the planned vessel arrival at the port of discharge is estimatedDelivery (local) and estimatedDeliveryAt (UTC). Planned moves are never mixed into events.
  • Booking: message names the booking the container travels under.
  • Status: Empty Container Release to Shipper is label_created, Gate Out from Inbound Terminal for Delivery to Consignee is out_for_delivery, and Empty Container Returned from Customer is delivered.

On this page