Carriers

Flash Express (Thailand) Tracking API & MCP

Query live Flash Express Thailand (flashexpress) parcel status and scan history in a single synchronous GET request or MCP tool call. Up to 20 numbers go into one upstream request.

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)flashexpress
Brand & service aliasesFlash Express, Flash Express Thailand, แฟลช เอ็กซ์เพรส
CategoryThai domestic courier
Single-package REST endpointGET https://api.lastscanned.com/v1/track/{trackingNumber} (add ?carrier=flashexpress where noted below)
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=TH01234567890A,...
MCP server (https://mcp.lastscanned.com)track_package, track_packages, list_carriers (claude mcp add --transport http lastscanned https://mcp.lastscanned.com)
Authentication & pricingAuthorization: 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)

Tracking Number Formats & Auto-Detection

PassRule / RegexCheck DigitExamples
Pass 1 (matches)None——
Pass 2 (mayMatch)/^TH\d{2}[A-Z0-9]{8,12}[A-Z]$/—TH01234567890A
Explicit (?carrier=flashexpress)Any other Flash Express Thailand number——

Thai Flash Express numbers start with TH and end with a letter. The shape is loose, so it is only tried when no other carrier claims the number.

Synchronous GET Request & Normalized JSON Response

curl

curl -s "https://api.lastscanned.com/v1/track/TH01234567890A?carrier=flashexpress" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"

JavaScript / TypeScript (fetch)

const res = await fetch("https://api.lastscanned.com/v1/track/TH01234567890A?carrier=flashexpress", {
  headers: { Authorization: `Bearer ${process.env.LASTSCANNED_API_KEY}` },
});
const pkg = await res.json();
console.log(pkg.status, pkg.events[0]);

MCP track_package tool call

{
  "tool": "track_package",
  "arguments": {
    "tracking_number": "TH01234567890A",
    "carrier": "flashexpress"
  }
}

Normalized TrackingResult JSON response

{
  "carrier": "flashexpress",
  "trackingNumber": "TH01234567890A",
  "status": "out_for_delivery",
  "statusDescription": "Out for delivery",
  "service": null,
  "deliveredAt": null,
  "deliveredAtLocal": null,
  "signedBy": null,
  "destination": {
    "city": null,
    "state": "Bangkok",
    "country": "TH"
  },
  "events": [
    {
      "timestamp": "2026-10-26T02:20:00Z",
      "localTime": "2026-10-26T09:20:00",
      "status": "out_for_delivery",
      "description": "Out for delivery",
      "location": null,
      "code": "DELIVERY_TICKET_CREATION_SCAN"
    },
    {
      "timestamp": "2026-10-25T14:05:00Z",
      "localTime": "2026-10-25T21:05:00",
      "status": "in_transit",
      "description": "Arrived at the delivery hub",
      "location": null,
      "code": "ARRIVAL_WAREHOUSE_SCAN"
    }
  ]
}

Status Notes

  • Thailand only: this adapter uses the Thai site's tracking API. Flash Express Malaysia and the Philippines are not covered because their sites block automated requests.
  • Times: scan times are Thailand time (Asia/Bangkok), so both timestamp and localTime are set.
  • Signer: the recipient's name and proof-of-delivery photo are shown by Flash Express only to logged-in users, so signedBy is filled only when the API returns it.

On this page