Carriers

TForce Final Mile Tracking API & MCP

Query live TForce Final Mile / TForce Logistics (tforce, formerly Dynamex) package status and scan history across the US and Canada in a single synchronous GET request or MCP tool call. lastscanned auto-detects 20-character TF… package IDs in Pass 1 (matches) and hyphenated order piece numbers (NJ0342070-1) in Pass 2 (mayMatch), returning a normalized TrackingResult JSON payload.

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)tforce
Brand & service aliasesTForce Final Mile, TForce Logistics, Dynamex (tforcelogistics.com, direct.tfesg.com/finalmiletrack)
CategoryUS & Canadian final-mile parcel carrier (Detection precedence #23 of 31)
Single-package REST endpointGET https://api.lastscanned.com/v1/track/{trackingNumber}
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=TF...,NJ... (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 & 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)

Why developers use lastscanned for TForce Final Mile

  • Structured JSON from TForce's HTML-only final-mile tracker: TForce Logistics' public Final Mile tracker (direct.tfesg.com/finalmiletrack) renders multi-package HTML tables without a JSON endpoint and prints scan dates without a calendar year (e.g. "Oct 24 - 5:43 PM EDT"). lastscanned isolates the exact requested Package ID block, resolves the year and timezone offset (EDT, EST, CDT, CST, MDT, MST, PDT, PST, ADT, AST, NDT, NST), and returns structured JSON.
  • Smart "Returned To Sender" & "Shortage" normalization: When a TForce parcel is returning to the shipper, the trip back still prints as "Out For Delivery" in the scan rows while the summary Status row says "Returned To Sender"; similarly, when a shipper manifests a parcel without handing it over, TForce logs a "Shortage" row alongside "Package information has been provided but the item has not been received". lastscanned reconciles both into returned and label_created respectively.
  • Distinguishes recipient signatures from drop-off locations: TForce's "Delivered To" field holds either a person's name or a drop-off spot ("FRONT DOOR", "PORCH", "MAILROOM"). lastscanned only populates signedBy when the value is an actual recipient signature.

Tracking Number Formats & Auto-Detection (matches vs mayMatch)

TForce Final Mile is evaluated twenty-third (#23) in lastscanned's two-pass detector:

PassRule / RegexCheck DigitExamples
Pass 1 (matches) — TF Package ID/^TF\d{18}$/i (TF + 18 digits = 20 chars)—TF100000000012345678, TF105840000342954623
Pass 2 (mayMatch) — Order Piece/^[A-Z]{2}\d{7}-\d{1,2}$/i (2-letter depot code + 7 digits + - + 1–2 digit piece number)—NJ0342070-1, CD1524403-1

When is ?carrier=tforce required?

  • Optional (auto-detected): All 20-character TF + 18-digit package IDs (Pass 1) and XX1234567-1 depot order piece numbers (Pass 2).
  • Required (?carrier=tforce): Shipper-assigned reference numbers that TForce also delivers (such as Best Buy BBYC… references or cross-border labels handed to TForce under another carrier's barcode). Note that TForce's tracker covers shipments from the last 120 days.

Synchronous GET Request & Normalized JSON Response

curl

curl -s "https://api.lastscanned.com/v1/track/TF100000000012345678" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"

JavaScript / TypeScript (fetch)

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

MCP track_package tool call

{
  "tool": "track_package",
  "arguments": {
    "tracking_number": "TF100000000012345678"
  }
}

Normalized TrackingResult JSON response

{
  "carrier": "tforce",
  "trackingNumber": "TF100000000012345678",
  "status": "delivered",
  "statusDescription": "Delivered",
  "service": null,
  "deliveredAt": "2026-10-25T21:43:00Z",
  "deliveredAtLocal": "2026-10-25T17:43:00",
  "signedBy": null,
  "destination": {
    "city": "ORLEANS",
    "state": "ON",
    "country": "CA"
  },
  "estimatedDelivery": null,
  "message": "Delivered",
  "events": [
    {
      "timestamp": "2026-10-25T21:43:00Z",
      "localTime": "2026-10-25T17:43:00",
      "status": "delivered",
      "description": "Delivered",
      "location": "OTTAWA, ON",
      "code": null
    },
    {
      "timestamp": "2026-10-25T12:20:00Z",
      "localTime": "2026-10-25T08:20:00",
      "status": "out_for_delivery",
      "description": "Out For Delivery",
      "location": "OTTAWA, ON",
      "code": null
    },
    {
      "timestamp": "2026-10-25T08:05:00Z",
      "localTime": "2026-10-25T04:05:00",
      "status": "in_transit",
      "description": "Received At Delivery Facility",
      "location": "OTTAWA, ON",
      "code": null
    },
    {
      "timestamp": "2026-10-24T19:15:00Z",
      "localTime": "2026-10-24T15:15:00",
      "status": "label_created",
      "description": "Manifested By Shipper",
      "location": "MISSISSAUGA, ON",
      "code": null
    }
  ]
}

Note on TForce Final Mile vs TForce Freight: This integration covers TForce Final Mile / TForce Logistics e-commerce parcel deliveries (TF… and order piece numbers) across the US and Canada, not LTL pallet freight PRO numbers.

On this page