German Tender Monitor – New & Changed Public Tenders (DE) avatar

German Tender Monitor – New & Changed Public Tenders (DE)

Pricing

Pay per usage

Go to Apify Store
German Tender Monitor – New & Changed Public Tenders (DE)

German Tender Monitor – New & Changed Public Tenders (DE)

Daily feed of German public tenders from the official oeffentlichevergabe.de Open Data API (CC0). Filter by CPV, keywords, Bundesland/NUTS, procedure type. Only new or changed notices, deadline countdown, no personal contact data.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Kilian Schieri

Kilian Schieri

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

German Tender Monitor – new & changed public tenders (Germany)

Daily feed of German public procurement notices (Bund, Länder, Kommunen) from the official Open Data API of oeffentlichevergabe.de (Bekanntmachungsservice, CC0 licence). Run it on a schedule and get only notices you have not seen yet – plus updates when a known procedure gets a correction or a deadline extension (changeType: UPDATED).

Why this Actor

  • Official source, no scraping, no login – bulk export of all notices published on the Bekanntmachungsservice, including national (below-threshold) notices that never reach TED.
  • Only new or changed – dedupe state is stored in a named key-value store for 120 days. You never pay twice for the same notice.
  • Change detection – corrections / deadline extensions are delivered as UPDATED with previousDeadline and deadlineChanged.
  • Filters – CPV codes including all sub-codes, keywords (title, description, lot titles), exclude words, Bundesland or NUTS region, procedure type, notice category, minimum days left.
  • No personal data – contact persons, e-mail addresses, phone and fax numbers are never output; free-text fields are scrubbed; buyers flagged as natural persons are withheld.
  • Same field style as our EU Tender Monitor (TED) – combine both for full coverage.

Input (main fields)

FieldExampleNotes
cpvCodes["72000000", "4882"]Trailing zeros = whole branch (72000000 → 72*).
keywords / excludeKeywords["Software"]Case-insensitive, OR.
regions["Bayern", "NRW", "DE212"]Bundesland name/code or NUTS prefix. regionScope: place of performance, buyer or both.
procedureTypes["open"]Groups open, restricted, negotiated, competitive-dialogue, innovation-partnership, other or raw eForms codes.
noticeCategories["competition", "change"]Also result, planning, cont-modif, dir-awa-pre.
daysBack or dateFrom/dateTo3Publication days (Europe/Berlin), up to yesterday, max. 62 per run.
onlyNewOrChangedtrueDedupe + change detection. stateStoreName separates monitors.
maxItems200Cost cap per run; the rest stays "new" for the next run.

Recommended schedule: daily, daysBack: 3, with onlyNewOrChanged: true (overlap is free – dedupe removes repeats). The form starts with onlyNewOrChanged off so a test run always shows results.

Output (one item per procedure)

id, noticeVersion, procedureId, changeType (NEW/UPDATED), previousDeadline, deadlineChanged, publicationDay, noticeType, noticeCategory, legalBasis, title, description, contractNature, buyerName, buyerId, buyerCity, buyerPostalCode, buyerNuts, buyerState, buyerStateSource (nuts or postalCode), cpvCodes, mainCpv, placeOfPerformanceNuts, states, procedureType, procedureGroup, deadline, deadlines, daysLeft, lotCount, estimatedValue, currency, documentsUrl, changedNoticeId, changeReason, url (notice page on oeffentlichevergabe.de), source.

{ "changeType": "NEW", "id": "0bcc9d85-0a37-4ea8-aea7-d2e8968c5252", "procedureId": "8ae715fa-3dbf-4829-8ad5-68b3c3d4f948",
"title": "Vertrag über die Wartung und Inspektion von Dräger Panorama Nova Atemschutz-Vollmasken",
"buyerName": "Bundesamt für Strahlenschutz", "buyerCity": "Salzgitter", "legalBasis": "de-uvgo",
"procedureType": "de-open", "procedureGroup": "open", "deadline": "2026-11-17T10:00:00+01:00", "daysLeft": 20,
"documentsUrl": "https://www.evergabe-online.de/tenderdetails.html?id=902432",
"url": "https://oeffentlichevergabe.de/ui/de/search/details?noticeId=0bcc9d85-0a37-4ea8-aea7-d2e8968c5252" }

