Carriers
BEX Express Tracking API & MCP
Query live BEX Express (bexexpress) package status and scan history in a single synchronous GET request or MCP tool call.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | bexexpress |
| Brand aliases | BEX Express, BEX, Bex Express Serbia, bexexpress.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=299123456,299123456 |
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 |
BEX Express numbers share their shape with other carriers, so they are not auto-detected: pass ?carrier=bexexpress.
Synchronous GET Request & Normalized JSON Response
curl -s "https://api.lastscanned.com/v1/track/258523787?carrier=bexexpress" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"{
"carrier": "bexexpress",
"trackingNumber": "258523787",
"status": "delivered",
"statusDescription": "Dostavljeno",
"service": null,
"deliveredAt": "2026-09-02T08:20:49Z",
"deliveredAtLocal": "2026-09-02T10:20:49",
"signedBy": null,
"destination": null,
"events": [
{
"timestamp": "2026-09-02T08:20:49Z",
"localTime": "2026-09-02T10:20:49",
"status": "delivered",
"description": "Dostavljeno",
"location": "Beograd",
"code": "21"
},
{
"timestamp": "2026-08-25T10:14:58Z",
"localTime": "2026-08-25T12:14:58",
"status": "in_transit",
"description": "Preuzeto",
"location": "Makiš",
"code": "11"
},
{
"timestamp": "2026-08-25T07:57:40Z",
"localTime": "2026-08-25T09:57:40",
"status": "label_created",
"description": "Evidentirano",
"location": "Makiš",
"code": "1"
}
]
}Notes
- Route: the JSON that bexexpress.rs's tracking page calls; the request header it sends is a constant in the page's own script. No account.
- Time zone: each scan carries a
GMT+1/GMT+2offset, used fortimestamp. - Status: the page's codes are mapped: 1 registered, 11 picked up, 21 delivered, 25/30 returned. The COD payout row (31) is kept as a scan; the parcel stays
delivered.
Related Resources
- Regex & check digits: Tracking number formats & auto-detection
Bangladesh Post Tracking API & MCP
Track Bangladesh Post Office domestic mail items via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
BJS Home Delivery Tracking API & MCP
Track BJS Home Delivery (United Kingdom) consignments via synchronous REST GET or MCP. Normalized JSON status, no carrier credentials required.