How to Integrate a Shipment Tracking API in 5 Minutes
Adding real-time shipment tracking to your application doesn't have to be complex. With the Finxa Track shipment tracking API, you can go from zero to tracking shipments in under 5 minutes. Here's how.
Step 1: Create a Free Account
Head to track.finxa.ai/signup and create your free account. No credit card required — the free plan includes 5 shipment lookups per month.
Step 2: Get Your API Key
Once logged in, navigate to your dashboard and create an API key. Your key will look like fxa_live_xxxxx.xxxxxxxxxxxxxxxxxx. Keep this secure — it authenticates all your API requests.
Step 3: Make Your First API Call
Send a POST request to /api/v1/track with a tracking number. The API auto-detects the carrier — no need to specify DHL, FedEx, UPS, etc.
cURL
curl -X POST https://api.track.finxa.ai/api/v1/track \
-H "Content-Type: application/json" \
-H "x-api-key: fxa_live_xxxxx.xxxxxxxxxxxxxxxxxx" \
-d '{"trackingNumber": "1Z999AA10123456784"}'JavaScript / TypeScript
const response = await fetch("https://api.track.finxa.ai/api/v1/track", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "fxa_live_xxxxx.xxxxxxxxxxxxxxxxxx",
},
body: JSON.stringify({ trackingNumber: "1Z999AA10123456784" }),
});
const data = await response.json();
const shipment = data.data.trackings[0].shipment;
console.log(shipment.statusMilestone); // → "in_transit"Python
import requests
response = requests.post(
"https://api.track.finxa.ai/api/v1/track",
headers={
"Content-Type": "application/json",
"x-api-key": "fxa_live_xxxxx.xxxxxxxxxxxxxxxxxx",
},
json={"trackingNumber": "1Z999AA10123456784"},
)
data = response.json()
shipment = data["data"]["trackings"][0]["shipment"]
print(shipment["statusMilestone"]) # → "in_transit"Step 4: Parse the Response
The API returns normalized shipment data inside data.trackings[].shipment with these key fields:
- shipment.statusMilestone: Normalized lifecycle stage —
info_received,in_transit,out_for_delivery,delivered,exception. - shipment.statusCode: Detailed status — e.g.
delivery_delivered,exception_return. - shipment.originCountryCode / destinationCountryCode: ISO country codes for the shipment route.
- shipment.delivery.service: Carrier service name, e.g.
International Priority. - events[]: Full timeline of carrier scan events with timestamps, locations, and
courierCode. - statistics.timestamps: Key dates —
inTransitDatetime,deliveredDatetime, etc.
Step 5: Display Tracking to Your Users
Use the normalized data to build tracking pages, send email notifications, or power mobile push alerts. Since all carriers return the same data structure, you write the UI once and it works for 1,500+ carriers.
That's It!
You've just integrated a shipment tracking API in 5 minutes. No complex SDKs, no carrier-specific logic, no lengthy onboarding. Just a clean REST API that works.
For the full API reference, check the documentation. For pricing details, see our plans.
Built by Finxa — a Bahrain-based software development company.
Try Finxa Track for Free
Get your API key and start tracking shipments across 1,500+ carriers.
Get Free API Key →