How do I track multiple FedEx tracking numbers at once?
On fedex.com you can paste up to 30 FedEx numbers, one per line, and the FedEx Track API takes up to 30 per request once you have a FedEx Developer Portal project and an OAuth token. For longer lists, or FedEx mixed with UPS, USPS and the other 543 carriers, send up to 100 numbers per GET /v1/track request with one lastscanned key (at most 35 FedEx numbers per request) and get the same JSON shape for every number. Pro is $4.99/mo for 1,000 unique numbers, then $0.015 each, with no daily limit. A free key tracks 5 numbers a day. With no key you get 1 lookup a day, then pay per request over MPP: $0.50 by card for a 25-number pack, or $0.02 a number in USDC on Tempo.
Try it
curl "https://api.lastscanned.com/v1/track?numbers=541270563758,9612804045318533301017,873970594430" \
-H "Authorization: Bearer lsk_live_YOUR_KEY"// node track-list.mjs < numbers.txt > results.csv (one number per line)
import { stdin } from "node:process";
let text = "";
for await (const chunk of stdin) text += chunk;
const numbers = [...new Set(text.split(/[\s,]+/).map((n) => n.trim().toUpperCase()).filter(Boolean))];
// e.g. 541270563758, 9612804045318533301017, 873970594430
console.log("tracking_number,carrier,status,last_scan_utc,last_scan,location,error");
for (let i = 0; i < numbers.length; i += 35) {
const batch = numbers.slice(i, i + 35);
const url = new URL("https://api.lastscanned.com/v1/track");
url.searchParams.set("numbers", batch.join(","));
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.LASTSCANNED_KEY}` } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
for (const { trackingNumber, result, error } of (await res.json()).results) {
const last = result?.events?.[0]; // events are newest first
const row = [trackingNumber, result?.carrier, result?.status, last?.timestamp, last?.description, last?.location, error?.code];
console.log(row.map((v) => JSON.stringify(v ?? "")).join(","));
}
}Ways to track FedEx numbers in bulk
| Option | How it works | Price | Notes |
|---|---|---|---|
| fedex.com tracking | Paste up to 30 numbers, one per line. | Free | Made for reading on screen; a longer list means another batch of 30. |
| Email track@fedex.com | Up to 30 numbers in the body of one email; FedEx replies with the status. | Free | Replies come by email, not as data you can load. |
| FedEx Track API | POST /track/v1/trackingnumbers with up to 30 numbers, after creating a FedEx Developer Portal project and getting an OAuth token. | Through your FedEx developer account | FedEx only. FedEx's business rules ask you to drop delivered numbers from repeat batches. |
| lastscanned | GET /v1/track?numbers=a,b,c with up to 100 numbers (35 per carrier), one Bearer key. | Free: 5 numbers a day. Pro: $4.99/mo for 1,000 unique numbers, then $0.015 each, no daily limit. | FedEx and 542 other carriers in one response shape. |
Carrier limits from FedEx Developer Portal: Track API and FedEx: track by email, read on November 3, 2026. They can change.
Details
Why 35 per request
A request takes up to 100 numbers, but at most 35 for any one carrier, so an all-FedEx list goes out 35 at a time. A request over the cap is refused with 400, so the loop above never sends more than 35. Mixed lists can fill all 100 as long as no carrier passes 35.
One bad number never fails the batch
Each number gets its own entry, in the order sent, with either result or error. A number FedEx has no record of yet comes back as error not_found while the rest come back with status, events and estimated delivery.
Scan times you can sort by
FedEx gives a zone with each scan, so every event's timestamp converts to UTC exactly. localTime keeps the time as FedEx printed it, for showing to customers.
What a big FedEx list costs
On Pro a number counts once a month however often you re-check it. 1,500 different FedEx numbers in a month is $4.99 + 500 × $0.015 = $12.49. On a free key every lookup counts, repeats included, up to 5 a day.
FAQ
- How many FedEx numbers can I track at once on fedex.com?
- Up to 30, one per line. The FedEx Track API has the same 30-number cap per request.
- Do I need a FedEx developer account to track FedEx numbers by API?
- For FedEx's own Track API, yes: you create a project on the FedEx Developer Portal and send an OAuth token with each call. lastscanned needs only a lastscanned key.
- Can I mix FedEx with UPS and USPS numbers in one request?
- Yes. The carrier is detected from each number, so one request can hold up to 100 numbers from different carriers, with no more than 35 for any one.
- How do I know when a FedEx package stops moving?
- Watch the numbers with POST /v1/watches and get a webhook on every change, then run a short check for numbers with no new scan in a few days. See the no-scan alerts guide.
- How long does FedEx keep tracking history?
- FedEx says tracking information is available for 90 days after delivery for Express, Ground and Custom Critical shipments.