Carriers
Poste Italiane Tracking API & MCP
Query live Poste Italiane (posteitaliane) package status and scan history in a single synchronous GET request or MCP tool call. lastscanned auto-detects UPU S10 numbers ending IT; Poste's domestic numbers need ?carrier=posteitaliane.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | posteitaliane |
| Brand & service aliases | Poste Italiane, Poste.it, Poste Delivery Business, Raccomandata, Pacco Ordinario |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=NUMBER1,NUMBER2 |
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) |
Tracking Number Formats & Auto-Detection
| Pass | Rule | Check Digit | Examples |
|---|---|---|---|
Pass 1 (matches) | 2 letters, 9 digits, IT | UPU S10 mod-11 | RR123456785IT |
Pass 2 (mayMatch) | None | — | — |
Explicit (?carrier=posteitaliane) | Domestic Raccomandata and parcel numbers | — | — |
Synchronous GET Request & Normalized JSON Response
curl
curl -s "https://api.lastscanned.com/v1/track/RR123456785IT" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"JavaScript / TypeScript (fetch)
const res = await fetch("https://api.lastscanned.com/v1/track/RR123456785IT", {
headers: { Authorization: `Bearer ${process.env.LASTSCANNED_API_KEY}` },
});
const pkg = await res.json();
console.log(pkg.status, pkg.events[0]);MCP track_package tool call
{
"tool": "track_package",
"arguments": {
"tracking_number": "RR123456785IT"
}
}Normalized TrackingResult JSON response
{
"carrier": "posteitaliane",
"trackingNumber": "RR123456785IT",
"status": "in_transit",
"statusDescription": "In transito",
"service": null,
"deliveredAt": null,
"deliveredAtLocal": null,
"signedBy": null,
"destination": null,
"events": [
{
"timestamp": "2026-10-21T08:15:00Z",
"localTime": "2026-10-21T10:15:00",
"status": "in_transit",
"description": "In transito",
"location": "Milano Roserio",
"code": null
}
]
}Notes
- Scan wording is Italian, as Poste prints it. Times are read as Italian local time (
Europe/Rome). - Poste searches by age window; the lookup tries the 0-2, 3-4 and 4-6 month windows before answering
not_found.
Related Resources
- Carrier hub: All supported carriers
- Regex & check digits: Tracking number formats & auto-detection
- AI support workflows: WISMO AI agents & synchronous tracking
Correos (Spain) Tracking API & MCP
Track Correos Spain parcels and mail (S10 numbers ending ES, PQ parcel codes) via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
CJ Logistics (CJ Korea Express / 대한통운) Tracking API & MCP
Track CJ Logistics (CJ대한통운) parcels in South Korea via synchronous REST GET or MCP. Normalized JSON status and Korean scan history with Asia/Seoul timestamps, no carrier credentials required.