Official API or open data first
The licence is recorded per source and named here and on every hit. Rate limits are respected even where none are documented — at most one request per second per source.
We take notices from the platforms that publish them — official APIs and open data first. Never from commercial aggregators: their databases are protected, and a copy of a copy is worse data.
≈ 80
European platforms assessed
11
connectors running — TED plus ten national platforms
≈ 80–85 %
of the European volume reachable through them
1.6–1.9 M
notices per year in those sources
TED is the backbone and covers the above-threshold notices of every EU/EEA country. The national portals are added country by country — that is where the below-threshold contracts are.
| Source | Country / area | Access | Licence | Connector | Status |
|---|---|---|---|---|---|
| TED | EU/EEA + CH, NO | Search API v3, bulk XML | Decision 2011/833/EU — commercial reuse permitted | eForms | connected |
| Datenservice Öffentlicher Einkauf | Germany | daily bulk ZIP (eForms/OCDS/CSV), no key | CC0 | OCDS / eForms | connected |
| simap.ch | Switzerland | REST/JSON, read access without auth | terms of use: commercial permitted, disclaimer required | JSON | connected |
| TenderNed | Netherlands | JSON API + Atom | CC0 | JSON | connected |
| BOAMP | France | REST/JSON without auth, XML bulk | Licence Ouverte 2.0 | JSON | connected |
| data.gv.at Kerndaten | Austria | XML core data via CKAN | open licence (regulation) | XML | checked, not usable |
| Find a Tender | United Kingdom | OCDS Release API without auth | OGL v3 | OCDS | connected |
| Contracts Finder | United Kingdom | OCDS Search without auth | OGL v3 | OCDS | connected |
| Public Contracts Scotland | United Kingdom — Scotland | Release/Record API + monthly bulk | OGL v3 | OCDS | connected |
| Hilma | Finland | AVP read API, self-service key | terms of use: commercial permitted | eForms-JSON | wave 1 |
| Riigihangete register | Estonia | eForms API — registration required (requested) | CC BY 4.0 | eForms | wave 1 |
| IUB open.iub.gov.lv | Latvia | daily eForms JSON dumps | CC0 | eForms-JSON | connected |
| e-Zamówienia / BZP | Poland | JSON API without registration | regulamin, no reuse ban | JSON | connected |
| ProZorro | Ukraine | REST/JSON (OCDS-like) without auth | open — confirmation requested | OCDS | connected |
| PLACSP Sindicación | Spain | Atom + CODICE XML, free | no licence stated in the feed — confirmation requested | Atom | wave 2 |
| Diavgeia OpenData | Greece | JSON API without auth, real time | open government data — confirmation requested | JSON | wave 2 |
| BASE (dados.gov.pt) | Portugal | weekly bulk JSON/XLSX | public domain | JSON-Bulk | wave 2 |
| SEAP Bulk (data.gov.ro) | Romania | annual CSV/XLSX files | CC BY 4.0 | CSV-Bulk | wave 2 |
“Connected” means the connector, the mapper and the schedule exist and run. “Wave 1” and “wave 2” mean the access has been verified and the connector is scheduled — where a source is still waiting, it is waiting on somebody else: a key, a registration, an answer. “Checked, not usable” means we measured it and it does not carry what we need; the reason is in the row, so that nobody runs the same check twice.
data.gv.at Kerndaten — Checked on 9 September 2026: the route is machine-readable, but all core data are award notices (§ 8 (2) 1 BVergG) — contractor, value, contract date, no deadline, no open tender. 35 documents from both publishers examined, and only four core-data sources from two publishers are findable at all. Austria’s above-threshold notices come via TED.
This page is a snapshot. A public status page with per-source freshness (“last fetched 12 minutes ago”) is planned; until it exists, this list is maintained by hand.
Roughly 25 further sources, some still waiting on a licence confirmation or an open-data request:
The licence is recorded per source and named here and on every hit. Rate limits are respected even where none are documented — at most one request per second per source.
Polled according to the feed’s own TTL and cache headers, never more often than every 15 minutes.
Public platform, no robots.txt exclusion, no login, no technical protection circumvented, light load, an identifying user agent with a contact URL. Metadata of the notice only, never documents.
Where the terms of use forbid automated access, or where there is a captcha or a challenge, we do not scrape. We write to the operator and list the source as requested until we hear back.
Notices contain names, emails and phone numbers of procurement officers. We do not display them and do not send them to any translation model. You go to the source.
Reuse of these notices is permitted, in most cases with attribution. Here is the attribution:
Dies ist keine offizielle Publikation. Massgebend sind die auf www.simap.ch publizierten Daten.
Required by the simap.ch terms of use. In English: this is not an official publication; the data published on www.simap.ch is what applies.
Commercial aggregators — login, terms of use, database rights. We take nothing from them, neither by scraping nor by reuse. Platforms that block crawlers are not worked around, and a captcha or a bot challenge counts as a technical protection measure that we do not circumvent.