How do I track multiple USPS tracking numbers at once?
USPS.com tracks up to 35 numbers at a time, separated by commas. The USPS Tracking API (v3r2) takes 1 to 35 numbers per POST /tracking request, with an OAuth token from an app you register with USPS. With lastscanned you send up to 35 USPS numbers per GET /v1/track request, or up to 100 when the list mixes carriers, with one key and no USPS account, and loop for longer lists. 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=YOUR_USPS_NUMBER,1Z000Y770414233027,541270563758" \
-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. YOUR_USPS_NUMBER_1, YOUR_USPS_NUMBER_2
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(","));
url.searchParams.set("carrier", "usps");
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 USPS numbers in bulk
| Option | How it works | Price | Notes |
|---|---|---|---|
| USPS.com Tracking | Enter up to 35 numbers, separated by commas. | Free | Made for reading on screen; a longer list means another search. |
| USPS Tracking API (v3r2) | POST https://api.usps.com/tracking/v3r2/tracking with an array of 1 to 35 numbers and an OAuth Bearer token. | Through your USPS developer account | USPS only. A request over your app's quota comes back 429. |
| lastscanned | GET /v1/track?numbers=a,b,c with up to 35 USPS numbers (100 in all), one Bearer key. | Free: 5 numbers a day. Pro: $4.99/mo for 1,000 unique numbers, then $0.015 each, no daily limit. | USPS and 548 other carriers in one response shape. |
Carrier limits from USPS: track up to 35 items at a time and USPS Tracking API v3r2, read on November 5, 2026. They can change.
Details
35 per carrier, 100 per request
USPS caps both its site and its API at 35 numbers. lastscanned caps any one carrier at 35 per request too, but a request can hold 100 numbers in all, so USPS numbers can go out alongside UPS, FedEx and the rest of a mixed list.
No USPS developer app or OAuth
USPS's API needs an app registered with USPS and an OAuth token on every call, under a quota per app. lastscanned needs one Bearer key, and the same key covers every other carrier.
The USPS leg of other shippers' labels
eCommerce labels that hand off to USPS for the last mile carry USPS numbers (92 to 95 followed by 18 to 24 digits). They detect as USPS from the format, so you can send them without a carrier hint.
What a big USPS list costs
On Pro a number counts once a month however often you re-check it. 3,000 different USPS numbers in a month is $4.99 + 2,000 × $0.015 = $34.99.
FAQ
- How many USPS numbers can I track at once on USPS.com?
- Up to 35, separated by commas.
- Can the USPS Tracking API track multiple numbers in one call?
- Yes. Version 3r2 takes an array of 1 to 35 tracking numbers per POST /tracking request, with an OAuth token.
- How many USPS numbers fit in one lastscanned request?
- 35. A request can hold 100 numbers in all, with no more than 35 for any one carrier, so a USPS-only list goes out 35 at a time.
- Do I need a USPS business account to track USPS by API?
- For USPS's own API you register an app with USPS and request OAuth tokens. lastscanned needs only a lastscanned key.