Developer Docs

Getting Started
  • Quick Start
  • Getting Started
  • Authentication
API Reference
  • Overview
  • Orders
  • Products
  • Inventory
  • Shipments
  • Customers
  • Returns
  • Tracking
Integrations
  • Shopify
  • WooCommerce
  • BigCommerce
  • Custom API
Webhooks
  • Overview
  • Webhook Events
Resources
  • Rate Limits
  • Error Codes
  • API Playground
  • SDK Libraries
  • Changelog
  • API Status
Support
  • Community
  • GitHub
  • Support
HomeDeveloper HubDocsApi ReferenceTracking

Tracking API

Get real-time tracking updates, delivery status, and shipment events for all your orders.

Overview

The Tracking API provides real-time visibility into shipment status, location updates, and delivery events. Track packages from warehouse to doorstep with detailed event history and estimated delivery times.

Real-Time Updates

Live tracking events as they happen

Location History

Complete shipment journey data

ETA Predictions

Accurate delivery estimates

Get Tracking Information

GET/tracking/:tracking_number

Retrieve complete tracking information including current status, location history, and delivery estimates.

Request Example
cURL
curl -X GET "https://app.3plship.com/api/v1/tracking/1Z999AA10123456784" \
  -H "Authorization: Bearer zl_live_abc123..."
Node.js
const response = await fetch(
  'https://app.3plship.com/api/v1/tracking/1Z999AA10123456784',
  {
    headers: {
      'Authorization': 'Bearer zl_live_abc123...'
    }
  }
);
const data = await response.json();
Python
import requests

response = requests.get(
    'https://app.3plship.com/api/v1/tracking/1Z999AA10123456784',
    headers={'Authorization': 'Bearer zl_live_abc123...'}
)
data = response.json()
Response Example
{
  "success": true,
  "data": {
    "tracking_number": "1Z999AA10123456784",
    "status": "in_transit",
    "carrier": "UPS",
    "service_type": "Ground",
    "estimated_delivery": "2025-01-15T17:00:00.000Z",
    "current_location": {
      "city": "Chicago",
      "state": "IL",
      "country": "US",
      "facility": "UPS Distribution Center"
    },
    "events": [
      {
        "timestamp": "2025-01-12T14:30:00.000Z",
        "status": "in_transit",
        "location": {
          "city": "Chicago",
          "state": "IL"
        },
        "description": "Package arrived at facility"
      },
      {
        "timestamp": "2025-01-12T08:15:00.000Z",
        "status": "picked_up",
        "location": {
          "city": "Indianapolis",
          "state": "IN"
        },
        "description": "Package picked up by carrier"
      }
    ],
    "shipment_details": {
      "weight": "2.5",
      "weight_unit": "lbs",
      "dimensions": {
        "length": 12,
        "width": 8,
        "height": 6,
        "unit": "in"
      }
    }
  },
  "meta": {
    "timestamp": "2025-01-12T15:30:45.123Z"
  }
}

Track Multiple Shipments

POST/tracking/batch

Track up to 100 shipments in a single API call for efficient bulk tracking.

Request Body
{
  "tracking_numbers": [
    "1Z999AA10123456784",
    "1Z999AA10123456785",
    "1Z999AA10123456786"
  ]
}

Tracking Status Codes

StatusDescription
pendingLabel created, awaiting pickup
picked_upPackage picked up by carrier
in_transitPackage is on the way
out_for_deliveryPackage is out for delivery today
deliveredPackage successfully delivered
exceptionDelivery exception occurred
returnedPackage returned to sender

Real-Time Updates with Webhooks

Instead of polling the tracking API, subscribe to tracking webhooks to receive automatic updates when shipment status changes.

Learn about Webhooks

Next Steps

Webhooks Documentation

Set up real-time tracking notifications

Try in Playground

Test tracking API endpoints interactively