Track
GET /api/tracking/{packageId}
Returns tracking status using packageId.
- URL:
https://parcelconnect.apc-pli.com/api/tracking/{packageId} - Auth: HTTP Basic — see Authentication.
Request
- cURL
- Node.js
- Python
curl -X GET -H "Authorization: Basic {{basic_token}}" \
"https://parcelconnect.apc-pli.com/api/tracking/{{packageId}}"
// Requires Node.js 18+ (built-in fetch).
const auth = Buffer
.from(`${process.env.APC_ACCOUNT_NUMBER}:${process.env.APC_PASSCODE}`)
.toString("base64");
const packageId = "P0123456789";
const res = await fetch(
`https://parcelconnect.apc-pli.com/api/tracking/${packageId}`,
{ headers: { Authorization: `Basic ${auth}` } }
);
const data = await res.json();
for (const ev of data.events) {
console.log(ev.eventDateTimeISOFormat, ev.eventCategory, ev.description);
}
import os
import requests
package_id = "P0123456789"
resp = requests.get(
f"https://parcelconnect.apc-pli.com/api/tracking/{package_id}",
auth=(os.environ["APC_ACCOUNT_NUMBER"], os.environ["APC_PASSCODE"]),
)
resp.raise_for_status()
data = resp.json()
for ev in data["events"]:
print(ev["eventDateTimeISOFormat"], ev["eventCategory"], ev["description"])
Response
{
"hasBeenProcessed": true,
"hasBeenShipped": true,
"isEnRoute": false,
"hasArrived": true,
"shipDate": "01/01/2026 02:41:00 PM",
"packageNumber": "12345P01234567890",
"carrierTrackingNumber": null,
"shipToAddress": "M5V 3L9 CA",
"carrier": "APC",
"serviceName": "APC Priority DDP w/ DC",
"serviceDescription": null,
"finalMileCarrier": "",
"trackingReference1": "Order#1002",
"trackingReference2": "",
"lowerTransit": 0,
"upperTransit": 0,
"externalTrackingUrl": null,
"iconUrl": null,
"prefix": null,
"estimatingDeliveryTimeFrom": null,
"estimatingDeliveryTimeTo": null,
"events": [
{
"date": "11/01/2026 07:45:00 PM",
"code": "11",
"description": "Your order was delivered!",
"location": "East Rutherford, NJ",
"countryCode": "US",
"eventDateTimeISOFormat": "2026-11-01T19:45:00+00:00",
"eventCategory": "Delivered",
"eventCategoryId": 14
},
{
"date": "10/14/2026 02:42:00 PM",
"code": "09",
"description": "Your order is on the way.",
"location": "East Rutherford, NJ",
"countryCode": "US",
"eventDateTimeISOFormat": "2026-10-14T14:42:00+00:00",
"eventCategory": "In Transit",
"eventCategoryId": 7
}
]
}
Response fields — top level
| Field | Type | Description |
|---|---|---|
hasBeenProcessed | boolean | true once APC has received and processed the package data. |
hasBeenShipped | boolean | true once the package has physically departed APC. |
isEnRoute | boolean | true while the package is in transit to its destination. |
hasArrived | boolean | true when the package has reached its final delivery location. |
shipDate | string | Date and time the package shipped, formatted MM/DD/YYYY hh:mm:ss AM/PM. |
packageNumber | string | Full APC tracking number (account-prefixed). |
carrierTrackingNumber | string | null | Final-mile carrier tracking number, if assigned. |
shipToAddress | string | Brief recipient address summary (postal code + country). |
carrier | string | Carrier handling the package (typically APC). |
serviceName | string | Human-readable APC service name (e.g., APC Priority DDP w/ DC). |
serviceDescription | string | null | Optional longer service description. |
finalMileCarrier | string | Final-mile carrier name if handed off. |
trackingReference1 | string | Custom reference value 1, echoed from the label request. |
trackingReference2 | string | |
lowerTransit | integer | Lower bound of the estimated transit window (in days). |
upperTransit | integer | Upper bound of the estimated transit window (in days). |
externalTrackingUrl | string | null | External tracking URL on the final-mile carrier's site, if available. |
iconUrl | string | null | URL of the final-mile carrier's status icon, when a final-mile carrier with an icon is assigned; otherwise null. |
prefix | string | null | |
estimatingDeliveryTimeFrom | string | null | Estimated delivery window — start. Calculated as the ship date plus the final-mile carrier's lower transit time (in business days). null unless a final-mile carrier with a defined transit range is assigned. |
estimatingDeliveryTimeTo | string | null | Estimated delivery window — end. Calculated as the ship date plus the final-mile carrier's upper transit time (in business days). null unless a final-mile carrier with a defined transit range is assigned. |
events | array | Tracking events in reverse-chronological order. See below. |
Response fields — events[]
| Field | Type | Description |
|---|---|---|
date | string | Event timestamp formatted MM/DD/YYYY hh:mm:ss AM/PM, in UTC. |
code | string | Event code. See the full Tracking Events reference. |
description | string | Customer-facing description of the event. Empty string if the event code is not recognized. |
location | string | Location where the event was scanned (e.g., East Rutherford, NJ). |
countryCode | string | ISO 3166 2-character country code for the scan location. |
eventDateTimeISOFormat | string | Event timestamp in ISO 8601 format. The value is UTC; the trailing offset reflects the server's configured timezone. |
eventCategory | string | High-level category (e.g., Delivered, In Transit, On Hold). Empty string if the event code is not recognized. |
eventCategoryId | integer | null | Numeric category ID. See Tracking Events for the mapping. null if the event code is not recognized. |