# Get Tracking by Tracking IDs GET https://gateway-dev.shipbob.dev/2026-01/tracking Retrieves tracking information for one or more shipments by their carrier tracking IDs. Returns the current status, carrier details, estimated delivery time, and full tracking history for each tracking ID. Intended for platform-level consumers that reference shipments by carrier tracking number rather than ShipBob shipment ID. Reference: https://developer-dev.shipbob.dev/api/tracking/get-tracking-by-tracking-i-ds ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: api-2026-01 version: 1.0.0 paths: /2026-01/tracking: get: operationId: get-tracking-by-tracking-i-ds summary: | Get Tracking by Tracking IDs description: > Retrieves tracking information for one or more shipments by their carrier tracking IDs. Returns the current status, carrier details, estimated delivery time, and full tracking history for each tracking ID. Intended for platform-level consumers that reference shipments by carrier tracking number rather than ShipBob shipment ID. tags: - subpackage_tracking parameters: - name: TrackingIds in: query description: A list of carrier tracking 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.PlatformShipmentTrackingResponseArray '400': description: Bad Request content: application/json: schema: $ref: >- #/components/schemas/Tracking.Get.Api.V1.Publictracking.Tracking.Ids.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.Tracking.Ids.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 TrackingPlatformShipmentTrackingResponseStatus: 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: TrackingPlatformShipmentTrackingResponseStatus Tracking.PlatformShipmentTrackingResponse: 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) status: oneOf: - $ref: >- #/components/schemas/TrackingPlatformShipmentTrackingResponseStatus - 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.PlatformShipmentTrackingResponse Tracking.PlatformShipmentTrackingResponseArray: type: array items: $ref: '#/components/schemas/Tracking.PlatformShipmentTrackingResponse' title: Tracking.PlatformShipmentTrackingResponseArray Tracking.Get.Api.V1.Publictracking.Tracking.Ids.Bad.Request.String: type: string title: Tracking.Get.Api.V1.Publictracking.Tracking.Ids.Bad.Request.String Tracking.Get.Api.V1.Publictracking.Tracking.Ids.Internal.Server.Error.String: type: string title: >- Tracking.Get.Api.V1.Publictracking.Tracking.Ids.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_getTrackingByTrackingIDs_example import requests url = "https://gateway-dev.shipbob.dev/2026-01/tracking" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript Tracking_getTrackingByTrackingIDs_example const url = 'https://gateway-dev.shipbob.dev/2026-01/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_getTrackingByTrackingIDs_example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://gateway-dev.shipbob.dev/2026-01/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_getTrackingByTrackingIDs_example require 'uri' require 'net/http' url = URI("https://gateway-dev.shipbob.dev/2026-01/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_getTrackingByTrackingIDs_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://gateway-dev.shipbob.dev/2026-01/tracking") .header("Authorization", "Bearer ") .asString(); ``` ```php Tracking_getTrackingByTrackingIDs_example request('GET', 'https://gateway-dev.shipbob.dev/2026-01/tracking', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp Tracking_getTrackingByTrackingIDs_example using RestSharp; var client = new RestClient("https://gateway-dev.shipbob.dev/2026-01/tracking"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift Tracking_getTrackingByTrackingIDs_example import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://gateway-dev.shipbob.dev/2026-01/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() ```