Intelcom (Dragonfly) Tracking API & MCP
Query live Intelcom / Dragonfly (intelcom) package status, scan history, and driver drop-off notes in a single synchronous GET request or MCP tool call. Intelcom is Amazon Canada's largest private last-mile carrier and also operates internationally under the Dragonfly brand; lastscanned auto-detects 16-character INTLCM… tracking numbers in Pass 1 and returns a normalized TrackingResult JSON payload.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | intelcom |
| Brand & service aliases | Intelcom, Dragonfly, Intelcom Express, Dragonfly Shipping (intelcom.ca, dragonflyshipping.ca) |
| Category | Canadian & regional e-commerce last-mile courier (Detection precedence #20 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=INTLCM...,INTLCM... (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 Intelcom / Dragonfly
- Unified Intelcom + Dragonfly coverage with zero enterprise onboarding: Intelcom rebranded its consumer-facing operations outside Quebec (and in Australia) to Dragonfly, and does not offer self-serve API keys to merchants or third-party developers.
lastscannedtracksINTLCM…barcodes across both brands out of the box. - Template interpolation & cleanup: Intelcom's raw tracking responses contain uninterpolated placeholders like
"{driver} has delivered your package."or trailing internal suffixes like"First delivery attempt / REASON".lastscannedinterpolatesdriver_name/client_code, strips internal suffixes, filters out hidden steps, and maps step numbers (1–4, negative steps for exceptions) into the 7 standard statuses. - Drop-off location notes in
message: When an Intelcom driver leaves a package,lastscannedsurfaces the English drop-off location note (for example, "Your package was left at your front door" or "left in your mailbox or mail slot") in top-levelmessage.
Tracking Number Formats & Auto-Detection (matches vs mayMatch)
Intelcom is evaluated twentieth (#20) in lastscanned's two-pass detector:
| Pass | Rule / Regex | Check Digit | Examples |
|---|---|---|---|
Pass 1 (matches) | /^INTLCM[A-Z]\d{9}$/i (INTLCM + 1 letter + 9 digits = 16 chars) | — | INTLCMK204815937, INTLCMI719662704 |
Pass 2 (mayMatch) | None | — | — |
When is ?carrier=intelcom optional vs required?
- Optional (auto-detected): All 16-character
INTLCM+ letter + 9-digit barcodes auto-detect in Pass 1 (the letter increments as the 9-digit counter wraps, e.g.INTLCME…,INTLCMI…,INTLCMK…). - Amazon Canada
TBC…numbers: Amazon Logistics Canada numbers startingTBC+ 12 digits route to Amazon (amazon) by default. If you have a non-INTLCMpartner reference billed directly through Intelcom, pass?carrier=intelcom.
Synchronous GET Request & Normalized JSON Response
curl
curl -s "https://api.lastscanned.com/v1/track/INTLCMK204815937" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"JavaScript / TypeScript (fetch)
const res = await fetch("https://api.lastscanned.com/v1/track/INTLCMK204815937", {
headers: { Authorization: `Bearer ${process.env.LASTSCANNED_API_KEY}` },
});
const pkg = await res.json();
console.log(pkg.status, pkg.message, pkg.events[0]);MCP track_package tool call
{
"tool": "track_package",
"arguments": {
"tracking_number": "INTLCMK204815937"
}
}Normalized TrackingResult JSON response
{
"carrier": "intelcom",
"trackingNumber": "INTLCMK204815937",
"status": "delivered",
"statusDescription": "Delivered - No Signature",
"service": "STANDARD",
"deliveredAt": "2026-10-25T17:42:10Z",
"deliveredAtLocal": "2026-10-25T13:42:10",
"signedBy": null,
"destination": {
"city": "Montreal",
"state": "QC",
"country": "CA"
},
"estimatedDelivery": null,
"estimatedDeliveryAt": null,
"message": "Marc has delivered your package.",
"events": [
{
"timestamp": "2026-10-25T17:42:10Z",
"localTime": "2026-10-25T13:42:10",
"status": "delivered",
"description": "Delivered - No Signature",
"location": "Montreal, QC",
"code": "601"
},
{
"timestamp": "2026-10-25T12:15:04Z",
"localTime": "2026-10-25T08:15:04",
"status": "out_for_delivery",
"description": "Loaded",
"location": null,
"code": "300"
},
{
"timestamp": "2026-10-25T08:03:51Z",
"localTime": "2026-10-25T04:03:51",
"status": "in_transit",
"description": "Delivery station inbound scan",
"location": null,
"code": "108"
},
{
"timestamp": "2026-10-24T19:20:00Z",
"localTime": "2026-10-24T15:20:00",
"status": "label_created",
"description": "Data received",
"location": null,
"code": "0"
}
]
}Raw status & step codes:
events[].codepreserves Intelcom's numeric status code ("0"data received,"105"received,"108"delivery station inbound scan,"300"loaded / out for delivery,"590"first delivery attempt,"601"delivered without signature), whilestatusmaps Intelcom'sstep(1→label_created,2→in_transit,3→out_for_delivery,4→delivered,< 0→exception).
Carrier-Specific Status & Integration Notes
- UTC & local timestamps: Intelcom reports scan times as Unix epoch milliseconds alongside an offset-qualified
etatimestamp (e.g.2026-10-25T12:32:23.000000-04:00), whichlastscanneduses to compute both UTCtimestampand local wall-clocklocalTime(plusestimatedDeliveryandestimatedDeliveryAtwhile in transit). - Retention window: Intelcom retains delivered parcels in its tracking system for roughly 90 days after delivery; older numbers return
404 not_found.
Related Resources
- Live browser lookup tool: Track an Intelcom / Dragonfly package live on lastscanned.com/lookup/intelcom
- Carrier hub: All 31 supported carriers
- Regex & check digits: Tracking number formats & auto-detection
- AI support workflows: WISMO AI agents & synchronous tracking
SpeedX Tracking API & MCP
Track SpeedX (SPX 18- and 24-character US and Australian last-mile packages for Temu, Shein, and TikTok Shop) via synchronous REST GET or MCP. Normalized JSON status, scan history, and tracking number format rules—no carrier credentials required.
Canada Post Tracking API & MCP
Track Canada Post / Postes Canada (16-digit GS1 PINs and UPU S10 CA international packages) via synchronous REST GET or MCP. Normalized JSON status, scan history, and tracking number format rules—no carrier credentials required.