OrbTop

Ukraine ProZorro Reconstruction Contracts Scraper

BUSINESSAUTOMATIONOTHER

Ukraine ProZorro Reconstruction Contracts Scraper

Pulls awarded reconstruction contracts from Ukraine's ProZorro public-procurement system. Returns buyer, supplier, EDRPOU codes, contract value, item descriptions, dates, and parent-tender linkage for construction, demolition, capital repair, and engineering deals — the line items that actually rebuild the country.


Ukraine ProZorro Reconstruction Contracts Scraper Features

  • Walks the ProZorro public API newest-first, so the freshest signed deals show up first.
  • Filters client-side by DK021 / CPV classification (45* construction, 71* engineering, 34900000 demolition, 90* cleanup) and by Ukrainian-language keywords (відбудова, реконструкція, відновлення, капітальний ремонт). Override either list if your slice of "reconstruction" is narrower.
  • Returns ~25 fields per contract — buyer name + EDRPOU + region, supplier name + EDRPOU + scale, value in UAH, dates, item descriptions, CPV codes, and a direct link to the contract page on prozorro.gov.ua.
  • Pure JSON API. No proxy, no auth, no captcha. The data is publicly funded and designed for bulk consumption.
  • Cyrillic / UTF-8 throughout — names and addresses come back in the original Ukrainian, not transliterated.
  • Optional minimum-value filter in UAH for buyers who only care about the big-ticket awards.

Who Uses Ukrainian Reconstruction Contract Data?

  • EU and US firms bidding rebuild work — Map who's already winning what, who the active buyers are, and which oblasts have the most pipeline.
  • Sanctions and compliance teams — Screen supplier ownership chains against Russia-linked beneficiaries before signing on as a sub.
  • Anti-corruption NGOs — Track donor-funded contracts (EU, USAID, World Bank) flowing through municipal buyers, and flag the unusual ones.
  • Investigative journalists — Follow the money. The full procuringEntity chain is in the data.
  • Construction-industry analysts — Build deal-flow dashboards by region, CPV category, or buyer kind.
  • Government affairs and diplomatic missions — Keep a running view of post-war reconstruction spend without scraping the portal yourself.

How the Ukraine ProZorro Reconstruction Contracts Scraper Works

  1. Walks the ProZorro /api/2.5/contracts cursor feed in descending date order, page by page.
  2. For each contract ID, fetches the full payload from the public API — items, suppliers, buyer, value, dates, classifications.
  3. Drops anything that doesn't match either the CPV prefix list or the Ukrainian keyword list. Optionally drops cancelled / terminated contracts and below-threshold values.
  4. Emits the survivor as a flat JSON record. No nested objects in arrays — just clean fields you can drop straight into a database or spreadsheet.

Input

{
  "maxItems": 100,
  "onlySignedContracts": true,
  "minValueUah": 0,
  "cpvPrefixes": [],
  "keywords": []
}
Field Type Default Description
maxItems integer 10 Maximum number of reconstruction contracts to return. The scraper walks the feed newest-first and filters client-side, so larger values fetch more underlying records. Range: 1–5000.
onlySignedContracts boolean true When true, drops cancelled / terminated contracts. Set false to include the full lifecycle.
minValueUah integer 0 Skip contracts below this UAH value. 0 disables the filter. Note that small UAH amounts may have been originally signed in EUR or USD.
cpvPrefixes array [] Override the default DK021 / CPV prefix list. Empty array uses the defaults: 45, 71, 34900000, 90. Pass ["45"] for construction-only, ["71"] for engineering-only, etc.
keywords array [] Override the default Ukrainian keyword list. Empty array uses the defaults: відбудова, реконструкц, відновлення, відновлювальн, капітальний ремонт. Substring match, case-insensitive.

Engineering-only example

{
  "maxItems": 50,
  "cpvPrefixes": ["71"],
  "onlySignedContracts": true
}

Big-ticket awards only

{
  "maxItems": 100,
  "minValueUah": 5000000,
  "onlySignedContracts": true
}

Ukraine ProZorro Reconstruction Contracts Scraper Output Fields

