Carrier API Errors & Scan Status Reference

Calling carrier tracking endpoints directly from serverless runtimes (Cloudflare Workers, Vercel Functions, AWS Lambda) or legacy webhook aggregators often fails due to WAF blocks, multi-step OAuth handshakes, or asynchronous registration queues.

Use our interactive Carrier API Error Decoder or the reference below to replace brittle carrier integrations with a single GET https://api.lastscanned.com/v1/track/{number} request.

Common Carrier API Errors & Fixes

Carrier / ProviderError Code / SymptomWhy It Happenslastscanned Resolution
UPSHTTP 403 Forbidden / 428 Precondition Required / 250003 Invalid Access LicenseUPS deprecated XML Access Keys (250003) and gates its REST Track API behind Akamai Bot Manager, blocking cloud datacenter ASNs.Call GET /v1/track/1Z... — zero UPS shipper account credentials or OAuth token caches required.
USPSWeb Tools TrackV2 XML retired / v3 OAuth 401 & 429 / 92… blind spotsUSPS retired legacy Web Tools XML and requires Business Customer Gateway OAuth 2.0, while omitting OSM/Pitney Bowes middle-mile scans.Call GET /v1/track/9400... (and pass ?carrier=osm or ?carrier=pitneybowes on 92… consolidator labels).
FedExHTTP 422 Unprocessable Entity / NOT.AUTHORIZED.ERRORShort-lived OAuth bearer token churn in stateless edge workers and production key validation gates.Call GET /v1/track/{number} with your static lsk_live_... key; 12/15/20/22-digit FedEx numbers auto-detect.
Veho / UniUni / SpeedX / GOFO / OnTracHTTP 401 / 403 Firebase App Check / No public self-serve APIRegional e-commerce couriers gate tracking behind browser-minted Firebase App Check tokens or enterprise contracts.All regional couriers (veho, uniuni, speedx, gofo, ontrac, bettertrucks, intelcom) work out of the box via GET /v1/track/{number}.
17TRACK-18019902 ("Not registered yet") / -18010020 ("Additional parameters incorrect")17TRACK requires async POST /register before querying, charges 10 quotas/call for getRealTimeTrackInfo, and requires extra params (mid, postal_code) on 150 carriers.Synchronous on the first GET for 1 quota, with zero extra parameters required. See Migrating from 17TRACK.

Top 45 Cryptic Carrier Scan Statuses (statusDescription → status)

Every carrier uses different raw phrasing for middle-mile consolidator handoffs, customs clearance, and delivery exceptions. lastscanned preserves the verbatim carrier text in statusDescription and events[].description while mapping it to our 7-value normalized status enum (pre_shipment, in_transit, out_for_delivery, delivered, exception, expired, unknown):

Explore all 45 interactive scan status guides at https://lastscanned.com/status.

On this page