full_in, full_out, empty_out, empty_in, vessel_discharged, vessel_arrived, or vessel_berthed), fetch the list and filter client-side on attributes.event or attributes.data_source.
Pagination
The response follows the standard Terminal49 pagination shape: alinks object (self, current, next, prev, last) and a meta object with size (page size) and total (total events for the container). Most containers have far fewer transport events than one page, so links.next is usually absent and a single request returns the full history.
When a container does have more events than fit on one page, follow links.next until it is absent. Do not construct pagination URLs by hand β use the URLs returned in links.
Event types
Theattributes.event field is one of a fixed set of normalized event names covering vessel, rail, transshipment, feeder, terminal/gate, inland-destination, availability, and delivery milestones. The complete enum is defined on the transport_event schema in the OpenAPI spec and mirrored in the Webhook Event Catalog, which describes what each event means.
The attributes.data_source field indicates where the event originated: shipping_line, terminal, or ais.
Null locations and timezones
Some events may have anull location_locode and timezone β most commonly on estimated events. See Event Timestamps for details on how to interpret those timestamps.
transport_events vs raw_events
transport_events is the recommended endpoint for milestone data. Events are normalized across carriers and go through additional vetting to reduce false positives. raw_events is deprecated and returns the carrier feed as-is; it contains more events but with less consistent normalization. See Get a containerβs raw events for details.