# Get Tracking by Shipment IDs GET https://gateway-dev.shipbob.dev/2026-01/shipments-tracking Retrieves tracking information for one or more shipments by their ShipBob shipment IDs. Returns the current status, carrier details, estimated delivery time, and full tracking history for each shipment. Accepts between 1 and 25 shipment IDs per request. Reference: https://developer-dev.shipbob.dev/api/tracking/get-tracking-by-shipment-i-ds ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: api-2026-01 version: 1.0.0 paths: /2026-01/shipments-tracking: get: operationId: get-tracking-by-shipment-i-ds summary: | Get Tracking by Shipment IDs description: > Retrieves tracking information for one or more shipments by their ShipBob shipment IDs. Returns the current status, carrier details, estimated delivery time, and full tracking history for each shipment. Accepts between 1 and 25 shipment IDs per request. tags: - subpackage_tracking parameters: - name: ShipmentIds in: query description: A list of ShipBob shipment IDs to retrieve tracking information for required: false schema: type: string - name: Authorization in: header description: Authentication using Personal Access Token (PAT) token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Tracking.ShipmentTrackingResponseArray' '400': description: Bad Request content: application/json: schema: $ref: >- #/components/schemas/Tracking.Get.Api.V1.Publictracking.Shipments.Bad.Request.String '401': description: Authorization missing or invalid content: application/json: schema: description: Any type '403': description: The provided credentials are not authorized to access this resource content: application/json: schema: description: Any type '500': description: Internal Server Error content: application/json: schema: $ref: >- #/components/schemas/Tracking.Get.Api.V1.Publictracking.Shipments.Internal.Server.Error.String servers: - url: https://gateway-dev.shipbob.dev components: schemas: TrackingTrackingHistoryItemStatus: type: string enum: - Available for Pickup - Cancelled - Delivered - Delivery attempt Failed - DeliveryException - Exception - Failed - InTransit - PreTransit - Return to sender description: The high-level status at the time of this tracking event title: TrackingTrackingHistoryItemStatus Tracking.TrackingHistoryItem: type: object properties: carrier_message: type: - string - 'null' description: The raw message provided by the carrier for this tracking event location: type: - string - 'null' description: The geographic location where this tracking event occurred message: type: - string - 'null' description: A human-readable message describing this tracking event status: oneOf: - $ref: '#/components/schemas/TrackingTrackingHistoryItemStatus' - type: 'null' description: The high-level status at the time of this tracking event substatus: type: - string - 'null' description: >- A more granular status code at the time of this tracking event. Possible values include: 'Delivered', 'Failed Attempt', 'In Transit', 'Delayed', 'Label created', etc. timestamp: type: string format: date-time description: The date and time when this tracking event occurred title: Tracking.TrackingHistoryItem TrackingShipmentTrackingResponseStatus: type: string enum: - Available for Pickup - Cancelled - Delivered - Delivery attempt Failed - DeliveryException - Exception - Failed - InTransit - PreTransit - Return to sender description: The current high-level status of the shipment title: TrackingShipmentTrackingResponseStatus Tracking.ShipmentTrackingResponse: type: object properties: carrier: type: - string - 'null' description: >- The name of the carrier handling the shipment (e.g., UPS, FedEx, USPS) carrier_message: type: - string - 'null' description: The raw status message provided by the carrier carrier_tracking_number: type: - string - 'null' description: The tracking number assigned by the carrier eta: type: - string - 'null' format: date-time description: The estimated date and time of delivery history: type: - array - 'null' items: $ref: '#/components/schemas/Tracking.TrackingHistoryItem' description: A list of historical tracking events for the shipment last_updated: type: string format: date-time description: The date and time when the tracking information was last updated location: type: - string - 'null' description: The current geographic location of the shipment message: type: - string - 'null' description: A human-readable message describing the current shipment status public_tracking_url: type: - string - 'null' description: >- A publicly accessible URL for tracking the shipment on the carrier's website service: type: - string - 'null' description: >- The carrier service level used for the shipment (e.g., Ground, Express) shipment_id: type: integer format: int64 description: The unique identifier of the shipment in ShipBob's system status: oneOf: - $ref: '#/components/schemas/TrackingShipmentTrackingResponseStatus' - type: 'null' description: The current high-level status of the shipment substatus: type: - string - 'null' description: >- A more granular status code describing the current state of the shipment. Possible values include: 'Delivered', 'Failed Attempt', 'In Transit', 'Delayed', 'Label created', etc. tracking_id: type: - string - 'null' description: The unique tracking identifier assigned to the shipment title: Tracking.ShipmentTrackingResponse Tracking.ShipmentTrackingResponseArray: type: array items: $ref: '#/components/schemas/Tracking.ShipmentTrackingResponse' title: Tracking.ShipmentTrackingResponseArray Tracking.Get.Api.V1.Publictracking.Shipments.Bad.Request.String: type: string title: Tracking.Get.Api.V1.Publictracking.Shipments.Bad.Request.String Tracking.Get.Api.V1.Publictracking.Shipments.Internal.Server.Error.String: type: string title: >- Tracking.Get.Api.V1.Publictracking.Shipments.Internal.Server.Error.String securitySchemes: PAT: type: http scheme: bearer description: Authentication using Personal Access Token (PAT) token OAuth2: type: http scheme: bearer description: OAuth2 authentication using JWT tokens ``` ## SDK Code Examples ```python Tracking_getTrackingByShipmentIDs_example import requests url = "https://gateway-dev.shipbob.dev/2026-01/shipments-tracking" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript Tracking_getTrackingByShipmentIDs_example const url = 'https://gateway-dev.shipbob.dev/2026-01/shipments-tracking'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Tracking_getTrackingByShipmentIDs_example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://gateway-dev.shipbob.dev/2026-01/shipments-tracking" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Tracking_getTrackingByShipmentIDs_example require 'uri' require 'net/http' url = URI("https://gateway-dev.shipbob.dev/2026-01/shipments-tracking") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java Tracking_getTrackingByShipmentIDs_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://gateway-dev.shipbob.dev/2026-01/shipments-tracking") .header("Authorization", "Bearer ") .asString(); ``` ```php Tracking_getTrackingByShipmentIDs_example request('GET', 'https://gateway-dev.shipbob.dev/2026-01/shipments-tracking', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp Tracking_getTrackingByShipmentIDs_example using RestSharp; var client = new RestClient("https://gateway-dev.shipbob.dev/2026-01/shipments-tracking"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift Tracking_getTrackingByShipmentIDs_example import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://gateway-dev.shipbob.dev/2026-01/shipments-tracking")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```