---
title: "Get freight tracking by number"
method: GET
path: "/v1/freight/tracking"
tags: ["freight"]
---

# Get freight tracking by number

`GET /v1/freight/tracking`

Retrieve tracking for a freight shipment by its PRO or BOL number, whether or not the shipment was booked through ShipEngine. Use this when you have the carrier's reference number but no `freight_shipment_id` — for example, for a shipment booked outside the API.

`carrier_scac` is required as well as the number itself, because the freight provider needs the SCAC to resolve a tracking number.

## Query parameters

- `freight_provider_account_id` string, required — A string that uniquely identifies a ShipEngine resource, such as a carrier, label, shipment, etc.
- `tracking_number` string, required
- `tracking_type` 'pro_number' | 'bol_number', required
- `carrier_scac` string, required

## Response `200`

The request was a success.

- FreightTrackingResponseBody — Live carrier tracking for a PRO or BOL number.
  - `freight_provider_account_id` string — A string that uniquely identifies a ShipEngine resource, such as a carrier, label, shipment, etc.
  - `freight_provider_name` string — The code of the freight provider used to retrieve the tracking.
  - `carrier_scac` string, nullable — The SCAC of the LTL carrier moving the freight, as reported by the carrier. This echoes the provider's response, not the `carrier_scac` you supplied in the request, so it can be `null`.
  - `bol_number` string, nullable — The Bill of Lading number reported by the carrier.
  - `pro_number` string, nullable — The PRO number reported by the carrier.
  - `tracking_status` 'unknown' | 'created' | 'pending_pickup' | 'dispatched' | 'in_route_to_pickup' | 'at_pickup' | 'in_transit' | 'out_for_delivery' | 'at_delivery' | 'delivered' | 'exception' | 'voided' | 'null', nullable — The detailed tracking status reported by the carrier.
  - `tracking_url` string, nullable — A carrier page where the shipment can be tracked, when the carrier provides one.
  - `last_event_at` string, nullable — When the most recent tracking event occurred.
  - `events` FreightTrackingEvent[] — The tracking events reported by the carrier.
    - `occurred_at` string, nullable — When the event occurred, in `YYYY-MM-DDTHH:mm:ssZ` format. Carriers that report only a date return midnight as the time.
    - `status` string, nullable — The tracking status the event corresponds to.
    - `carrier_code` string, nullable — The carrier's own status or event code.
    - `description` string, nullable — The carrier's description of the event.
    - `documents` FreightTrackingEventDocument[] — Any documents the carrier attached to the event, such as a proof of delivery. Always present; an empty array when the carrier attached none.
      - `type` string, nullable — The type of document, as reported by the carrier.
      - `filename` string, nullable — The name of the document file.
      - `format` string, nullable — The file format of the document.

## Other responses

- `400` — `freight_provider_account_id` is missing or is not a valid account ID (`freight_provider_id_required`), `tracking_number`, `tracking_type`, or `carrier_scac` is missing or invalid, or the freight provider connection is not active (`freight_connection_inactive`). The `freight_provider_id_required` message still names the parameter `seller_freight_provider_id`, the name this parameter had previously. Match on `error_code`, not on `message`.
- `404` — The carrier returned no tracking information for the number (`freight_tracking_not_found`).
- `500` — An error occurred on ShipEngine's side. > This error will automatically be reported to our engineers.

---

[API](https://skmtc.net/shipstation/apis/shipengine-api.md) · [All operations](https://skmtc.net/shipstation/apis/shipengine-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shipstation/shipengine-api/revisions/8d8a7cf79204/schema)
