Carriers
Whistl (Parcelhub) Tracking API & MCP
Query live Whistl (whistl, the Parcelhub tracker) status, scan history and the underlying carrier's tracking number in a single synchronous GET request or MCP tool call.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | whistl |
| Brand aliases | Whistl, Parcelhub, Whistl Parcelhub |
| Category | UK parcel hub and shipping platform |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=TYPQYU501214190,... |
MCP server (https://mcp.lastscanned.com) | track_package, track_packages, list_carriers |
| Authentication & pricing | Authorization: Bearer lsk_live_... · 1 free keyless lookup/day per IP |
Tracking Number Formats & Auto-Detection
| Pass | Rule / Regex | Check Digit | Examples |
|---|---|---|---|
Pass 1 (matches) | none | none | none |
Pass 2 (mayMatch) | /^TYP[A-Z]{3}\d{9}$/ | none | TYPQYU501214190 |
Parcelhub references have no single published shape, so only the TYP… form seen so far is tried automatically. Pass ?carrier=whistl for any other reference.
Synchronous GET Request & Normalized JSON Response
curl -s "https://api.lastscanned.com/v1/track/TYPQYU501214190?carrier=whistl" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"{
"carrier": "whistl",
"trackingNumber": "TYPQYU501214190",
"status": "in_transit",
"statusDescription": "Arrived at hub",
"service": "EU DDP Premium",
"deliveredAt": null,
"deliveredAtLocal": null,
"signedBy": null,
"destination": null,
"message": "Handed to Interpost as 011B004A44001390720001",
"events": [
{
"timestamp": null,
"localTime": "2026-09-09T08:12:40",
"status": "in_transit",
"description": "Arrived at hub",
"location": null,
"code": "Arrived"
},
{
"timestamp": null,
"localTime": "2026-09-08T13:21:25",
"status": "label_created",
"description": "Shipment Created",
"location": null,
"code": "Shipment Created"
}
]
}Notes
- Handoff:
messagenames the carrier Parcelhub passed the parcel to and its number (for example"Handed to Interpost as 011B004A44001390720001"). - Time zone: the page prints day-first wall-clock times with no zone, so events carry
localTimeonly (timestampisnull).
Related Resources
- Regex & check digits: Tracking number formats & auto-detection
VRL Logistics Tracking API & MCP
Track VRL Logistics (India, LR numbers) parcels and their scan history via synchronous REST GET or MCP. Normalized JSON status and events, no carrier credentials required.
XDE Logistics Tracking API & MCP
Track XDE Logistics (Philippines) parcels and scan history via synchronous REST GET or MCP. Normalized JSON, no carrier credentials required.