GET /api/v1/cities/{slug}/public-tenders
Public procurement notices per city (oeffentlichevergabe.de, Tier A)
A city's public procurement notices from the German federal procurement publication service (oeffentlichevergabe.de, OCDS): running tenders and awarded contracts, each with title, status, buyer, value, deadlines and a source link. Read-only from the deduplicated store (no live pull in the request path). Filter by status (active/complete) and match (buyer_city/place_of_performance), with pagination (limit/offset). Coverage is growing: above-threshold complete, below-threshold incrementally from 2024. No notices -> 200 source_status="no_data", data=null (honest). CC0 (Tier A). Disabled -> 200 source_status="disabled".
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
slug | path | yes | string | |
status | query | no | string | OCDS-Status-Filter (active = laufend, complete = vergeben). |
match | query | no | string | Stadt-Zuordnung (buyer_city = Sitz des Amts, place_of_performance = Erfüllungsort). |
limit | query | no | integer | Seitengröße (Default 50, Cap 200). |
offset | query | no | integer | Seiten-Offset (>= 0); Overflow -> leere Seite, no_data. |
Code samples
curl "https://infranode.dev/api/v1/cities/hamburg/public-tenders"const res = await fetch("https://infranode.dev/api/v1/cities/hamburg/public-tenders");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/cities/hamburg/public-tenders")
res.raise_for_status()
print(res.json())