Regional & Cross-Border Carrier Tracking API (UniUni, SpeedX, Veho, GOFO, OnTrac, Yanwen, 4PX, Cainiao, YunExpress)

High-volume e-commerce brands, 3PLs, and cross-border marketplaces increasingly route residential parcels away from UPS and FedEx to avoid $6.45–$6.50 Residential Delivery fees, $6.55–$8.85 Delivery Area Surcharges (DAS), and 29.25%–30.00% fuel surcharges. Instead, parcels move through regional last-mile couriers (UniUni, SpeedX, Veho, GOFO Express, OnTrac, Better Trucks, Jitsu / AxleHire, Intelcom / Dragonfly) and cross-border consolidators (Yanwen, 4PX, Cainiao, YunExpress).

While regional and cross-border networks cut per-parcel shipping costs by 40%–70% (see our 2026 Carrier Surcharges & Rate Guide), they create a major engineering headache for order-status pages and "Where Is My Order?" (WISMO) AI support bots:

  1. No self-serve recipient tracking APIs: Most regional couriers restrict their developer portals to contracted enterprise shippers that generated the label, or protect their web tracking endpoints behind Firebase App Check (Veho), base64 proto-JSON encodings (SpeedX), or cloud IP blocks (OnTrac).
  2. Cross-border barcode swaps (handoffs): A package ships from Shenzhen or Dongguan with a Yanwen (UL494089685YP), 4PX (4PX3002639757438CN), Cainiao (LP00836938654367), or YunExpress (YT2621200705470145) waybill, clears US/CA/UK customs, and is handed to UniUni, SpeedX, GOFO, OnTrac, USPS, or Intelcom under a completely different local tracking number.

lastscanned solves both problems across 542 carriers through a single synchronous REST API (GET /v1/track/:number), batch endpoint (GET /v1/track?numbers=...), push Watches & Webhooks (POST /v1/watches), and native Remote MCP Server.


Quick Reference: Regional & Cross-Border Carrier Slugs, Prefixes & Real Examples

Every tracking number below is a verified format supported out of the box by GET https://api.lastscanned.com/v1/track/{trackingNumber} with automatic carrier detection:

CarrierSlug (?carrier=)Common Prefix / Barcode FormatVerified Example Tracking NumberKey lastscanned Normalization Feature
UniUniuniuniUUS…, UU…, UR…, JY… (16–22 chars)UUS5BM1269395824723 · UR07270000003615622Normalizes gateway hub scans, out-for-delivery driver events, and photo-delivery proof statuses across US & Canada.
SpeedXspeedxSPX + 3 hub letters + 12 digits (18 chars)SPXCLT138701431240Decodes SpeedX's base64 proto-JSON payload and maps facility hub codes (JFK, LAX, ORD, CLT) to clean locations.
VehovehoVH + 12–16 alphanumeric charsVH2PN7CHYPNMPRTracks VH… parcels without requiring a Veho shipper contract or Firebase App Check browser token.
GOFO ExpressgofoGFUS + 14 digits (GFUS…, GFFR…, GFIT…)GFUS01074503026309Tracks US and European GOFO last-mile deliveries with normalized UTC + local timestamps.
OnTrac / LaserShipontrac1LS…, LX…, C or D + 14 digits1LS729108273411 · 1LSCXLNA060523159Unifies legacy LaserShip (1LS…) and West Coast OnTrac (C…/D…) barcodes under one ontrac slug.
Better TrucksbettertrucksBT + 13–16 alphanumeric charsBTPA00190F5N15UNormalizes Midwest/Southern regional sortation and final-mile residential delivery events.
Jitsu (AxleHire)axlehireSCD…, AXL…, JIT…SCD0000F00410922107Tracks urban same-day/next-day route events and delivery completion states.
Intelcom / DragonflyintelcomINTLCM + alphanumeric suffixINTLCMI719662704Auto-detects Canadian (Intelcom) and Australian (Dragonfly) e-commerce parcels with zero shipper credentials.
YanwenyanwenUL…YP, UV…YP, UR…YP, YW…UL494089685YP · YWSTL010022557186Extracts the destination last-mile carrier and exchange tracking number directly into message.
4PX Express4px4PX + 13 digits + CN (18 chars)4PX3002639757438CNRepairs 4PX's UTC+8 wall-clock sorting bug and extracts the domestic handoff barcode into message.
CainiaocainiaoLP or AP + 14 digits, CNUSUP…LP00836938654367 · AP00830954074290Resolves Global Cainiao standard/super-economy waybills and surfaces the destination last-mile tracking number.
YunExpressyunexpressYT + 16 digits (18 chars)YT2621200705470145 · YT2625900708886066Extracts the final-mile carrier (USPS, UniUni, SpeedX, GOFO, OnTrac, Royal Mail) and secondary barcode.

