Carriers
Ecoscooting Tracking API & MCP
Query live Ecoscooting (ecoscooting) package status and scan history in a single synchronous GET request or MCP tool call.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | ecoscooting |
| Brand aliases | Eco Scooting, Ecoscooting Spain |
| Category | Cross-border e-commerce 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) | none | none | none |
matches and mayMatch are both empty: Ecoscooting numbers are 18 digits, a shape that is not exclusive, so pass ?carrier=ecoscooting.
Synchronous GET Request & Normalized JSON Response
curl -s "https://api.lastscanned.com/v1/track/024000000123456789?carrier=ecoscooting" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"{
"carrier": "ecoscooting",
"trackingNumber": "024000000123456789",
"status": "delivered",
"statusDescription": "Your shipment has been delivered successfully",
"service": null,
"deliveredAt": "2026-09-23T18:42:08Z",
"deliveredAtLocal": "2026-09-23T20:42:08",
"signedBy": null,
"destination": null,
"events": [
{
"timestamp": "2026-09-23T18:42:08Z",
"localTime": "2026-09-23T20:42:08",
"status": "delivered",
"description": "Your shipment has been delivered successfully",
"location": "Hellín",
"code": "LM_SIGN_SUCCESS"
},
{
"timestamp": "2026-09-23T06:21:08Z",
"localTime": "2026-09-23T08:21:08",
"status": "out_for_delivery",
"description": "Your shipment is out for delivery",
"location": "ES",
"code": "LM_DELIVERY_DEPART"
},
{
"timestamp": "2026-09-23T04:26:13Z",
"localTime": "2026-09-23T06:26:13",
"status": "in_transit",
"description": "Your shipment has been accepted by delivery carrier",
"location": "ES",
"code": "SL_ACCEPT"
},
{
"timestamp": "2026-09-22T16:02:31Z",
"localTime": "2026-09-22T18:02:31",
"status": "in_transit",
"description": "Your shipment has arrived at sorting center",
"location": "San Fernando de Henares",
"code": "SC_INBOUND"
}
]
}Notes
- Source: Cainiao's European link gateway (
de-link.cainiao.com/gateway/link.do) with Ecoscooting's distributor id, the call its tracking page makes. No account is needed. - Times: each scan has an epoch time (
opTimestamp, used fortimestamp) and the scan's local clock with its UTC offset (used forlocalTime). - Status: the Cainiao
actionCodedecides it (LM_SIGN_SUCCESSdelivered,LM_DELIVERY_DEPARTout for delivery,SC_*andSL_*in transit). - Not found:
errorCodeB00604(out of scope) becomesnot_found.
Related Resources
- Regex & check digits: Tracking number formats & auto-detection
ECMS Express Tracking API & MCP
Track ECMS Express (ECTSO and ECZEN numbers) parcels, scan history and the last-mile carrier handoff via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
Geis Tracking API & MCP
Track Geis parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.