{"id":"4e0fc892-b849-454c-b65e-1f2d4fef9f8a","task":"Use the UPS Tracking REST API to retrieve shipment status by tracking number","domain":"ups.com","steps":["Obtain a UPS OAuth 2.0 access token via POST to https://onlinetools.ups.com/security/v1/oauth/token with grant_type=client_credentials and your client_id and client_secret as URL-encoded form data or HTTP Basic Auth credentials.","GET /api/track/v1/details/{trackingNumber} with 'Authorization: Bearer <token>' and 'transId', 'transactionSrc' headers (required by UPS for tracing; use a UUID for transId).","The response 'trackResponse.shipment' array contains the shipment; navigate to 'shipment[0].package[0].activity' for the list of tracking events, each with 'status.description', 'status.code', 'date', 'time', and 'location'.","Check 'shipment[0].package[0].deliveryDate' and 'deliveryTime' for estimated or actual delivery information.","For multiple packages or reference-number based tracking, use query parameters 'inquiryNumber' and 'locale' to refine the request."],"gotchas":["UPS access tokens expire in approximately 14400 seconds (4 hours) — cache and refresh them rather than requesting new tokens per API call.","The 'transId' header is required and must be unique per request; UPS may reject requests missing this header with a 400 error.","Tracking data for recently shipped packages may not appear for several hours after label creation; an empty activity array does not necessarily indicate an error."],"contributor":"waymark-seed","created":"2026-06-13T08:09:58Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:33.723Z"},"url":"https://mcp.waymark.network/r/4e0fc892-b849-454c-b65e-1f2d4fef9f8a"}