Bundesland when a notice has no NUTS code

Many national notices carry a postal code but no NUTS code. The Actor then derives the Bundesland from the postal code (buyer address or place of performance) – buyerStateSource: "postalCode". Land-level filters (Bayern, NW …) use it; finer NUTS filters (DE212) only match real NUTS codes. If both exist, the NUTS code wins.

How much does it cost? (pay per event)

EventPrice
notice – per delivered notice (new or updated procedure)USD 0.004
apify-actor-start – per run (Apify default)USD 0.00005

Repeats are free (dedupe), so a daily monitor with ~10 matching notices costs about USD 1.20 per month. Use maxItems as a hard cost cap. The current price is always shown on the Pricing tab.

FAQ

  • Does it cover below-threshold tenders? Yes – everything published on the Bekanntmachungsservice, national and EU.
  • Why no contact e-mail? Personal data is never output. Use documentsUrl / url to reach the procurement platform.
  • Several monitors? Give each one its own stateStoreName, otherwise they share the "already seen" list.
  • Integrations: use Apify schedules plus webhooks, Make, Zapier, Slack or e-mail integrations on the dataset.

Data source & licence

  • API: GET https://oeffentlichevergabe.de/api/notice-exports?pubDay=YYYY-MM-DD&format=eforms.zip – API documentation (Swagger), OpenAPI JSON.
  • Licence: Open-Data-Richtlinie, section 4 – data provided as Open Data is under Creative Commons CC Zero (CC0); each OCDS export also states "license": "https://opendefinition.org/licenses/cc-zero/".
  • Postal code → Bundesland table built from GeoNames postal code data (DE), licensed under CC BY 4.0; compressed into postal-code ranges (src/plz-de.js).
  • This Actor is not affiliated with the Beschaffungsamt des BMI / Bekanntmachungsservice. Always check the original notice and procurement documents before bidding. Data is available up to the previous day.

Deutsch: Vergabe-Wächter Deutschland

Der Actor liefert täglich neue und geänderte öffentliche Ausschreibungen in Deutschland aus der offiziellen Open-Data-Schnittstelle von oeffentlichevergabe.de (CC0). Er deckt Bund, Länder und Kommunen ab, auch nationale Bekanntmachungen unterhalb der EU-Schwellenwerte.

  • Nur Neues: Bereits gelieferte Verfahren werden 120 Tage gespeichert und nicht erneut ausgegeben (und nicht erneut berechnet).
  • Änderungserkennung: Berichtigungen und Fristverlängerungen kommen als UPDATED, mit alter Frist (previousDeadline).
  • Filter: CPV inklusive Unter-Codes, Stichworte und Ausschlusswörter, Bundesland oder NUTS-Code, Verfahrensart, Bekanntmachungsart, Mindest-Restlaufzeit.
  • Datenschutz: Kontaktpersonen, E-Mail-Adressen, Telefon- und Faxnummern werden nie ausgegeben. Freitexte werden bereinigt, Auftraggeber, die natürliche Personen sind, werden ohne Namen geliefert.
  • Bundesland ohne NUTS-Code: fehlt der NUTS-Code, wird das Land aus der Postleitzahl abgeleitet (buyerStateSource: "postalCode", Tabelle aus GeoNames, CC BY 4.0). Das gilt nur für Filter auf Landesebene.
  • Preis: 0,004 USD je gelieferter Bekanntmachung, Wiederholungen kostenlos.
  • Empfehlung: täglicher Zeitplan mit daysBack: 3. Für den Zeitplan onlyNewOrChanged einschalten.

Quelle: oeffentlichevergabe.de – Open-Data-Richtlinie (CC0) · API-Dokumentation. Vor einer Angebotsabgabe immer die Originalbekanntmachung und die Vergabeunterlagen prüfen.