---
title: "Get a shipment status by system id."
method: GET
path: "/api/v4/rail/shipments/{id}/statuses"
tags: ["Rail: Tracking"]
---

# Get a shipment status by system id.

`GET /api/v4/rail/shipments/{id}/statuses`

## Request

- Base URL: `https://na12.api.project44.com`
- URL: `https://na12.api.project44.com/api/v4/rail/shipments/{id}/statuses`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/api/v4/oauth2/token`
- TypeScript: <https://skmtc.dev/project44/apis/project44-rest-api/docs/api/v4/rail/shipments/:id/statuses/get.ts> (a function with typed inputs; its response is checked against the schema)

<h4><b>Required Fields</h4></b>
<ul><li> id </li></ul>

## Path parameters

- `id` string, required

## Query parameters

- `includeStatusHistory` boolean

## Response `200`

OK

- RailShipmentStatus
  - `equipmentStatuses` RailEquipmentStatus[]: Status for each piece of equipment attached to this shipment.
    - `equipment` RailEquipment
      - `equipmentIdentifier` RailEquipmentIdentifier
        - `type` 'CONTAINER_ID' | 'TRAILER_ID' | 'RAIL_CAR_ID': The type of the equipment identifier.
        - `value` string: The value of the equipment identifier.
    - `equipmentRouteSegments` TrackedShipmentRouteSegment[]: Describe the route taken by this piece of equipment to each stop.
      - `emissions` EmissionData: Describes emission data.
        - `cargoWeight` WeightMeasurement: A measure of weight with a value and unit
          - `unit` 'LB' | 'KG', enum: Weight measurement units (default: 'LB').
          - `value` number: Numeric value of a measurement
        - `co2EmissionIntensity` WeightPerDistanceMeasurement: A measure of weight per distance with a value and unit
          - `unit` 'KG_PER_KM', enum: Weight per distance measurement units (linear density)
          - `value` number: Numeric value of a measurement
        - `distance` DistanceMeasurement: A measure of distance with a value and unit
          - `unit` 'FT' | 'M' | 'MI' | 'KM', enum: Physical unit of measurement
          - `value` number: Numeric value of a measurement
        - `loadFactor` number, float: Ratio of weight or volume of cargo in the shipment to the vehicle's capacity.
        - `totalCO2Emissions` WeightMeasurement: A measure of weight with a value and unit
          - `unit` 'LB' | 'KG', enum: Weight measurement units (default: 'LB').
          - `value` number: Numeric value of a measurement
        - `vehicleInfo` VehicleInfo: Describes vehicle information used to compute emissions.
          - `type` VehicleType
            - `enumValue` 'UNKNOWN' | 'AIR_FREIGHTER' | 'AIR_BELLY_FREIGHT' | 'AIR_UNKNOWN' | 'INLAND_WATERWAY_MOTOR_VESSEL_LT_650T' | 'INLAND_WATERWAY_MOTOR_VESSEL_650T_TO_1000T' | 'INLAND_WATERWAY_MOTOR_VESSEL_1000T_TO_2000T' | 'INLAND_WATERWAY_MOTOR_VESSEL_2000T_TO_3000T' | 'INLAND_WATERWAY_COUPLED_CONVOY' | 'INLAND_WATERWAY_PUSHED_CONVOY_2_TO_3_BARGES' | 'INLAND_WATERWAY_PUSHED_CONVOY_4_TO_5_BARGES' | 'INLAND_WATERWAY_PUSHED_CONVOY_6_BARGES' | 'INLAND_WATERWAY_TANKER_VESSELS' | 'INLAND_WATERWAY_CONTAINER_VESSELS_110M' | 'INLAND_WATERWAY_CONTAINER_VESSELS_135M' | 'INLAND_WATERWAY_CONTAINER_VESSELS_COUPLED_CONVOY' | 'RAIL_AVERAGE_MIXED' | 'RAIL_CONTAINER' | 'RAIL_CARS' | 'RAIL_CHEMICALS' | 'RAIL_COAL_STEEL' | 'RAIL_BUILDING_MATERIALS' | 'RAIL_MANUFACTURED_PRODUCTS' | 'RAIL_CEREALS' | 'RAIL_TRUCK_AND_TRAILER' | 'RAIL_TRAILER_ONLY' | 'ROAD_NA_VAN' | 'ROAD_NA_GENERAL' | 'ROAD_NA_AUTO_CARRIER' | 'ROAD_NA_DRAY' | 'ROAD_NA_EXPEDITED' | 'ROAD_NA_FLATBED' | 'ROAD_NA_HEAVY_BULK' | 'ROAD_NA_LTL_DRY_VAN' | 'ROAD_NA_MIXED' | 'ROAD_NA_MOVING' | 'ROAD_NA_PACKAGE' | 'ROAD_NA_REFRIGERATED' | 'ROAD_NA_SPECIALIZED' | 'ROAD_NA_TANKER' | 'ROAD_NA_TL_DRY_VAN' | 'ROAD_GLOBAL_VAN_LT_3500KG' | 'ROAD_GLOBAL_RIGID_TRUCK_3500KG_TO_7500KG' | 'ROAD_GLOBAL_RIGID_TRUCK_7500KG_TO_12T_GVW' | 'ROAD_GLOBAL_RIGID_TRUCK_12T_20T_GVW' | 'ROAD_GLOBAL_RIGID_TRUCK_20T_TO_26T_GVW' | 'ROAD_GLOBAL_RIGID_TRUCK_26T_TO_32T_GVW' | 'ROAD_GLOBAL_ARTIC_TRUCK_UP_TO_34T_GVW' | 'ROAD_GLOBAL_ARTIC_TRUCK_UP_TO_40T_GVW' | 'ROAD_GLOBAL_ARTIC_TRUCK_UP_TO_40T_GVW_SI_ENGINE' | 'ROAD_GLOBAL_ARTIC_TRUCK_UP_TO_40T_GVW_HPDI' | 'ROAD_GLOBAL_ARTIC_TRUCK_40T_GVW_LIGHTWEIGHT_TRAILER' | 'ROAD_GLOBAL_ARTIC_TRUCK_UP_TO_44T_GVW' | 'ROAD_GLOBAL_ARTIC_TRUCK_UP_TO_60T_GVW' | 'ROAD_GLOBAL_ARTIC_TRUCK_UP_TO_72T_GVW' | 'OCEAN_BULK_CARRIER_0_TO_9999_DWT' | 'OCEAN_BULK_CARRIER_10000_TO_34999_DWT' | 'OCEAN_BULK_CARRIER_35000_TO_59999_DWT' | 'OCEAN_BULK_CARRIER_60000_TO_99999_DWT' | 'OCEAN_BULK_CARRIER_100000_TO_199999_DWT' | 'OCEAN_BULK_CARRIER_200000_AND_UP_DWT' | 'OCEAN_CHEMICAL_TANKER_0_TO_4999_DWT' | 'OCEAN_CHEMICAL_TANKER_5000_TO_9999_DWT' | 'OCEAN_CHEMICAL_TANKER_10000_TO_19999_DWT' | 'OCEAN_CHEMICAL_TANKER_20000_TO_39999_DWT' | 'OCEAN_CHEMICAL_TANKER_40000_AND_UP_DWT' | 'OCEAN_GENERAL_CARGO_0_TO_4999_DWT' | 'OCEAN_GENERAL_CARGO_5000_TO_9999_DWT' | 'OCEAN_GENERAL_CARGO_10000_TO_19999_DWT' | 'OCEAN_GENERAL_CARGO_20000_AND_UP_DWT' | 'OCEAN_LNG_TANKER_0_TO_49999_CBM' | 'OCEAN_LNG_TANKER_50000_TO_99999_CBM' | 'OCEAN_LNG_TANKER_100000_TO_199999_CBM' | 'OCEAN_LNG_TANKER_200000_AND_UP_CBM' | 'OCEAN_OIL_TANKER_0_TO_4999_DWT' | 'OCEAN_OIL_TANKER_5000_TO_9999_DWT' | 'OCEAN_OIL_TANKER_10000_TO_19999_DWT' | 'OCEAN_OIL_TANKER_20000_TO_59999_DWT' | 'OCEAN_OIL_TANKER_60000_TO_79999_DWT' | 'OCEAN_OIL_TANKER_80000_TO_119999_DWT' | 'OCEAN_OIL_TANKER_120000_TO_199999_DWT' | 'OCEAN_OIL_TANKER_200000_AND_UP_DWT' | 'OCEAN_OTHER_LIQUIDS_TANKER_0_TO_999_DWT' | 'OCEAN_OTHER_LIQUIDS_TANKER_1000_AND_UP_DWT' | 'OCEAN_FERRY_ROPAX_0_TO_1999_GT' | 'OCEAN_FERRY_ROPAX_2000_TO_4999_GT' | 'OCEAN_FERRY_ROPAX_5000_TO_9999_GT' | 'OCEAN_FERRY_ROPAX_10000_TO_19999_GT' | 'OCEAN_FERRY_ROPAX_20000_AND_UP_GT' | 'OCEAN_REFRIGERATED_BULK_0_TO_1999_DWT' | 'OCEAN_REFRIGERATED_BULK_2000_TO_5999_DWT' | 'OCEAN_REFRIGERATED_BULK_6000_TO_9999_DWT' | 'OCEAN_REFRIGERATED_BULK_10000_AND_UP_DWT' | 'OCEAN_CONTAINER_AVERAGE'
          - `weight` WeightMeasurement: A measure of weight with a value and unit
            - `unit` 'LB' | 'KG', enum: Weight measurement units (default: 'LB').
            - `value` number: Numeric value of a measurement
      - `fromStopId` string, uuid: The starting stop of this route segment. Will always be populated on response.
      - `id` string, uuid: The id of this route segment. Will always be populated on response.
      - `identifiers` LogisticsIdentifier[]: Identifiers that are not part of the overall shipment but are relevant to this route segment.
        - `type` 'AIR_WAYBILL' | 'BILL_OF_LADING' | 'HOUSE_BILL_OF_LADING' | 'BOOKING_NUMBER' | 'CARRIER_IATA' | 'CARRIER_ICAO' | 'CARRIER_NAME' | 'CARRIER_SCAC' | 'FFW_SCAC' | 'NVOCC_SCAC' | 'NVOCC_NAME' | 'FFW_NAME' | 'FFW_MASTER_ID' | 'NVOCC_MASTER_ID' | 'CONTAINER_ID' | 'CUSTOMER_REFERENCE' | 'DELIVERY_NUMBER' | 'EXTERNAL' | 'FLIGHT_NUMBER' | 'ORDER' | 'PICKUP' | 'PRO' | 'PURCHASE_ORDER' | 'RAIL_CAR_ID' | 'RAIL_WAYBILL' | 'TRACKING_NUMBER' | 'TRAILER_ID' | 'UNKNOWN' | 'VESSEL_IMO' | 'VESSEL_NAME' | 'WAYBILL' | 'VESSEL_CALL_SIGN' | 'VESSEL_MMSI' | 'CARRIER_US_DOT_NUMBER' | 'CARRIER_MC_NUMBER' | 'SUBSCRIPTION_ID' | 'HOUSE_AIR_WAYBILL' | 'SALES_ORDER' | 'WAREHOUSE_MOVEMENT_ORDER' | 'ADVANCED_SHIPMENT_NOTICE' | 'DRIVER_MOBILE_PHONE_NUMBER' | 'VEHICLE_ID' | 'LICENSE_PLATE' | 'TRAILER_LICENSE_PLATE' | 'SENSITECH_DEVICE_ID' | 'EMERSON_DEVICE_ID' | 'TIVE_DEVICE_ID' | 'ZILLION_DEVICE_ID' | 'VOYAGE_NUMBER' | 'CARRIER_MASTER_ID' | 'CARRIER_NMC_ID' | 'CONTAINER_TYPE' | 'TRAIN_NUMBER' | 'WAGON_ID' | 'TRAIN_ID' | 'CAPACITY_PROVIDER_ACCOUNT_GROUP' | 'CAPACITY_PROVIDER_ACCOUNT_CODE' | 'SERIAL_NUMBER' | 'VEHICLE_IDENTIFICATION_NUMBER' | 'REFERENCE_NUMBER' | 'CONTAINER_PIN' | 'VESSEL_P44_ID' | 'EXPORT_CUSTOMS_BROKER' | 'IMPORT_CUSTOMS_BROKER' | 'POL_QUALITY_CONTROL_PROVIDER' | 'POD_QUALITY_CONTROL_PROVIDER' | 'AIRCRAFT_ICAO' | 'AIRLINE_NAME' | 'SEAL_NUMBER' | 'DRAYAGE_CARRIER_SCAC' | 'EXPORT_DRAYAGE_CARRIER_SCAC' | 'IMPORT_DRAYAGE_CARRIER_SCAC' | 'INBOUND_VOYAGE_NUMBER': The standard which defines who assigns the identifier and what it identifies. Required field.
        - `value` string: The value of this identifier. Required field.
      - `toStopId` string, uuid: The ending stop of this route segment. Will always be populated on response.
      - `transportationMode` 'AIR' | 'OCEAN' | 'RAIL' | 'UNKNOWN' | 'TRUCKLOAD' | 'PARCEL' | 'LTL' | 'BARGE': The mode of transportation on which the shipment was traveling. Will always be populated on response.
    - `latestStatusUpdate` RailEquipmentStatusUpdate
      - `address` RailAddress: A postal address.
        - `pointName` string: Name of this point. Usually a city name but may also be the name of the junction, yard, or facility
        - `state` string: Abbreviation of state, province, district, etc.
      - `clmEventCode` string: The 4-digit Event Code from the Rail Car Location Message.
      - `clmSightingCode` string: The 1-digit Sighting Code from the Rail Car Location Message.
      - `geoCoordinates` GeoCoordinates
        - `latitude` number, float: The approximate geographic latitude of a location, using the WGS84 coordinate system.
        - `longitude` number, float: The approximate geographic longitude of a location, using the WGS84 coordinate system.
      - `statusCode` 'DISPATCHED' | 'IN_TRANSIT' | 'AT_STOP' | 'COMPLETED' | 'UNAUTHORIZED': The status code for this status update. This field will always be populated.
      - `statusReason` RailStatusReason
        - `code` 'UNKNOWN' | 'SCHEDULED' | 'ACQUIRING_LOCATION' | 'IN_MOTION' | 'IDLE' | 'ARRIVED' | 'IN_GATE' | 'RAMPED' | 'DERAMPED' | 'NOTIFIED' | 'OUT_GATE' | 'DEPARTED_STOP' | 'TIMED_OUT' | 'CANCELED' | 'DEPARTED_FINAL_STOP' | 'WAYBILL_CHANGED' | 'UNAUTHORIZED': The reason code for the status of the status update. A status of 'DISPATCHED' will have one of the following reason codes: 'SCHEDULED' or 'ACQUIRING_LOCATION'. A status of 'IN_TRANSIT' will have one of the following reason codes: 'IN_MOTION' or 'IDLE'. A status of 'AT_STOP' will have one of the following reason codes: 'LOADED_ONTO_TRAIN', 'WAITING_TO_BE_UNLOADED', or 'UNLOADED' A status of 'COMPLETED' will have one of the following reason codes: 'TIMED_OUT', 'CANCELED', 'WAYBILL_CHANGED', or 'DEPARTED_FINAL_STOP'.
        - `description` string: A description of the reason for the status of the status update. This field is free-form text and should not be parsed.
      - `stopNumber` integer: The stop number to which this status update corresponds, if any. This will be populated if the location of this update matches the location for a stop.
      - `timestamp` string: The timestamp of this status update in the time zone of the location. If this status update has no location, this timestamp will be in UTC. A time zone offset will always be provided. This field will always be populated.
      - `trainIdentifier` string: Train identifier that the rail event occurred on.
    - `latestStopStatuses` RailEquipmentStopStatus[]: The most up-to-date statuses of the equipment in relation to each stop. One and only one status will always be returned for each stop. If the equipment does not have status 'COMPLETED' or 'DISPATCHED', this list will always contain one and only one stop status with a code of either 'EN_ROUTE' or 'ARRIVED'.
      - `arrivalCode` 'UNKNOWN' | 'EARLY' | 'ON_TIME' | 'LATE': The approximate arrival status of the shipment at the stop, as recorded.
      - `arrivalDateTime` string: The recorded arrival time of the shipment at this stop, if available. This time will always be in the time zone of the stop, and a time zone offset will always be provided.
      - `arrivalEstimate` RailArrivalEstimate
        - `estimatedArrivalCode` 'UNKNOWN' | 'EARLY' | 'ON_TIME' | 'LATE': The approximate arrival status, as estimated.
        - `estimatedArrivalWindow` OffsetDateTimeWindow: A date and time range, with time zone offset.
          - `endDateTime` string: End time of this window with timezone offset. (format: yyyy-MM-dd'T'HH:mm:ssZ)
          - `startDateTime` string: Start time of this window with timezone offset. (format: yyyy-MM-dd'T'HH:mm:ssZ)
        - `lastCalculatedDateTime` string: When this eta was last computed. (format: yyyy-MM-dd'T'HH:mm:ssZ)
      - `departureDateTime` string: The recorded departure time of the shipment from this stop, if available. This time will always be in the time zone of the stop, and a time zone offset will always be provided.
      - `stopNumber` integer: The number of the shipment stop to which this status pertains.
      - `stopStatusCode` 'UNKNOWN' | 'EN_ROUTE' | 'ARRIVED' | 'DEPARTED': The status of the shipment relative to this stop -- whether it is presumed to be currently en route to the stop or whether it has been recorded as having arrived or departed the stop.
    - `statusUpdates` RailEquipmentStatusUpdate[]: If requested, all available equipment status updates.
      - `address` RailAddress: A postal address.
        - `pointName` string: Name of this point. Usually a city name but may also be the name of the junction, yard, or facility
        - `state` string: Abbreviation of state, province, district, etc.
      - `clmEventCode` string: The 4-digit Event Code from the Rail Car Location Message.
      - `clmSightingCode` string: The 1-digit Sighting Code from the Rail Car Location Message.
      - `geoCoordinates` GeoCoordinates
        - `latitude` number, float: The approximate geographic latitude of a location, using the WGS84 coordinate system.
        - `longitude` number, float: The approximate geographic longitude of a location, using the WGS84 coordinate system.
      - `statusCode` 'DISPATCHED' | 'IN_TRANSIT' | 'AT_STOP' | 'COMPLETED' | 'UNAUTHORIZED': The status code for this status update. This field will always be populated.
      - `statusReason` RailStatusReason
        - `code` 'UNKNOWN' | 'SCHEDULED' | 'ACQUIRING_LOCATION' | 'IN_MOTION' | 'IDLE' | 'ARRIVED' | 'IN_GATE' | 'RAMPED' | 'DERAMPED' | 'NOTIFIED' | 'OUT_GATE' | 'DEPARTED_STOP' | 'TIMED_OUT' | 'CANCELED' | 'DEPARTED_FINAL_STOP' | 'WAYBILL_CHANGED' | 'UNAUTHORIZED': The reason code for the status of the status update. A status of 'DISPATCHED' will have one of the following reason codes: 'SCHEDULED' or 'ACQUIRING_LOCATION'. A status of 'IN_TRANSIT' will have one of the following reason codes: 'IN_MOTION' or 'IDLE'. A status of 'AT_STOP' will have one of the following reason codes: 'LOADED_ONTO_TRAIN', 'WAITING_TO_BE_UNLOADED', or 'UNLOADED' A status of 'COMPLETED' will have one of the following reason codes: 'TIMED_OUT', 'CANCELED', 'WAYBILL_CHANGED', or 'DEPARTED_FINAL_STOP'.
        - `description` string: A description of the reason for the status of the status update. This field is free-form text and should not be parsed.
      - `stopNumber` integer: The stop number to which this status update corresponds, if any. This will be populated if the location of this update matches the location for a stop.
      - `timestamp` string: The timestamp of this status update in the time zone of the location. If this status update has no location, this timestamp will be in UTC. A time zone offset will always be provided. This field will always be populated.
      - `trainIdentifier` string: Train identifier that the rail event occurred on.
  - `infoMessages` Message[]: System messages and messages from the capacity provider with severity 'INFO' or 'WARNING'. No messages with severity 'ERROR' will be returned here.
    - `diagnostic` string: Diagnostic information, often originating from the capacity provider.
    - `message` string: Message informational text.
    - `severity` 'ERROR' | 'WARNING' | 'INFO': The severity of this message.
    - `source` 'SYSTEM' | 'CAPACITY_PROVIDER': The originator of this message -- either project44 (the system) or the capacity provider.
  - `shipment` RailShipment
    - `equipmentIdentifiers` RailEquipmentIdentifier[]: A user-defined list of equipment identifiers identifying rail equipment to be tracked as part of this shipment. This includes container ids and rail car ids. A rail shipment may only have 1 equipment identifier
      - `type` 'CONTAINER_ID' | 'TRAILER_ID' | 'RAIL_CAR_ID': The type of the equipment identifier.
      - `value` string: The value of the equipment identifier.
    - `id` integer: DEPRECATED: The project44-generated id for the rail shipment. This may not be provided when creating a shipment, but will always be returned in the shipment confirmation. This id may be used in subsequent API calls to reference a shipment. This field is deprecated, use railLegId instead.
    - `masterShipmentId` string, uuid: This id links 1 or more legs as part of the same overall shipment. For intermodal shipments, pass an existing masterShipmentId to link this rail leg to the overall master shipment. Otherwise pass any valid new UUID to create a new shipment. If no masterShipmentId is passed on POST request a new UUID will be generated. This value will always be returned on all responses.
    - `railLegId` string, uuid: Identifies the leg of the journey. Each piece of equipment has a unique id for each mode that it travels on.This id may be used in subsequent API calls to reference this shipment leg.
    - `shipmentIdentifiers` RailShipmentIdentifier[]: A user-defined list of shipment identifiers that are unique to this shipment. You must pass in either a shipment identifier or a tracking start date time.
      - `type` 'BILL_OF_LADING' | 'WAYBILL': The type of the shipment identifier.
      - `value` string: The value of the shipment identifier.
    - `shipmentStops` RailShipmentStop[]: Contains the shipment's origin and destination.
      - `appointmentWindow` ZonedDateTimeWindow: A date and time range, including a time zone, representing a window of availability.
        - `endDateTime` string, date-time: End date and time of this window in the applicable time zone. (format: yyyy-MM-dd'T'HH:mm:ss)
        - `localTimeZoneIdentifier` string: The time zone identifier (e.g., 'America/Chicago') for this date time window.
        - `startDateTime` string, date-time: Start date and time of this window in the applicable time zone.(default: current date, format: yyyy-MM-dd'T'HH:mm:ss)
      - `geoCoordinates` GeoCoordinates
        - `latitude` number, float: The approximate geographic latitude of a location, using the WGS84 coordinate system.
        - `longitude` number, float: The approximate geographic longitude of a location, using the WGS84 coordinate system.
      - `id` string, uuid: Project44 defined stop id. Always returned on response.
      - `location` RailLocation: A physical location.
        - `address` RailAddress: A postal address.
          - `pointName` string: Name of this point. Usually a city name but may also be the name of the junction, yard, or facility
          - `state` string: Abbreviation of state, province, district, etc.
        - `id` string: The project44-generated id for this location.
      - `stopName` string: The optionally user-defined stop name of this stop. This is a freeform field. If no name is provided Project44 will default the name of each stop based on the address or stop number.
      - `stopNumber` integer: The user-defined stop number, where '1' is the origin and '2' is the destination.
      - `type` 'UNKNOWN' | 'ORIGIN' | 'DESTINATION' | 'TRANSFER' | 'OTHER' | 'PORT_OF_LOADING' | 'TRANSSHIPMENT_PORT' | 'PORT_OF_DISCHARGE' | 'PICKUP' | 'DELIVERY' | 'RETURN' | 'WAREHOUSE' | 'HUB' | 'AIRPORT': How this stop relates to the shipment. This field must be null or absent when creating a shipment. The stop type will be determined by project44.
    - `trackingStartDateTime` string: Tracking for this shipment will begin at this time. This should be set to the time when your shipment has been loaded into the container or rail car. Cannot be more than 90 days in the past or 90 days in the future. You must pass in either a shipment identifier or a tracking start date time.

## Other responses

- `400`: Invalid request
- `401`: Invalid or missing credentials
- `403`: User not authorized to perform this operation

---

[API](https://skmtc.dev/project44/apis/project44-rest-api.md) - [All operations](https://skmtc.dev/project44/apis/project44-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/project44/apis/project44-rest-api/revisions/cdf9675e2294?raw)