{
  "contract_id": "6954e14eaaab4bd18187f34f6049c763",
  "contract_number": "UA-2026-05-01-011820-a-a1",
  "tender_id": "2121e6bb895641d2ad02112bd6fa4185",
  "tender_number": "",
  "status": "active",
  "date_signed": "2026-04-29T00:00:00+03:00",
  "date_modified": "2026-05-01T22:26:58.606160+03:00",
  "period_start": "2026-04-29T00:00:00+03:00",
  "period_end": "2026-12-31T23:59:59+02:00",
  "title": "Проектно-вишукувальні послуги з розроблення технічної документації...",
  "value_amount": 19500,
  "value_currency": "UAH",
  "value_with_vat": false,
  "buyer_name": "Виходянська сільська рада",
  "buyer_edrpou": "04377701",
  "buyer_region": "Одеська область",
  "buyer_locality": "Одеський район",
  "supplier_name": "ФОП Рогачко С.П.",
  "supplier_edrpou": "2487904601",
  "supplier_region": "Одеська область",
  "supplier_locality": "м.Біляївка",
  "supplier_scale": "sme",
  "additional_suppliers": [],
  "cpv_codes": ["71330000-0"],
  "item_descriptions": ["Проектно-вишукувальні послуги..."],
  "reconstruction_signal": "cpv",
  "profile_url": "https://prozorro.gov.ua/contract/6954e14eaaab4bd18187f34f6049c763",
  "tender_profile_url": "https://prozorro.gov.ua/tender/2121e6bb895641d2ad02112bd6fa4185",
  "scraped_at": "2026-05-01T19:29:28.769Z"
}
Field Type Description
contract_id string ProZorro internal contract UUID.
contract_number string Human-readable contract identifier (e.g. UA-2025-...-c1).
tender_id string UUID of the parent tender on ProZorro.
tender_number string Parent tender's UA-... identifier when carried by the contract.
status string active, complete, pending, terminated, or cancelled.
date_signed string (ISO 8601) Date the contract was signed.
date_modified string (ISO 8601) Last modification timestamp.
period_start string (ISO 8601) Performance period start.
period_end string (ISO 8601) Performance period end.
title string Contract title in Ukrainian.
value_amount number Signed contract value (numeric).
value_currency string Currency code, typically UAH.
value_with_vat boolean Whether the signed value includes VAT.
buyer_name string Procuring entity legal name.
buyer_edrpou string Buyer's EDRPOU code (Ukraine state register ID).
buyer_region string Buyer's oblast / region.
buyer_locality string Buyer's city or settlement.
supplier_name string Primary awardee name.
supplier_edrpou string Supplier's EDRPOU code.
supplier_region string Supplier's oblast.
supplier_locality string Supplier's city.
supplier_scale string micro, sme, or large.
additional_suppliers array of strings Additional suppliers beyond the primary one, each formatted as Name (EDRPOU 12345) — Locality.
cpv_codes array of strings DK021 / CPV classification codes from the contract items.
item_descriptions array of strings Item descriptions from the contract, in Ukrainian.
reconstruction_signal string Why the contract matched: cpv, keyword, or cpv+keyword.
profile_url string Public ProZorro contract page URL.
tender_profile_url string Parent tender page URL.
scraped_at string (ISO 8601) When this record was scraped.

FAQ

How do I scrape Ukrainian reconstruction contracts from ProZorro?

The Ukraine ProZorro Reconstruction Contracts Scraper does it for you. Set maxItems, hit run, and it walks the public API filtering for construction, engineering, demolition, and capital-repair contracts.

Does the Ukraine ProZorro Reconstruction Contracts Scraper need a proxy?

No. ProZorro's public API has no rate limit beyond a courtesy delay we apply ourselves, and there's no captcha or auth.

Can I narrow the scrape to just one CPV category?

Yes. Pass cpvPrefixes: ["45"] for construction work only, ["71"] for architectural / engineering services, or any combination. Empty array uses the full default set.

What's the difference between a "cpv" and "keyword" reconstruction signal?

The Ukraine ProZorro Reconstruction Contracts Scraper marks each contract with how it qualified. cpv means the classification code matched a reconstruction prefix; keyword means the title or item description contained a Ukrainian reconstruction word; cpv+keyword means both. Both signals together is the highest-confidence match.

How recent are the contracts?

ProZorro is real-time. Contracts appear in the feed within seconds of being signed in any of the authorised marketplaces, and this scraper walks newest-first.

Are values in UAH or original currency?

Whatever ProZorro reports — value_currency tells you which. Most are UAH. Some donor-funded reconstruction contracts (EU, USAID, World Bank) are denominated in EUR or USD; use value_currency to filter or convert.


Need More Features?

Want supplier sanctions enrichment, donor-source tagging, or full parent-tender history? File a feature request — we ship custom fields fast.

Why Use the Ukraine ProZorro Reconstruction Contracts Scraper?

  • First Ukraine-specific procurement scraper on Apify — There's nothing else covering this dataset on the store.
  • Native Ukrainian text — Names, addresses, and item descriptions stay in Ukrainian. No transliteration loss when you join against EDRPOU registries downstream.
  • Both CPV and keyword filtering — Catches contracts that don't have the "right" classification but obviously belong (and vice versa).
  • EDRPOU codes for buyer and supplier — The state-register ID that anchors every Ukrainian legal entity. Lets you cross-reference against sanctions lists, beneficial-owner registries, and YouControl exports without name-matching guesswork.