Prozorro.Sale API: how to get auction data into your software

The open Prozorro.Sale API gives you every lot, but raw: two databases, 100 records per request, current state only. What it offers, where the pitfalls are, and when the ready-made LotRadar API with filters, change history and webhooks is simpler.

All Prozorro.Sale data — lots, documents, auction results — is open: the system publishes it through an API, and anyone can use it. Below is how this API works, what to watch for when writing your own integration, and how to get the same data ready to use.

The open Prozorro.Sale API

The central database answers at two hosts:

WhatHost
All procedures except DGF, and object registrieshttps://procedure.prozorro.sale/api
Assets of banks in liquidation (DGF)https://dgf-procedure.prozorro.sale/api

Main requests:

  • /search/byDateModified/{date}?limit=100 — the feed of all procedures by modification date; synchronization is built on it;
  • /procedures/{_id} — the full procedure; /procedures/{_id}/history — its versions;
  • /search/byAuctionId/{UA-…} — a lot by auction ID;
  • /search/byAuctionOrganizer/{EDRPOU}, /search/byText/{text}, /search/bySellingMethod/{method} — search;
  • /registry/objects/{_id}, /registry/assets/{_id} — lease and privatization objects.
curl -s --compressed "https://procedure.prozorro.sale/api/search/byDateModified/2026-10-01T00:00:00Z?limit=100"

No key is needed. The field reference (Swagger) is only on the sandbox server procedure-sandbox.prozorro.sale/api/doc; the old database (public.api.ea.openprocurement.org) has been frozen since 2021 — there are no new lots there.

Pitfalls of your own integration

  • Two databases. DGF lots are not in the main one — you have to poll both.
  • No more than 100 records per request. limit=500 silently returns 100; covering a month takes hundreds of requests.
  • Current state only. The feed returns a procedure as it is now: if the price changed twice between two polls, you will not see the intermediate value. You have to work out what changed yourself by comparing with the previous version.
  • No filters by oblast or type. To find “premises for lease in Vinnytsia” you have to download everything and filter on your side — and parse addresses, because the city is written in different ways.
  • Repeats of the same object are separate procedures, linked via previousAuctionId and registry objects.

All of this is solvable — this is how we build our database: it now holds 41 thousand lots, with 10–12 thousand added each month. But it takes weeks of development and constant attention.

The ready-made LotRadar API

The same data, already cleaned and structured, via the REST API /api/v1/:

  • /lots — lots with the same filters as the catalogue: type, oblast, city, topic, price, keywords, status, publication and modification dates;
  • /lots/{UA-…} — all lot fields, its last 50 changes and other auctions of the same object;
  • /changes — a feed of events (new lot, status, price, date, document changes, result) with a cursor — nothing is missed between requests;
  • /filters/{id}/lots — lots by a filter saved in your account;
  • webhooks — our server POSTs new lots and changes to you (lot.new, lot.changed, lot.relisted), signed with HMAC and retried if your server did not answer.

Responses are JSON, labels in Ukrainian or English (?lang=en). The key is in your account and goes in the Authorization: Bearer header. The limit is 1,000 requests a day on the Pro plan and 20,000 on Business. Full reference with examples — in the API documentation, prices — on the pricing page.

Which to choose

  • You need the whole system with every field, research or your own data warehouse — use the open Prozorro.Sale API.
  • You need specific lots in your CRM, spreadsheet or bot, with filters and events — our API is simpler: first results in an hour, not a month.
  • No developer at all — a filter in your account, alerts in the Telegram bot and Excel export.

Open API details — our own test requests; lot counts — our database as of 17 October 2026.

Your first filter is free

See how many lots matching your search appear every week — and decide whether you need the radar.