Česká pošta (Czech Post) Tracking API & MCP
Query live Česká pošta (ceskaposta) consignment status and scan history in a single synchronous GET request or MCP tool call. lastscanned auto-detects UPU S10 numbers ending CZ and returns a normalized TrackingResult JSON payload.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | ceskaposta |
| Brand & service aliases | Česká pošta, Ceska posta, Czech Post, Česká pošta s.p., postaonline.cz |
| Category | Czech national post |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=RR603819422CZ,... |
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) |
Why developers use lastscanned for Česká pošta
- No WAF to fight:
ceskaposta.czrejects most scripted requests.lastscannedcalls the ParcelHistory service that thepostaonline.cztracking page uses, which answers a plain request. - English wording: scan texts are requested in English and mapped to the 7 standard statuses (
being deliveredtoout_for_delivery,deposited - addressee not at hometoexception,returned to the sendertoreturned). - Scan ids kept:
events[].codeholds Česká pošta's state id (21taken into transport,51prepared for delivery,53being delivered,82deposited,9Vreturned).
Tracking Number Formats & Auto-Detection (matches vs ?carrier=ceskaposta)
| Pass | Rule / Regex | Check Digit | Examples |
|---|---|---|---|
Pass 1 (matches) | /^[A-Z]{2}\d{9}CZ$/ with a valid UPU S10 check digit | S10 mod 11 | RR603819422CZ |
Pass 2 (mayMatch) | None | — | — |
Explicit (?carrier=ceskaposta) | Other numbers Česká pošta tracks | — | — |
When is ?carrier=ceskaposta optional vs required?
- Optional (auto-detected): S10 numbers ending
CZwith a valid check digit. - Required: any other Česká pošta number. Domestic parcel numbers of the
DR…kind are answered with a "not shown" notice by this service and come back asnot_found.
Synchronous GET Request & Normalized JSON Response
curl
curl -s "https://api.lastscanned.com/v1/track/RR603819422CZ" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"JavaScript / TypeScript (fetch)
const res = await fetch("https://api.lastscanned.com/v1/track/RR603819422CZ", {
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": "RR603819422CZ"
}
}Normalized TrackingResult JSON response
{
"carrier": "ceskaposta",
"trackingNumber": "RR603819422CZ",
"status": "out_for_delivery",
"statusDescription": "The consignment is being delivered.",
"service": null,
"deliveredAt": null,
"deliveredAtLocal": null,
"signedBy": null,
"destination": null,
"events": [
{
"timestamp": null,
"localTime": "2026-10-26",
"status": "out_for_delivery",
"description": "The consignment is being delivered.",
"location": "Praha 011, 11000",
"code": "53"
},
{
"timestamp": null,
"localTime": "2026-10-26",
"status": "in_transit",
"description": "The consignment is being prepared for delivery.",
"location": "Praha 011, 11000",
"code": "51"
},
{
"timestamp": null,
"localTime": "2026-10-24",
"status": "in_transit",
"description": "The consignment was sent for transportation.",
"location": "Brno 2, 60200",
"code": "21"
},
{
"timestamp": null,
"localTime": "2026-10-23",
"status": "label_created",
"description": "Receipt of data about consignment.",
"location": null,
"code": "-M"
}
]
}Dates only: Česká pošta gives each scan a date without a time of day, so
timestampis alwaysnullandlocalTimeis a date ("2026-10-26"). Scans on the same day keep Česká pošta's order. No record: a number with no record returnsnot_found.
Related Resources
- Live browser lookup tool: Track a Česká pošta package live on lastscanned.com/lookup/ceskaposta
- Carrier hub: All supported carriers
- Regex & check digits: Tracking number formats & auto-detection
- AI support workflows: WISMO AI agents & synchronous tracking
Posti (Finland) Tracking API & MCP
Track Posti Finland parcels and mail (S10 numbers ending FI, JJFI parcel numbers) via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
CTT (Correios de Portugal) Tracking API & MCP
Track CTT Portugal parcels and mail (S10 numbers ending PT) via synchronous REST GET or MCP. Normalized JSON status and scan history with UTC times, no carrier credentials required.