Carriers
CTT Express Tracking API & MCP
Query live CTT Express (cttexpress) package status and scan history in a single synchronous GET request or MCP tool call.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | cttexpress |
| Brand aliases | CTT Express Spain, Zeleris |
| Category | Express parcels (Spain, Portugal) |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=...,... |
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) | /^00\d{20}$/ | none | 0012300012345678001234 |
matches is empty. mayMatch takes a 22-digit code starting 00, which is how CTT Express shipping codes look. This is the parcel company, not CTT Correios (ctt).
Synchronous GET Request & Normalized JSON Response
curl -s "https://api.lastscanned.com/v1/track/0012300012345678001234?carrier=cttexpress" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"{
"carrier": "cttexpress",
"trackingNumber": "0012300012345678001234",
"status": "exception",
"statusDescription": "Recogida fallida: CLIENTE NO TIENE PREPARADA MERCANCÍA",
"service": null,
"deliveredAt": null,
"deliveredAtLocal": null,
"signedBy": null,
"destination": {
"city": "ARENAL",
"state": null,
"country": null
},
"events": [
{
"timestamp": "2026-07-09T14:42:03Z",
"localTime": "2026-07-09T14:42:03",
"status": "exception",
"description": "Recogida fallida: CLIENTE NO TIENE PREPARADA MERCANCÍA",
"location": null,
"code": "0600"
},
{
"timestamp": "2026-07-08T14:24:50Z",
"localTime": "2026-07-08T14:24:50",
"status": "label_created",
"description": "Pendiente de recepción en CTT Express",
"location": null,
"code": "0000"
}
]
}Notes
- Source: the JSON (
wct.cttexpress.com/p_track_redis_v2.php) that the CTT Express tracking app calls with its own origin. No account is needed. - Time zone: CTT Express reports UTC, so
localTimeis the UTC clock time and carries no local zone. - Incidents: when a scan carries an incident (
incident_type_name), it is appended to the description. - Not found: an unknown code returns an empty body, which becomes
not_found.
Related Resources
- Regex & check digits: Tracking number formats & auto-detection
Correos Express Tracking API & MCP
Track Correos Express parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
DAI Post Tracking API & MCP
Track DAI Post parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.