Bidpoint Partner API – Tender-Suche
Diese Dokumentation beschreibt den Such-Endpoint der Bidpoint Partner API. Über diesen Endpoint durchsuchen Sie unseren aggregierten Bestand an deutschen und europäischen Ausschreibungen (Quellen: TED, service.bund.de und regionale Vergabeplattformen) per Stichwort.
Hinweis zum Umfang: Dies ist einer von rund 50 Endpoints der Partner API. Diese Seite deckt bewusst nur die Tender-Suche ab – den Endpoint, den die meisten Integrationen als Einstieg nutzen. Wenn Sie Zugriff auf weitere Funktionen (Detaildaten, Dokumente, Vergabestatus etc.) benötigen, melden Sie sich gerne bei uns.
Auf einen Blick
Authentifizierung
Jede Anfrage benötigt Ihren persönlichen API-Key im Authorization-Header:
Authorization: Bearer <Ihr-API-Key>Ohne gültigen Key antwortet die API mit 401 Unauthorized. Behandeln Sie den Key wie ein Passwort – er gehört nicht in clientseitigen Code oder ein öffentliches Repository.
Anfrage
Endpoint
GET https://api.bidpoint.ai/api/v1/partner/searchParameter
Alle Parameter werden als Query-Parameter übergeben. Alle sind optional – ohne search erhalten Sie einen reinen Filter-Modus (neueste Ausschreibungen, nach Filtern eingegrenzt).
dates – Zeitraum wird als zwei wiederholte Schlüssel übergeben:
?dates=2026-01-01&dates=2026-06-30radius – Umkreis wird in Bracket-Syntax übergeben. point ist [Längengrad, Breitengrad], distance der Radius in Metern:
?radius[point][]=13.405&radius[point][]=52.52&radius[distance]=50000Beispiele
Stichwortsuche nach laufenden Ausschreibungen
curl -H "Authorization: Bearer $BIDPOINT_API_KEY" \ "https://api.bidpoint.ai/api/v1/partner/search?search=straßenbau&filter=open"
Stichwortsuche mit Zeitraum und Seitengröße
curl -H "Authorization: Bearer $BIDPOINT_API_KEY" \ "https://api.bidpoint.ai/api/v1/partner/search?search=IT-Sicherheit&dates=2026-01-01&dates=2026-06-30&limit=50"
Suche im Umkreis von 50 km um Berlin
curl -H "Authorization: Bearer $BIDPOINT_API_KEY" \ "https://api.bidpoint.ai/api/v1/partner/search?radius[point][]=13.405&radius[point][]=52.52&radius[distance]=50000"
Antwort
Die API liefert ein JSON-Objekt mit data (Trefferliste) und meta (Seiteninfo).
Such-Modus (mit search)
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Straßenbauarbeiten Los 4 Nord",
"publishedAt": "2026-03-01T00:00:00.000Z",
"deadlineAt": "2026-04-15T00:00:00.000Z",
"awardedAt": null,
"updatedAt": "2026-03-02T09:12:00.000Z",
"geolocation": [13.405, 52.52],
"file": null,
"score": 0.87
}
],
"meta": {
"page": 1,
"limit": 10,
"hasNextPage": true,
"hasPrevPage": false
}
}Felder
Im reinen Filter-Modus (ohne
search) entfallen die Felderfileundscore.
Paginierung
Die Suche liefert die Treffer seitenweise. Statt einer Gesamtzahl gibt es ein hasNextPage-Flag – Sie blättern so lange weiter, bis hasNextPage auf false steht:
page=1 while : ; do resp=$(curl -s -H "Authorization: Bearer $BIDPOINT_API_KEY" "https://api.bidpoint.ai/api/v1/partner/search?search=straßenbau&limit=100&page=$page") echo "$resp" | jq '.data[].title' [ "$(echo "$resp" | jq '.meta.hasNextPage')" = "true" ] || break page=$((page + 1)) doneBitte fair nutzen: Es gibt kein hartes Rate-Limit, aber bei großen Durchläufen bauen Sie bitte eine kurze Pause (z. B. 100 ms) zwischen den Anfragen ein.
Fehler
Fehler kommen mit passendem HTTP-Statuscode und einem JSON-Body mit error-Feld:
{ "error": "unauthorized" } { "error": "invalid_request", "fields": { "filter": "invalid value" } }Gut zu wissen
Diese Punkte helfen Ihnen, saubere Ergebnisse zu erhalten:
scoreist eine Sortierhilfe, kein Filter. Auch ein hoher Score kann einen Treffer enthalten, in dem Ihr Stichwort nur als Teilzeichenkette in einem unpassenden Kontext vorkommt. Wenn Sie exakte Treffer brauchen, prüfen Sie Titel/Beschreibung zusätzlich auf Ihrer Seite (z. B. mit Wortgrenzen).Dieselbe Ausschreibung kann mehrfach erscheinen – etwa pro Los oder Version. Wenn Sie eine eindeutige Liste brauchen, deduplizieren Sie am besten über
(Titel, Auftraggeber)und nicht allein über dieid.deadlineAt: nullheißt nicht „abgelaufen". Viele aktive Ausschreibungen haben keine Frist hinterlegt. Schließen Sie nicht allein anhand der Frist auf den Status.filezeigt die Treffer-Herkunft an. Istfilegesetzt, stammt der Treffer aus einem Ausschreibungsdokument; beinullaus dem Ausschreibungstext selbst.Texte können HTML-Entities enthalten (z. B.
"). Wandeln Sie diese vor der Anzeige um.
Nächste Schritte
Über die
idaus den Suchergebnissen rufen Sie die vollständigen Detaildaten einer Ausschreibung ab (eigener Endpoint).Brauchen Sie weitere Funktionen der Partner API? Sprechen Sie uns an.