Prozorro.Sale auction parser: the LotRadar case

How a service was built that collects Prozorro.Sale lots every 5 minutes and delivers the right ones to Telegram, email, Excel and an API.

LotRadar is RandomStar’s own service: a “radar” for Prozorro.Sale, the Ukrainian state auction system. It watches new lots — land, privatisation, state property leases, bank assets — and reports the ones that match a user’s filter.

The task

Hundreds of lots appear on Prozorro.Sale every day. Finding the right one by hand means opening the marketplace daily and paging through lists. The goal was a service that collects everything new, sorts it by type and region and immediately sends each person what they care about.

What was built

  • A data collector. The official open Prozorro.Sale API, two change feeds, a run every 5 minutes. The database holds about 36,000 lots, roughly 9,500 of them open for bids (October 2026).
  • A catalogue with filters. Auction type, region, price, discounts, Dutch auctions; a list, lot pages and a map.
  • Notifications. A Telegram bot sends new matching lots at once, a morning email sums up the day, and a Telegram channel posts a daily selection.
  • Exports. Excel and CSV — the catalogue, a filter result or a personal watchlist.
  • An API and webhooks. Key-based access and signed event delivery to the customer’s system.
  • Search pages. Landing pages by “type + region” and guides with live lot selections — about 10,000 URLs in the sitemap.
LotRadar: a lot filter with a live preview
A filter in the customer area shows at once how many lots match
LotRadar: a new lot notification in Telegram
A new lot in Telegram

How it works

  • Official open data only. The source is an API, not scraped HTML: it breaks less and puts no load on someone else’s site. Requests are spaced more than a second apart.
  • A change cursor. The collector remembers where it stopped and fetches only what changed. Duplicates at page boundaries are dropped.
  • Events are computed locally. The source returns only the current state of a lot, so changes — a new price, moved dates, a cancellation, a result, a repeat auction — are derived by comparing with the previous version.
  • No personal data is stored. Individuals and contact details are removed before anything reaches the database. As a side effect, a record became 15 times smaller.
  • Source monitoring. The admin panel shows the state of each feed: working, silent or failing.

The result

The service runs at parser.randomstar.org in Ukrainian and English. From an empty project to a working site with a collector, a bot and a catalogue took a few days, because the admin panel, customer area, email and billing came from solutions RandomStar already runs elsewhere.

What you can order

The same approach works for any open data: tenders and procurement, registries, competitor prices, listings, supplier catalogues. The result arrives where you need it: Telegram, email, Excel, an API or straight into your CRM.

Discuss data collection

Got a task? Let’s talk

Send a request — the reply comes within a business day with a suggestion on how to do it.