Carriers
Packeta (Zásilkovna) Tracking API & MCP
Query live Packeta (Zásilkovna) (packeta) package status and scan history in a single synchronous GET request or MCP tool call. lastscanned auto-detects Packeta Z… numbers and reads the same API that tracking.packeta.com calls. Events from the destination carrier, when Packeta lists them, are merged into the scan history.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | packeta |
| Brand & service aliases | Packeta, Zásilkovna, Zasilkovna |
| Category | Regional pickup-point network (Central & Eastern Europe) |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} (auto-detected for Z-numbers) |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=Z1234567890,... |
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 (matches vs ?carrier=packeta)
| Pass | Rule / Regex | Check Digit | Examples |
|---|---|---|---|
Pass 1 (matches) | /^Z\d{9,10}$/ | None | Z1234567890, Z123456789 |
Pass 2 (mayMatch) | None | n/a | n/a |
When is ?carrier=packeta optional vs required?
- Optional (auto-detected):
Zfollowed by 9 or 10 digits. - Required (
?carrier=packeta): Any other Packeta number shape.
Synchronous GET Request & Normalized JSON Response
curl
curl -s "https://api.lastscanned.com/v1/track/Z1234567890" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"JavaScript / TypeScript (fetch)
const res = await fetch("https://api.lastscanned.com/v1/track/Z1234567890", {
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": "Z1234567890"
}
}Normalized TrackingResult JSON response
{
"carrier": "packeta",
"trackingNumber": "Z1234567890",
"status": "delivered",
"statusDescription": "Delivered",
"service": null,
"deliveredAt": "2026-10-22T07:15:00Z",
"deliveredAtLocal": "2026-10-22T09:15:00",
"signedBy": null,
"destination": null,
"events": [
{
"timestamp": "2026-10-22T07:15:00Z",
"localTime": "2026-10-22T09:15:00",
"status": "delivered",
"description": "Delivered",
"location": null,
"code": null
},
{
"timestamp": "2026-10-20T08:00:00Z",
"localTime": "2026-10-20T10:00:00",
"status": "label_created",
"description": "Data received",
"location": null,
"code": null
}
]
}Notes
- Uses the page's
POST /api/getPacketById/{number}/en; an unknown number answers 404 and becomesnot_found. - Packeta shows its times in Europe/Prague.
timestampis set only when the time carries its own offset. - A parcel ready at a pickup point is reported as
exceptionuntil it is collected.
Related Resources
- Live browser lookup tool: Track a Packeta (Zásilkovna) package live on lastscanned.com/lookup/packeta
- Regex & check digits: Tracking number formats & auto-detection
- AI support workflows: WISMO AI agents & synchronous tracking
InPost Tracking API & MCP
Track InPost parcels (Polish and UK parcel lockers and courier) via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
Hermes Germany Tracking API & MCP
Track Hermes Germany parcels (myhermes.de Sendungsverfolgung) via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.