Discover/Ukrposhta API
live

Ukrposhta APItrack.ukrposhta.ua

Track Ukrposhta parcels via 3 endpoints. Get event history, origin/destination cities, and multi-barcode lookups from track.ukrposhta.ua.

Endpoint health
verified 4d ago
track_parcel
track_multiple_parcels
get_tracking_page
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the Ukrposhta 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.

Try it
Language for results.
The tracking number (e.g. CV102717070UA or 0500500505098).
api.parse.bot/scraper/2ff64a00-8724-4e97-a4e0-d498c7e3d428/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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"
}'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace track-ukrposhta-ua-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.ukrposhta_tracking_api import Ukrposhta, Language

client = Ukrposhta()

# Track a single parcel
parcel = client.parcels.track(barcode="CV102717070UA", lang=Language.EN)
print(parcel.result_time, parcel.date_by_barcode)
print(parcel.from_to.city_from, parcel.from_to.city_to)

# Track multiple parcels in batch
batch = client.batchresults.track(barcodes="CV102717070UA,0500500505098", lang=Language.UA)
print(batch.result_time, batch.result)

# Get tracking page metadata
page = client.trackingpages.get(lang=Language.EN)
print(page.url, page.language, page.description)
All endpoints · 3 totalmissing one? ·

Track a single parcel by its barcode. Returns origin/destination cities, tracking event history, and timestamp. Solves reCAPTCHA internally to access the Ukrposhta tracking API. Empty results or missing city data indicate the parcel has been fully delivered or the barcode is not recognized.

Input
ParamTypeDescription
langstringLanguage for results.
barcoderequiredstringThe tracking number (e.g. CV102717070UA or 0500500505098).
Response
{
  "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-06-11 02:34",
      "date_by_barcode": false
    },
    "status": "success"
  }
}

About the Ukrposhta API

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.

Reliability & maintenanceVerified

The Ukrposhta API is a managed, monitored endpoint for track.ukrposhta.ua — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when track.ukrposhta.ua changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official track.ukrposhta.ua API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Display real-time Ukrposhta delivery status in an e-commerce order management dashboard using track_parcel event history
  • Bulk-check the status of dozens of outbound shipments simultaneously with track_multiple_parcels and a comma-separated barcode list
  • Notify customers when city_to in the from_to object matches their city and a delivery-stage event appears in the result array
  • Log result_time and 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 RDDDATE from the from_to object against current date
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Ukrposhta provide an official developer API?+
Ukrposhta does publish an official API portal at https://dev.ukrposhta.ua, which covers shipment creation and address data. That API requires a business account. The Parse API covers the public parcel tracking surface accessible without registration.
What does `track_parcel` return when a barcode has no events yet?+
The 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?+
The 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?+
Not currently. The 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?+
The response 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.
Page content last updated . Spec covers 3 endpoints from track.ukrposhta.ua.
Related APIs in OtherSee all →
indiapost.gov.in API
Track India Post shipments, money orders, and complaints in real-time using a consignment number, booking reference, or complaint ID. Retrieve delivery status, tracking events, and progress updates for postal items.
dhl.com API
Track DHL shipments worldwide by entering a tracking number to retrieve real-time status updates, delivery location details, product information, and a complete history of all shipment events. Monitor packages from origin to destination with comprehensive tracking data.
fedex.com API
Access data from fedex.com.
jbhunt.com API
Track your J.B. Hunt shipments in real-time for both business and home deliveries, search for service information across their site, and access freight class and location data for LTL quoting. Get company information and reference data to support your logistics and shipping needs.
tracker.shadowfax.in API
Track Shadowfax shipments in real-time and monitor delivery status, while accessing the company's latest blogs and website configuration details. Validate tracking IDs and retrieve up-to-date content and header announcements from the Shadowfax platform.
prom.ua API
Search and explore products from Prom.ua's Ukrainian marketplace, view detailed product information, browse category hierarchies, and retrieve seller profiles complete with reviews and contact details.
dpdgroup.com API
Find nearby DPD parcel shops and access detailed location information, station details, and network statistics across the DPD partner network. Search for parcel shop availability by country and get comprehensive insights into DPD's distribution infrastructure.
go-upc.com API
Search product information by scanning or entering barcode numbers (UPC, EAN, or ISBN codes) to instantly retrieve details like product names, descriptions, pricing, and availability. Perfect for price comparison, inventory management, or validating product authenticity across retail databases.