GET /api/v1/tenders
Öffentliche Auftragsvergabe deutschlandweit (oeffentlichevergabe.de, Tier A)
Öffentliche Auftragsbekanntmachungen über ALLE Städte im Store aus dem Bekanntmachungsdienst des Bundes (oeffentlichevergabe.de, OCDS): sucht deutschlandweit, ohne jede Stadt einzeln abzufragen. Je Bekanntmachung Titel, Status, Auftraggeber, Wert und Quell-Link. status wird semantisch aus dem notice_type abgeleitet: active = laufendes Vergabeverfahren, complete = entschiedenes Verfahren inkl. aufgehobener Vergaben; der rohe Zuschlag-Status steht im Feld award_status. Entschiedene Verfahren tragen zusaetzlich Auftragnehmer (suppliers) und vergebenen Auftragswert (award_value/award_currency); Betraege <= 0 aus der Quelle werden als nicht angegeben (null) gewertet. Die Angebotsfrist (deadline) fehlt im Quell-Export fast immer und steht dann nur in der Original-Bekanntmachung über source_url. Read-only aus dem deduplizierten Store (kein Live-Pull im Request-Pfad). Filter q (Titel-Stichwort), status (active/complete) und since (ab ISO-Datum), mit Pagination (limit/offset). Keine Bekanntmachungen -> 200 source_status="no_data", data=null (ehrlich). CC0 (Tier A). Deaktiviert -> 200 source_status="disabled".
Parameter
| Name | In | Pflicht | Typ | Beschreibung |
|---|---|---|---|---|
q | query | nein | string | Titel-Stichwort (Teilstring, parametrisierter LIKE-Filter). |
status | query | nein | string | Verfahrens-Status (active = laufendes Vergabeverfahren, complete = entschiedenes Verfahren inkl. aufgehobener Vergaben; Detail im Feld award_status). |
since | query | nein | string | Nur Bekanntmachungen ab diesem ISO-Datum YYYY-MM-DD; ungültiges Datum -> 422. |
limit | query | nein | integer | Seitengröße (Default 50, Cap 200). |
offset | query | nein | integer | Seiten-Offset (>= 0); Overflow -> leere Seite, no_data. |
Code-Beispiele
curl "https://infranode.dev/api/v1/tenders"const res = await fetch("https://infranode.dev/api/v1/tenders");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/tenders")
res.raise_for_status()
print(res.json()) Try it
Für diesen Endpunkt steht keine Live-Konsole bereit. Er ist eine Betriebs- oder Demo-Operation (z.B. erzwungener Fehler) und wird hier nur dokumentiert. Nutze die Code-Beispiele oben für einen direkten Aufruf.