Real-time synchronous GET tracking without async number registration or $119/year prepaid blocks.

17TRACK's API requires registering every tracking number into an asynchronous quota pool before querying status, and locks paid tiers into $119/year annual prepaid packages. lastscanned is a stateless, synchronous REST API and remote MCP server: send GET /v1/track/:number and get a clean 7-state English status, normalized UTC + local timestamps, and cross-border handoff numbers in one call for $4.99/month.

lastscanned vs. 17TRACK at a glance

Side-by-side comparison of architecture, monthly pricing across 31 supported carriers, and AI agent integration.

Featurelastscanned17TRACK
Lookup workflowSingle synchronous GET /v1/track/:number (zero registration)Two-step async workflow: POST /register first, then wait for webhook or poll
Billing commitmentMonth-to-month $4.99/mo Pro (or $0/mo Free for 5/day)Annual prepaid blocks starting at $119/year (5,000/yr after 200 one-time trial)
Cost for 1,000 packages / month$4.99 / month ($0.015 per extra unique number)~$19.83 / month equivalent (requires annual prepaid commitment)
Status schema7-state English enum (label_created, in_transit, out_for_delivery, delivered, exception, returned, unknown)Numeric status/sub-status codes requiring lookup tables
Scan timestampsNormalized ISO-8601 UTC timestamp + local wall-clock localTimeMixed origin/destination timezone offsets across cross-border carriers
Cross-border last-mile handoff numberExtracted into top-level message ('Handed to <carrier> as <number>')Buried in nested provider exchange blocks after async sync
Official remote MCP serverhttps://mcp.lastscanned.com (Streamable HTTP)Third-party community stdio wrappers only
Keyless HTTP 402 Stripe MPPBuilt-in ($0.50 / 25-pack card or $0.02 USDC on Tempo)None

One synchronous GET request vs. register-then-wait

On 17TRACK, calling gettrackinfo on a new tracking number fails unless you first register the number via /register and wait for their background crawler to populate events.

Immediate answers for on-demand lookups
With lastscanned, GET /v1/track/:number fetches and normalizes the carrier's live tracking timeline on the spot—ideal for WISMO chatbots, order status pages, and support tools.
No wasted quota on unshipped or invalid numbers
17TRACK deducts a quota credit the moment you register a number. On lastscanned, upstream carrier errors (502/504) never consume quota.

Clean timestamps and handoff numbers on cross-border parcels

Cross-border consolidators like SunYou, CNE Express, Yanwen, 4PX, Cainiao, YunExpress, UBI Smart Parcel, and Asendia often return raw Chinese strings or mislabeled +08:00 timezone offsets.

Timezone-accurate UTC & localTime
lastscanned strips mislabeled +08:00 offsets on destination-country scans, resolves local airport and ZIP timezones, and emits both UTC timestamp and localTime on every scan.
Follow the parcel to the doorstep
When a cross-border parcel hands off to USPS, UniUni, SpeedX, GOFO, OnTrac, Canada Post, Intelcom/Dragonfly, or Sendle, lastscanned extracts the secondary tracking number into message so you can track the final mile seamlessly.

Month-to-month $4.99 Pro & native MCP vs. $119/yr lock-in

Start free with 5 unique numbers/day (plus 1 keyless lookup/day per IP), upgrade to $4.99/month when ready, or let AI agents pay per call over HTTP 402.

No annual contract
Pay $4.99/month for 1,000 unique tracking numbers with unlimited free re-polls all month, instead of pre-purchasing $119/year quota blocks.
Hosted Streamable HTTP MCP
Add https://mcp.lastscanned.com directly to Claude, Cursor, or ChatGPT without running a local Python/Node stdio server.

Switch in one synchronous request

No SDKs, no tracker registration queues, and no webhook listeners. Query up to 100 tracking numbers at once over REST or connect your AI agent over Streamable HTTP MCP.

REST (Synchronous GET)

curl "https://api.lastscanned.com/v1/track/LP00658129481029" \
  -H "Authorization: Bearer lsk_live_YOUR_API_KEY"

Remote MCP (Claude Code / Cursor / ChatGPT)

claude mcp add --transport http lastscanned https://mcp.lastscanned.com \
  --header "Authorization: Bearer lsk_live_YOUR_API_KEY"

Then ask your agent

> Track Cainiao parcel LP00658129481029 and find the last-mile tracking number.

lastscanned vs. 17TRACK FAQ

Why does 17TRACK return empty events on the first API call while lastscanned returns the full timeline?
17TRACK uses an asynchronous registration model where POST /register queues a background job. lastscanned executes a live synchronous lookup on GET /v1/track/:number and returns the full scan timeline in the same HTTP response.
How does lastscanned handle secondary tracking numbers for Cainiao, Yanwen, 4PX, and YunExpress?
When a cross-border consolidator assigns a local last-mile tracking number (such as USPS, UniUni, SpeedX, GOFO, Canada Post, or Intelcom), lastscanned populates the top-level message field (for example, 'Handed to USPS as 9261290100130612345678') so your code or AI agent can immediately query the local courier.
Is there an annual contract or minimum commitment on lastscanned?
No. The Free tier is $0/month (5 unique numbers/day), Pro is $4.99/month month-to-month (1,000 unique numbers + $0.015/extra), and Stripe MPP HTTP 402 lets agents pay $0.50 for a 25-number credit pack with no subscription at all.

All 31 carriers included