track.ukrposhta.ua APItrack.ukrposhta.ua ↗
Track Ukrposhta parcels via 3 endpoints. Get event history, origin/destination cities, and multi-barcode lookups from track.ukrposhta.ua.
curl -X POST 'https://api.parse.bot/scraper/2ff64a00-8724-4e97-a4e0-d498c7e3d428/track_parcel' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"lang": "EN",
"barcode": "CV102717070UA"
}'Track a single parcel by its barcode. Returns origin/destination cities, tracking event history, and timestamp. Requires internal reCAPTCHA solving.
| Param | Type | Description |
|---|---|---|
| lang | string | Language for results. Accepted values: EN, UA. |
| barcoderequired | string | The tracking number (e.g. CV102717070UA or 0500500505098). |
{
"type": "object",
"fields": {
"result": "array of tracking events (may be empty if no updates available)",
"from_to": "object containing city_from, city_to, lang, RDDDATE, ISSEVERALPLACES",
"nod_barcode": "string or null, related barcode",
"nod_regdate": "string or null, registration date",
"result_time": "string, timestamp of the query result",
"date_by_barcode": "boolean"
},
"sample": {
"data": {
"result": [],
"from_to": {
"lang": "en",
"RDDDATE": null,
"city_to": " ",
"city_from": " ",
"ISSEVERALPLACES": 0
},
"nod_barcode": null,
"nod_regdate": null,
"result_time": "2026-05-15 16:33",
"date_by_barcode": false
},
"status": "success"
}
}About the track.ukrposhta.ua API
This API exposes 3 endpoints for querying Ukrposhta shipment data, returning up to 8 response fields per tracking result including event history, origin/destination cities, and query timestamps. The track_parcel endpoint accepts a single barcode and returns a full array of tracking events along with from_to city data, while track_multiple_parcels lets you query a comma-separated list of barcodes in one call.
Endpoints and What They Return
The track_parcel endpoint takes a required barcode parameter (e.g. CV102717070UA or 0500500505098) and an optional lang parameter (EN or UA). It returns a result array of tracking events, a from_to object with city_from, city_to, lang, RDDDATE, and ISSEVERALPLACES fields, plus nod_barcode, nod_regdate, result_time, and date_by_barcode. If the shipment has no recorded updates yet, result will be an empty array.
The track_multiple_parcels endpoint accepts the same lang option and a barcodes string of comma-separated tracking numbers. The response wraps all results under a single result object and includes a result_time timestamp. When none of the barcodes are found, the response contains a message field rather than tracking data, so callers should check for this case explicitly.
Metadata Endpoint
The get_tracking_page endpoint is a GET request that accepts an optional lang parameter and returns the canonical URL of the Ukrposhta tracking interface, the active language code, and a plain-text page description. This is useful for linking users directly to the official tracking page alongside programmatic results.
Coverage and Language
Both tracking endpoints support Ukrainian (UA) and English (EN) output. The from_to object surfaces city-level origin and destination; granular address or GPS data is not part of the response. Tracking event detail and frequency depend on what Ukrposhta has logged for a given barcode — international shipments may show fewer intermediate scans than domestic ones.
- Display real-time Ukrposhta delivery status in an e-commerce order management dashboard using
track_parcelevent history - Bulk-check the status of dozens of outbound shipments simultaneously with
track_multiple_parcelsand a comma-separated barcode list - Notify customers when
city_toin thefrom_toobject matches their city and a delivery-stage event appears in theresultarray - Log
result_timeand event arrays to a database for shipment SLA monitoring and late-delivery detection - Build a browser extension that shows a Ukrposhta tracking panel with a direct link to the tracking page via
get_tracking_page - Reconcile expected vs. actual delivery dates by comparing
RDDDATEfrom thefrom_toobject against current date
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Ukrposhta provide an official developer API?+
What does `track_parcel` return when a barcode has no events yet?+
result field will be an empty array. The from_to object may still contain city_from and city_to if the shipment is registered, and date_by_barcode will indicate whether the barcode was recognized. Check both fields to distinguish 'registered but not yet scanned' from 'barcode not found'.Does the API return estimated delivery dates or only historical events?+
from_to object includes an RDDDATE field which represents a delivery-related date from the tracking record. The API does not expose a separately calculated delivery estimate or predicted arrival window. You can fork this API on Parse and revise it to add any additional date-related fields if Ukrposhta surfaces them.Can I retrieve the full sender and recipient addresses from tracking results?+
from_to object provides city_from and city_to but no street-level address, postal code, or recipient name. You can fork this API on Parse and revise it to surface additional address detail if needed.How does `track_multiple_parcels` handle a mix of valid and invalid barcodes?+
result object contains entries for each barcode. Barcodes that are not found return a message rather than event data instead of causing the whole request to fail. Callers should iterate over the result object and check each entry individually for the presence of tracking events versus an error message.