Overview
TenderWatch aggregates public-sector procurement data from official national and EU-level sources. All data ingested into TenderWatch originates from publicly accessible feeds published by government bodies under their transparency obligations. We do not scrape private systems, internal procurement portals, or anything behind authentication.
We believe transparency in methodology outweighs any external certification badge for our use case. This page documents exactly where data comes from, how often it's refreshed, how it's validated, and how to report errors.
Active data sources
1. PLACSP — Plataforma de Contratación del Sector Público (Spain)
| URL | contrataciondelsectorpublico.gob.es |
|---|---|
| Format | Atom 1.0 / RSS feed (XML) |
| Update frequency | Hourly |
| Coverage | All Spanish central government, regional (CCAA), and local administration tenders |
| Legal basis | Ley 9/2017 de Contratos del Sector Público (transposición de Directivas UE 2014/24/EU y 2014/25/EU) |
| Fields extracted | Title, description, expediente ID, buyer (organismo), NUTS region, estimated value, currency, publication date, deadline, source URL |
2. TED — Tenders Electronic Daily (EU)
| URL | ted.europa.eu |
|---|---|
| Format | eForms XML (since 2023) + legacy PDF/HTML |
| Update frequency | Daily (Mon–Fri) |
| Coverage | EU public procurement above threshold (€5.4M works, €143k supplies/services) and below-threshold voluntary notices |
| Legal basis | Directive 2014/24/EU on public procurement; EU Official Journal (TED publishes in OJ S) |
| Fields extracted | Title, description, buyer name + country, CPV code, estimated value, currency, publication date, deadline, source URL |
FTS — Find a Tender Service (United Kingdom)
| URL | find-tender.service.gov.uk |
|---|---|
| Format | OCDS (Open Contracting Data Standard) JSON |
| Update frequency | Daily (planned; currently intermittent due to upstream rate limits) |
| Coverage | UK central government tenders (post-Brexit equivalent of OJEU/TED for UK) |
| Legal basis | UK Procurement Act 2023 (in force from 28 October 2024); Public Contracts Regulations 2015 (transitional) |
| Fields extracted | Title, description, buyer name, estimated value (GBP), publication date, deadline, OCDS release JSON URL |
| Status | Beta. FTS ingestion is currently intermittent — see upstream status. UK tenders may appear with delay. |
4. TenderNed (Netherlands)
| URL | tenderned.nl |
|---|---|
| Format | JSON API (paginated) + Atom RSS fallback |
| Update frequency | Hourly (round-robin) |
| Coverage | All Dutch central, regional and municipal government tenders (above + below threshold) |
| Legal basis | EU Directives 2014/24/EU, 2014/25/EU (Netherlands is EU member) |
| Fields extracted | Title, buyer name, procedure, type of contract (works/services/supplies), publication date, deadline, link to detail page |
| Status | Live since 2026-09-08. ~25 new tenders per fetch. |
5. BOAMP (France)
| URL | boamp.fr |
|---|---|
| Format | JSON (Opendatasoft API) |
| Update frequency | Hourly (round-robin) |
| Coverage | All French public tenders above + below threshold (1.5M+ historic records in catalog) |
| Legal basis | Code de la commande publique (transposition of EU Directives) |
| Fields extracted | Title (objet), buyer, procedure type, department code, publication date, response deadline, awarded supplier if any |
| Status | Live since 2026-09-08. Filtered to last 7 days on each run. |
6. Doffin (Norway)
| URL | doffin.no |
|---|---|
| Format | JSON API (Doffin REST) |
| Update frequency | Hourly (round-robin) |
| Coverage | Norwegian public sector and EEA tenders. Norwegian + English. |
| Legal basis | Norwegian Public Procurement Act (Lov om offentlige anskaffelser) |
| Fields extracted | Title, buyer, procedure type, publication date, response deadline, source URL |
| Status | Live — producing data on every scheduled run. |
7. Sell2Wales (Wales, United Kingdom)
| URL | sell2wales.gov.wales |
|---|---|
| Format | OCDS / JSON open data |
| Update frequency | Hourly (round-robin) |
| Coverage | Welsh Government, 22 unitary authorities, NHS Wales, universities, Welsh police and utilities. |
| Legal basis | Public Procurement (England, Wales and Scotland) Regulations 2015; Welsh Government open data duty |
| Fields extracted | Title, buyer (organisation), notice type, publication date, response deadline, value, source URL |
| Status | Live — producing data on every scheduled run. |
8. Public Contracts Scotland (Scotland, United Kingdom)
| URL | publiccontractsscotland.gov.uk |
|---|---|
| Format | JSON API |
| Update frequency | Hourly (round-robin) |
| Coverage | Scottish Government, 32 unitary authorities, NHS Scotland, universities, Scottish police. |
| Legal basis | Public Contracts (Scotland) Regulations 2006 |
| Fields extracted | Title, buyer, notice type, publication date, response deadline, source URL |
| Status | Live — producing data on every scheduled run. |
9. Simap (Switzerland)
| URL | simap.ch |
|---|---|
| Format | XML / REST |
| Update frequency | Registered — currently not in the active rotation |
| Coverage | Swiss Confederation and 26 cantons. German, French, Italian and English. |
| Legal basis | Swiss Federal Act on Public Procurement (APG / CPA) |
| Fields extracted | Title, buyer, notice type, publication date, response deadline, source URL |
| Status | Registered in the scraper registry. Its last successful run is older than the current freshness window, so it is not counted as a fresh source. |
10. IMO (International Maritime Organization)
| URL | imo.org |
|---|---|
| Format | HTML listing |
| Update frequency | Registered — currently not in the active rotation |
| Coverage | IMO procurement notices (maritime and international organisations). |
| Legal basis | IMO procurement regulations; public tender notices under UN procurement rules |
| Fields extracted | Title, description, reference, publication date, response deadline, source URL |
| Status | Registered in the scraper registry. Its last successful run is older than the current freshness window, so it is not counted as a fresh source. |
Fase 2 — Roadmap (verified sources, not yet ingested)
Estas fuentes están verificadas y operativas pero aún no integradas al pipeline automático de TenderWatch. Requieren browser automation (Playwright/nodriver) o registro oficial. Sprint separado tras validar el round-robin Tier A.
🇬🇧 Reino Unido (devolved + sector público)
| eTendersNI | etendersni.gov.uk — Northern Ireland Executive + 11 councils + NI Housing Executive + NI Water. |
|---|---|
| MOD Defence Contracts | contracts.mod.uk — licitaciones del Ministerio de Defensa UK. |
| NHS Supply Chain | supplychain.nhs.uk — framework agreements NHS. |
| Contracts Finder (legacy) | contractsfinder.service.gov.uk — central gov below-threshold. |
🇪🇺 UE + EEE + Suiza
| HILMA (Finlandia) | hankintailmoitukset.fi — Hansel Oy + todas las administraciones finlandesas. CSV/Atom feed (gratuito). |
|---|---|
| Vergabeplattformen (Alemania) | service.bund.de/vergabeplattformen — federación + 16 Länder. Heterogéneo, requiere agregación multi-fuente. |
| Portal BASE (Portugal) | base.gov.pt — open data Open Contracting CSV. PT. |
| Udbudsportalen (Dinamarca) | udbudsportalen.dk — todas las licitaciones públicas danesas. DA + EN. |
| eTenders (Irlanda) | etenders.gov.ie — Office of Government Procurement + sector público irlandés. EN. |
Para una guía paso-a-paso de cómo registrarse como proveedor en cada uno de estos portales, ver Cómo registrarse como proveedor.
Methodology
Collection pipeline
- Fetch: Cron-triggered scrapers download source feeds (HTTP GET, no authentication).
- Parse: XML/JSON parsed into canonical Tender records (source, source_id, title, description, buyer, value, dates, URL).
- PII redaction: Before any text is processed by an LLM, PII is stripped (emails, phones, names, expediente IDs). Redacted text is never shown to users — only LLM summaries are.
- LLM summarisation: Each tender is summarised in Spanish (peninsular strict) and British English (en-GB). Summaries are stored separately and tagged by source.
- Deduplication: Same tender across sources is linked via normalised source_id; canonical record is kept.
- Index: Indexed for fast search (MySQL FULLTEXT on title + description).
Update cadence
- PLACSP: Every hour. ~50–200 new tenders per run.
- TED: Once per business day (Mon–Fri), 07:00 UTC.
- FTS: Once per business day (Mon–Fri), 08:00 UTC. Intermittent due to upstream throttling.
Validation
Every ingested tender is validated against the following checks:
- URL reachable: Source URL must return HTTP 200 at scrape time.
- Required fields:
source_id,title,buyer_country,source_urlmust be present and non-empty. - Title length: Between 10 and 500 characters (anything outside this range is rejected or cleaned).
- Date sanity:
deadline_datemust be afterpublication_dateand not more than 5 years in the future. - Value sanity:
estimated_value≥ 0 and < €10 billion (anti-typo).
Error reporting
If you find an error in a tender (wrong title, broken source URL, outdated data):
- Email: tickets@libertydreams.co.uk
- Include the tender URL and a description of the issue.
- We aim to investigate within 2 business days and correct the source pipeline (not just the display).
Licensing and reuse
All data ingested by TenderWatch is sourced from public-sector feeds published under national and EU transparency legislation. TenderWatch holds no proprietary rights over the underlying data; we provide value through aggregation, multilingual summarisation, and search.
Reuse by third parties: If you wish to reuse TenderWatch data (e.g. for journalism, research, or another service), please contact tickets@libertydreams.co.uk. Bulk export is available to enterprise customers via API.
What TenderWatch extracts vs what it does not
For each scraped tender, TenderWatch extracts only the descriptive and
administrative fields of the notice: official title, technical description of
the contract object, contracting body name, country, CPV code, procedure type,
estimated value, publication date, submission deadline, official language,
canonical URL of the source notice, and the full raw payload (in the internal
raw field, kept for traceability).
TenderWatch does NOT extract direct identification or contact fields of the procurement officer (contact-point name, personal email, direct telephone, fax). These fields stay at the public source and never travel to our database, nor to the AI provider we use to generate summaries.
Empirical analysis (sample of 260 TED notices + 6 full XMLs,
October 2026): 0.0% of examined tenders carry identifiable PII within scraped
fields. This property is preserved by an automated regression test
(tests/test_pii_regression.py) which asserts that no scraper
promotes PII fields into the Tender model.
Historial del catálogo de fuentes
- 2026-09-03: Source catalogue documented; methodology page first published.
- 2026-09-01: PII redaction pipeline verified; LLM summary language enforcement (Spanish peninsular strict, British English en-GB).
- 2026-08-25: PLACSP parser fix for Atom feed (corrected corruption of expediente IDs in
descriptionfield). - 2026-08-15: PLACSP, TED, FTS scrapers deployed.
Nota: TenderWatch no mantiene un changelog público de producto (decisión §13). Este historial documenta únicamente cambios al catálogo de fuentes scrapeadas; las novedades operativas se reportan solo internamente al equipo.