Carriers
City Express (Serbia) Tracking API & MCP
Query live City Express (Serbia) (cityexpressrs) package status and scan history in a single synchronous GET request or MCP tool call.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | cityexpressrs |
| Brand aliases | City Express, City Express Serbia, CityExpress RS, cityexpress.rs |
| Category | Serbian courier |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=68800157085647,68800157085647 |
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) | /^68800[125]\d{8}$/ (14 digits; the 16-digit form with a parcel suffix needs ?carrier=cityexpressrs) | none | 68800157085647 |
Pass 2 (mayMatch) | none | none | none |
Shapes this carrier uses:
- Centre prefix + 8 digits:
^68800[125]\d{8}$ - With parcel suffix (+2 digits):
^68800[125]\d{10}$
Synchronous GET Request & Normalized JSON Response
curl -s "https://api.lastscanned.com/v1/track/68800157085647?carrier=cityexpressrs" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"{
"carrier": "cityexpressrs",
"trackingNumber": "68800157085647",
"status": "delivered",
"statusDescription": "Delivered",
"service": null,
"deliveredAt": "2026-02-12T13:29:00Z",
"deliveredAtLocal": "2026-02-12T14:29:00",
"signedBy": null,
"destination": {
"city": "Beograd-Palilula",
"state": null,
"country": "RS"
},
"events": [
{
"timestamp": "2026-02-12T13:29:00Z",
"localTime": "2026-02-12T14:29:00",
"status": "delivered",
"description": "Delivered",
"location": "Central HUB",
"code": null
},
{
"timestamp": "2026-02-12T11:16:00Z",
"localTime": "2026-02-12T12:16:00",
"status": "exception",
"description": "Deposit in Parcel Terminal",
"location": "CE Beograd",
"code": null
},
{
"timestamp": "2026-02-11T14:01:00Z",
"localTime": "2026-02-11T15:01:00",
"status": "label_created",
"description": "Pickup in progress",
"location": "Central HUB",
"code": null
}
]
}Notes
- Source: the tracking form's HTMX fragment. It needs a session cookie and CSRF token from the form page, which are fetched first.
- Spaces:
688 001 68800157085647and68800157085647are the same number; a 2-digit parcel suffix is accepted. - Time zone: Serbian local time;
timestampconverts fromEurope/Belgrade. - Detection: the 16-digit form with a parcel suffix is also a Canada Post shape, so pass
?carrier=cityexpressrsfor it.
Related Resources
- Regex & check digits: Tracking number formats & auto-detection
Ciblex Tracking API & MCP
Track Ciblex (France) parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
CityMail Tracking API & MCP
Track CityMail (Sweden) parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.