Amazon Logistics Tracking API & MCP
Query live Amazon Logistics (amazon) package status and scan history for Amazon Shipping and Amazon Multi-Channel Fulfillment (MCF) parcels (TBA…, TBC…, TBM…) in a single synchronous GET request or MCP tool call. lastscanned returns a normalized TrackingResult JSON payload—without requiring an Amazon Selling Partner API (SP-API) developer role, AWS IAM signing, or Login with Amazon (LWA) OAuth tokens.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | amazon |
| Brand & service aliases | Amazon Logistics, Amazon Shipping (SWA), Amazon Multi-Channel Fulfillment (MCF), TBA / TBC / TBM |
| Category | National e-commerce & merchant fulfillment carrier (Detection precedence #5 of 31) |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=TBA...,TBA... (up to 35 numbers per carrier in a 100-number call) |
MCP server (https://mcp.lastscanned.com) | track_package, track_packages, list_carriers (claude mcp add --transport http lastscanned https://mcp.lastscanned.com) |
| Authentication & pricing | Authorization: Bearer lsk_live_... · 1 free keyless lookup/day per IP · Free tier (5 unique numbers/day, $0) · Pro ($4.99/mo for 1,000 unique numbers, unlimited re-polls, $0.015/extra) · HTTP 402 Stripe MPP ($0.50 for 25-number lsk_pack_ key or $0.02/number in USDC on Tempo) |
Why developers use lastscanned for Amazon Shipping & MCF
- Skip Amazon SP-API & Amazon Shipping API onboarding: Integrating directly with Amazon's Shipping v2 API requires an approved Amazon Developer profile, LWA OAuth 2.0 client credentials, and merchant-specific authorization grants. With
lastscanned, any developer or AI agent can track publicTBA/TBC/TBMshipments immediately viaGET /v1/track/:number. - Unpack double-encoded JSON & event codes: Amazon's public tracker returns nested stringified JSON (
progressTrackerandeventHistory) with raw camelCase event codes (CreationConfirmed,PickupDone,OutForDelivery).lastscannedparses, deduplicates, and normalizes them into standard statuses and human-readable descriptions.
Tracking Number Formats & Auto-Detection (matches vs mayMatch)
Amazon is evaluated fifth (#5) in lastscanned's two-pass detector:
| Pass | Rule / Regex | Check Digit | Examples |
|---|---|---|---|
Pass 1 (matches) | /^TB[ACM]\d{12}$/i (TBA for US, TBC for Canada, or TBM for Mexico + 12 digits = 15 characters) | — | TBA319482710492, TBC102938475610, TBM908172635412 |
Pass 2 (mayMatch) | None | — | — |
When is ?carrier=amazon optional vs required?
- Optional (auto-detected): All 15-character
TBA,TBC, andTBMtracking numbers auto-detect in Pass 1. No other carrier uses aTBprefix. - Important scope note — Amazon Shipping & MCF vs retail
amazon.comorders: Only parcels shipped via Amazon Shipping (Ship With Amazon) or Amazon Multi-Channel Fulfillment (MCF)—i.e., orders fulfilled for third-party merchants—have public tracking records. Ordinary retailamazon.commarketplace orders are private to the buyer's Amazon account and return404 not_found("Amazon has no public record of that number (amazon.com orders are tracked only in the buyer's account)"). Shipments older than 45 days also return404 not_found.
Synchronous GET Request & Normalized JSON Response
curl
curl -s "https://api.lastscanned.com/v1/track/TBA319482710492" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"JavaScript / TypeScript (fetch)
const res = await fetch("https://api.lastscanned.com/v1/track/TBA319482710492", {
headers: { Authorization: `Bearer ${process.env.LASTSCANNED_API_KEY}` },
});
const pkg = await res.json();
console.log(pkg.status, pkg.service, pkg.deliveredAt);MCP track_package tool call
{
"tool": "track_package",
"arguments": {
"tracking_number": "TBA319482710492"
}
}Normalized TrackingResult JSON response
{
"carrier": "amazon",
"trackingNumber": "TBA319482710492",
"status": "delivered",
"statusDescription": "Delivered",
"service": "Amazon Shipping",
"deliveredAt": "2026-10-24T18:06:14Z",
"deliveredAtLocal": null,
"signedBy": "Front porch",
"destination": {
"city": "SEATTLE",
"state": "WA",
"country": "US"
},
"estimatedDelivery": null,
"events": [
{
"timestamp": "2026-10-24T18:06:14Z",
"localTime": null,
"status": "delivered",
"description": "Delivered",
"location": "SEATTLE, WA, US",
"code": "Delivered"
},
{
"timestamp": "2026-10-24T14:22:05Z",
"localTime": null,
"status": "out_for_delivery",
"description": "Out for delivery",
"location": "SEATTLE, WA, US",
"code": "OutForDelivery"
},
{
"timestamp": "2026-10-24T09:11:40Z",
"localTime": null,
"status": "in_transit",
"description": "Arrived at Amazon facility",
"location": "SUMNER, WA, US",
"code": "Received"
},
{
"timestamp": "2026-10-22T21:15:00Z",
"localTime": null,
"status": "label_created",
"description": "Shipping label created",
"location": null,
"code": "CreationConfirmed"
}
]
}Raw status & scan codes: Each event in
events[]preserves Amazon's raweventCodeincode("CreationConfirmed","PickupDone","Received","Departed","InTransit","OutForDelivery","Delivered","DeliveryAttempted","Returned") and translates it into a clean human-readabledescription(appending anysubReasonCodedetails).
Carrier-Specific Status & Integration Notes
- UTC-only timestamps (
localTime: null): Amazon reports scan timestamps strictly in UTC (whichtrack.amazon.comconverts to the viewer's browser timezone client-side). Therefore,timestampanddeliveredAtare always exact UTC ISO 8601 strings ("2026-10-24T18:06:14Z"), whilelocalTimeanddeliveredAtLocalarenull. - Service differentiation (
Amazon ShippingvsAmazon Multi-Channel Fulfillment):serviceautomatically distinguishes between"Amazon Shipping"and"Amazon Multi-Channel Fulfillment"based on the shipment'strackerSource.
Related Resources
- Live browser lookup tool: Track an Amazon package live on lastscanned.com/lookup/amazon
- Carrier hub: All 31 supported carriers
- Regex & check digits: Tracking number formats & auto-detection
- AI support workflows: WISMO AI agents & synchronous tracking
FedEx Tracking API & MCP
Track FedEx (FedEx Ground, FedEx Express, FedEx Home Delivery, FedEx SmartPost / Ground Economy) packages via synchronous REST GET or MCP. Normalized JSON status, scan history, and tracking number format rules—no carrier credentials required.
OnTrac (LaserShip) Tracking API & MCP
Track OnTrac and LaserShip (C/D 15-character and 1LS tracking numbers) packages via synchronous REST GET or MCP. Normalized JSON status, scan history, and tracking number format rules—no carrier credentials required.