Carriers
Nova Poshta Tracking API & MCP
Query live Nova Poshta (novaposhta) parcels in a single synchronous GET request or MCP tool call. lastscanned reads Nova Poshta's public JSON API (api.novaposhta.ua) and returns the document's current status.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | novaposhta |
| Category | Ukrainian domestic and international courier |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber}?carrier=novaposhta |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=20450123456789,...&carrier=novaposhta |
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 · Free tier (5 unique numbers/day) · Pro ($4.99/mo for 1,000 unique numbers) |
Tracking Number Formats & Auto-Detection
| Rule | Pattern | Detection |
|---|---|---|
| Express invoice number | 14 digits starting 20 or 59 | Pass 2 (mayMatch), only when no other carrier claims the number |
Other 14-digit numbers need ?carrier=novaposhta.
Synchronous GET Request & Normalized JSON Response
curl -s "https://api.lastscanned.com/v1/track/20450123456789?carrier=novaposhta" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"{
"carrier": "novaposhta",
"trackingNumber": "20450123456789",
"status": "in_transit",
"statusDescription": "Parcel is on its way to the recipient city",
"service": "WarehouseWarehouse",
"deliveredAt": null,
"deliveredAtLocal": null,
"signedBy": null,
"destination": {
"city": "Lviv",
"state": null,
"country": "UA"
},
"events": [
{
"timestamp": "2026-10-26T14:05:00.000Z",
"localTime": "2026-10-26T17:05:00",
"status": "in_transit",
"description": "Parcel is on its way to the recipient city",
"location": "Lviv",
"code": "5"
}
]
}Notes
- Without the phone number from the express invoice, Nova Poshta returns only the current status. A result therefore has a single event (the latest status), not a full scan history.
- Times are Ukrainian local time and carry a UTC timestamp.
- Status codes are Nova Poshta's own:
1created,5on the way,7/8waiting at a branch or locker,9/10/11received,101courier on the way,106return created.
Related Resources
- Carrier hub: All supported carriers
- Regex & check digits: Tracking number formats & auto-detection
SEUR Tracking API & MCP
Track SEUR (Spain) parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
Sameday Tracking API & MCP
Track Sameday AWBs via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.