Polish Public Tenders – BZP & TED + Winners
Pricing
from $2.00 / 1,000 notices
Polish Public Tenders – BZP & TED + Winners
Polish public tenders from official BZP (e-Zamówienia) and EU TED: open tenders and awards with buyer, CPV, values, deadlines and winners per lot. Filter by CPV, province, keywords; daily monitor returns only new notices; optional KRS/VAT data on winners. $0.002 per notice.
Pricing
from $2.00 / 1,000 notices
Rating
0.0
(0)
Developer
Mateusz Kitlinski
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
What does Polish Public Tenders do?
Polish Public Tenders gives you one clean, English-keyed feed of Polish public procurement notices from the two official sources:
- BZP / e-Zamówienia (Biuletyn Zamówień Publicznych, Urząd Zamówień Publicznych): national notices below the EU thresholds, where most SME opportunities are.
- TED (Tenders Electronic Daily, European Union): notices of Polish buyers above the EU thresholds.
Choose open tenders (you can still bid) or awarded contracts (who won, for how much), filter by CPV code, province, keywords and dates, and get one row per notice with buyer, CPV codes, estimated value, offer deadline, lots, and for awards the winners of every lot with their tax number (NIP/REGON) and awarded value. Notices published in both sources are merged into one row.
Optional extras:
- Monitor mode: schedule the actor daily and get only notices you have not received before.
- Winner enrichment: every winning Polish company gets a company profile from the official KRS court register and the VAT white list (legal form, address, status, VAT status, main activity, risk signals), the same data as our Polish Company Dossier.
- Detailed notices: buyer contacts (institutional e-mail, phone, website), award criteria with weights, bid deposit (wadium), contract duration, lowest and highest offers.
Official sources only. No scraping of portals, no personal data: sole traders that win contracts are listed by tax number only, without their name.
Who is it for?
- B2B sales teams selling to the public sector: a daily list of new tenders in your CPV codes and regions, straight into your CRM, Slack or e-mail.
- Bid consultants: who wins what, at which price, against how many offers.
- Competitor and market tracking: which companies win public contracts in your market, with their company profile.
- Subcontracting, financing and insurance: find companies that just won public contracts and need partners, guarantees or credit.
- AI agents (via the Apify MCP server): "find open Polish tenders for medical equipment in Małopolska".
How to use it
- Choose Notice kind: open tenders, awarded contracts, or both.
- Set Published from / to (relative dates like
-3 dayswork) and add CPV codes (for example33medical equipment,45construction works,48software). - Optionally pick provinces and keywords.
- Run it. Use the Overview, Open tenders or Lots and winners table, or download JSON, CSV or Excel.
- For a daily feed: turn on Monitor mode, save the input as a task and add an Apify schedule (for example every morning at 7:00), then an integration (e-mail, Slack, Google Sheets, webhook).
Input
{"noticeKind": "award","sources": ["BZP", "TED"],"dateFrom": "-3 days","cpvCodes": ["33", "45000000-7"],"provinces": ["malopolskie", "slaskie"],"keywords": ["remont"],"detailed": false,"enrichWinners": true,"monitor": false,"maxItems": 1000}
| Field | Default | Description |
|---|---|---|
noticeKind | open | open = contract notices, award = result notices with winners, both |
sources | both | BZP (national), TED (EU) |
dateFrom / dateTo | -3 days / today | Publication dates, at most 90 days per run |
cpvCodes | all | CPV prefixes (2–8 digits) or full codes; any CPV code of the notice may match |
provinces | all | Buyer's voivodeship (BZP) or place of performance (TED) |
keywords | none | Words in the title, case- and accent-insensitive |
detailed | false | Buyer contacts, criteria, wadium, duration, offer range |
enrichWinners | false | Company profile for every winning Polish company (awards) |
monitor / resetMonitor | false | Only notices not delivered before for the same filters |
maxItems | 1000 | Stop after this many notices (1–10,000) |
Output
One record per notice. A shortened award example (real data, 1 October 2026):
{"status": "ok","noticeKind": "award","sources": ["BZP"],"noticeIds": { "bzp": "2026/BZP 00465838/01", "ted": null },"publishedAt": "2026-10-01T09:35:54Z","title": "Zakup i dostawa aparatów EKG …","orderType": "supplies","cpv": [{ "code": "33100000-1", "label": "Urządzenia medyczne", "main": true }],"buyer": {"name": "\"DOLNOŚLĄSKIE CENTRUM ZDROWIA PSYCHICZNEGO\" SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ","nip": "8951965126","regon": "021184819","city": "Wrocław","province": { "code": "PL02", "nuts": "PL51", "name": "dolnośląskie" }},"estimatedValue": { "amount": 18589.5, "currency": "PLN", "vat": "excluded" },"lots": [{"lotNumber": "1","outcome": "awarded","offersReceived": 3,"awardedValue": { "amount": 20076.66, "currency": "PLN", "vat": null },"winners": [{"winnerType": "company","name": "Zakmed sp. z o.o. sp. komandytowa","identifier": { "type": "NIP", "value": "8862990766", "valid": true },"enrichmentStatus": "enriched","company": {"krs": "0000616740","legalFormCategory": "LIMITED_PARTNERSHIP","status": { "active": true, "inLiquidation": false, "inBankruptcy": false, "inRestructuring": false },"vatStatus": "Czynny","riskLevel": "NONE"}}]}],"winnersAlignment": "lot","links": { "bzp": "https://ezamowienia.gov.pl/mo-client-board/bzp/notice-details/id/…", "ted": null },"attribution": ["Biuletyn Zamówień Publicznych, Urząd Zamówień Publicznych (ezamowienia.gov.pl)"]}
Every run also writes an OUTPUT summary to the key-value store: notices fetched per source, matched, merged, delivered, skipped by the monitor, per-source status, whether more results exist, and the charged events.
Pricing
Pay per event: you pay only for what is delivered.
| Event | Price | When |
|---|---|---|
| Notice | $0.002 | each delivered notice |
| Detailed notice | $0.01 | each delivered notice with details (instead of $0.002) |
| Winner enrichment | $0.015 | each unique winning company enriched with a company profile, once per run |
Never charged: problem rows, notices already delivered in monitor mode, the second copy of a notice found in both sources, and sole-trader, civil-partnership, foreign or unidentifiable winners.
Worked example: a daily monitor delivers 500 new open tenders a month ($1.00) plus one awards run with 40 enriched winners ($0.60 for the enrichment and 120 award notices $0.24): $1.84 for the month. Set Maximum cost per run to cap any run; the actor stops cleanly at the limit and the summary says so.
Data sources and legal
- BZP / e-Zamówienia API (Urząd Zamówień Publicznych): public information, open to re-use; read access needs no registration.
- TED Search API (Publications Office of the European Union): notices are free to re-use, including commercially (Decision 2011/833/EU). Source: TED (ted.europa.eu), © European Union, CC BY 4.0. Every TED row carries this attribution.
- KRS Open API (Ministry of Justice, CC0) and the VAT white list (Ministry of Finance) for winner type and enrichment.
Company-level data only: names of people (contact persons, data-protection officers, committee members) are never copied; free text is never copied. Sole traders and civil partnerships are people running a business, so their names are withheld (name: null) and only their tax number and awarded value are kept. When the actor cannot confirm that a winner is a company, the name is withheld too.
Limits
- Notice types: contract notices and result notices. Corrections, plan notices, design contests, concessions and contract modifications are not included yet.
- At most 90 days and 10,000 notices per run; run several times for longer back-fills.
- Estimated values are published in only about 1 in 10 BZP contract notices; amounts are never converted between currencies.
- Winner enrichment uses the VAT white list, which allows about 100 searches per day per IP address (30 companies each). When the quota runs out, remaining winners are marked
quota_exceededand are not charged. - TED gives a publication date only (no time).
FAQ
How does monitor mode avoid duplicates?
It remembers, per filter set, the newest publication time and the notices delivered in the last 48 hours, in a key-value store in your own Apify account. The next run starts a few hours before that point and skips what you already have. Changing filters starts a new history; resetMonitor clears it.
Why do some winners have no name?
They are sole traders or civil partnerships (natural persons), or winners the actor could not confirm as companies. You still get the tax number, the lot and the awarded value.
Can I get the full notice?
Each row links to the official notice. For BZP the PDF is also available at https://ezamowienia.gov.pl/mo-board/api/v1/Board/GetNoticePdfById?noticeId=<id>.
Can I use it from my code, Zapier, Make or an AI agent?
Yes: call it through the Apify API, any Apify integration, or the Apify MCP server. The input fields have examples for agents.
I found a problem or need another field.
Open an issue on the actor page. Feature requests from paying users go first.
Polski — krótko
Ogłoszenia o zamówieniach publicznych z BZP (e-Zamówienia) i TED dla zamawiających z Polski: otwarte przetargi i wyniki z wykonawcami dla każdej części, filtrowane po CPV, województwie i słowach kluczowych. Tryb monitorowania zwraca tylko nowe ogłoszenia; opcjonalnie dane firm-zwycięzców z KRS i białej listy VAT.
Other actors from this developer
- Polish Company Dossier: KRS, VAT white list and risk signals for Polish companies by NIP, KRS or REGON.
- Slovak Company Financials: financial statements of Slovak companies from the official RÚZ register, with ratios and 5-year history.