1. Synchronous Single-GET & Batch Tracking (GET /v1/track)

Unlike legacy aggregators that require registering a webhook tracker first, lastscanned returns the live normalized status (label_created, in_transit, out_for_delivery, delivered, exception, returned, unknown) and full scan array in a single GET call:

# Single regional parcel lookup (auto-detects UniUni from UUS prefix)
curl -s https://api.lastscanned.com/v1/track/UUS5BM1269395824723 \
  -H "Authorization: Bearer $LASTSCANNED_KEY"

# Batch lookup across mixed regional & cross-border carriers (up to 100 numbers per call)
curl -s "https://api.lastscanned.com/v1/track?numbers=UUS5BM1269395824723,SPXCLT138701431240,VH2PN7CHYPNMPR,GFUS01074503026309,1LS729108273411,YT2621200705470145" \
  -H "Authorization: Bearer $LASTSCANNED_KEY"

2. Chaining Cross-Border Handoffs Automatically (Yanwen / 4PX / YunExpress $\rightarrow$ UniUni / SpeedX / USPS)

When a parcel ships from China via Yanwen, 4PX, Cainiao, or YunExpress, the customer usually only receives the origin waybill (YT2621200705470145 or UL494089685YP). Once the parcel clears customs and transfers to UniUni, SpeedX, GOFO, OnTrac, or USPS, the origin consolidator's timeline often lags behind the local driver's scans.

lastscanned automatically extracts the domestic last-mile carrier and secondary tracking number into the top-level message field (for example, "Handed to UniUni as UUS5BM1269395824723" or "Handed to USPS as 9261290980949654107812"). Your backend or WISMO agent can chain a follow-up lookup in three lines of code:

async function trackWithHandoff(trackingNumber: string, apiKey: string) {
  const res = await fetch(`https://api.lastscanned.com/v1/track/${encodeURIComponent(trackingNumber)}`, {
    headers: { Authorization: `Bearer ${apiKey}` },
  });
  const primary = await res.json();

  // Check if the cross-border consolidator reported a domestic last-mile barcode
  const handoffMatch = primary.message?.match(/Handed to .+ as ([A-Z0-9]{8,34})/i);
  if (handoffMatch && primary.status !== "delivered") {
    const lastMileNumber = handoffMatch[1];
    const lastMileRes = await fetch(`https://api.lastscanned.com/v1/track/${encodeURIComponent(lastMileNumber)}`, {
      headers: { Authorization: `Bearer ${apiKey}` },
    });
    const lastMile = await lastMileRes.json();
    return { primary, lastMile };
  }

  return { primary, lastMile: null };
}

See Cross-Border & Last-Mile Handoff Resolution for all supported handoff pairs.


3. Push Watches & Webhooks for Regional Couriers (POST /v1/watches)

If you want proactive Slack, email, or SMS notifications when a UniUni, SpeedX, Veho, or GOFO parcel goes out_for_delivery, hits a gate-code exception, or is delivered, create a Watch via POST /v1/watches:

curl -X POST https://api.lastscanned.com/v1/watches \
  -H "Authorization: Bearer $LASTSCANNED_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "trackingNumbers": [
      "UUS5BM1269395824723",
      "SPXCLT138701431240",
      "VH2PN7CHYPNMPR",
      "GFUS01074503026309"
    ],
    "metadata": { "store": "us-dtc", "channel": "shopify" }
  }'
  • Immediate initial result: POST /v1/watches returns the current result for each tracking number immediately in the HTTP response—no waiting for a background queue.
  • Adaptive polling at zero extra cost: Watching a number counts as 1 unique tracking number on your plan. All subsequent background checks (every 15 minutes when out_for_delivery, every 30 minutes on exception, every 1 hour when in_transit, every 2 hours on label_created) are completely free.
  • Native or 17TRACK v2 webhook format: Receive signed tracking.updated events in lastscanned's JSON schema or set "format": "17track" on PUT /v1/webhook for drop-in compatibility with existing 17TRACK webhook handlers. See Watches and Webhooks.

4. Connecting AI Support Agents via MCP (https://mcp.lastscanned.com)

Give Claude Code, Cursor, or your production WISMO customer-support agent direct access to all 542 regional, postal, and commercial carriers over Streamable HTTP:

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

Your agent immediately gains track_package, track_packages (up to 100 numbers per call), and list_carriers, or can pay per lookup without an account via HTTP 402 Stripe MPP ($0.50 for a 25-number card pack or $0.02/number in USDC on Tempo).


On this page