Unified shipment tracking data from FedEx, UPS, and USPS APIs.
Table of Contents
Returns a unified response from FedEx, UPS, and USPS tracking APIs.
$ npm install ts-shipment-tracking
Courier API credentials are stored using dotenv. If you do not have dotenv installed:
$ npm install dotenv
Add the following credentials to your .env
file:
FEDEX_KEY=
FEDEX_PASSWORD=
FEDEX_ACCOUNT_NUMBER=
FEDEX_METER_NUMBER=
UPS_ACCESS_LICENSE_NUMBER=
USPS_USER_ID=
Example input:
import 'dotenv/config';
import { TrackingInfo, track, trackByCourier, trackFedex } from 'ts-shipment-tracking';
(async () => {
const exampleOne: TrackingInfo | undefined = await track('<any_tracking_number>');
console.log(exampleOne);
// or
const exampleTwo: TrackingInfo | undefined = await trackByCourier('ups', '<ups_tracking_number>');
console.log(exampleTwo);
// or
const exampleThree: TrackingInfo | undefined = await trackFedex('<fedex_tracking_number>');
console.log(exampleThree);
})();
Example output:
{
events: [
{
status: 'IN_TRANSIT',
label: 'Arrived at FedEx location',
location: 'LEBANON TN US 37090',
date: 1616823540000
},
...
],
estimatedDeliveryDate: 1616996340000
}
undefined
when the courier api does not have tracking info for the given tracking number or when any error occurs (including courier api not responding). Better error handling will be added in the future.
Statuses:
'UNAVAILABLE'
'LABEL_CREATED'
'IN_TRANSIT'
'OUT_FOR_DELIVERY'
'DELIVERY_ATTEMPTED'
'RETURNED_TO_SENDER'
'EXCEPTION'
'DELIVERED'