Dokumentation der API

Exporte aus Vergabeportalen

Ihre Bank führt ihre Ausschreibungssuchen in den eigenen Zugängen der Vergabeportale. Stonewake meldet sich nie in Ihrem Namen bei einem Portal an. Sie exportieren die Treffer aus dem Portal und laden die Datei hoch, und die Bekanntmachungen landen im eigenen Ausschreibungsbereich Ihres Teams, den kein anderes Team und keine andere Bank sieht. Im Dashboard finden Analysten und Administratoren den Upload auf der Seite Ausschreibungen unter Portalexport hochladen. Ein Team ohne die Seite Ausschreibungen findet ihn in den Einstellungen unter Exporte aus Vergabeportalen.

Dateien

  • Ein CSV oder XLSX Export mit einer Bekanntmachung je Zeile oder das XML einer Bekanntmachung im eForms Format, in dem TED und der Bekanntmachungsservice veröffentlichen.
  • Der Dateiname endet auf .csv, .xlsx oder .xml und muss zum Inhalt passen. Das alte binäre Format .xls wird nicht gelesen, speichern Sie eine solche Datei zuerst als .xlsx.
  • Höchstens 700.000 Bytes und 2.000 Zeilen je Datei. Ein größerer Export wird in Teilen hochgeladen, und ein zweimal hochgeladener Teil speichert nichts doppelt.
  • Ein Tabellenblatt mit mehr als 1.000 Spalten wird mit „Das Tabellenblatt hat mehr als 1.000 Spalten. Speichern Sie es mit höchstens 1.000 Spalten und laden Sie es erneut hoch.“ abgelehnt.
  • Eine CSV Datei darf durch Kommas, Semikolons oder Tabulatoren getrennt sein und in UTF8 oder in der Windows Codepage gespeichert sein, die eine deutsche Tabellenkalkulation verwendet. Aus einer Arbeitsmappe wird das erste Tabellenblatt gelesen.
  • Eine Datei, die als Ganzes nicht gelesen werden kann, wird mit dem Grund abgelehnt, und nichts aus ihr wird gelesen.

Das Portal, aus dem Sie exportiert haben

Jeder Upload nennt das Portal, aus dem die Datei exportiert wurde, im Dashboard und über die API als source_portal. Die Angabe wird mit jeder Bekanntmachung des Uploads und in seinem Eintrag im Prüfprotokoll gespeichert.

`source_portal`Portal
dtvpDeutsches Vergabeportal (DTVP), vorerst abgelehnt
vergabe24Vergabe24, vorerst abgelehnt
evergabe_bunde-Vergabe des Bundes
vergabe_nrwVergabe.NRW
rib_bayernvergabe.bayern (RIB Tender)
subreportsubreport
cosinex_laenderVergabemarktplätze der Länder (cosinex)
dabDeutsches Ausschreibungsblatt, vorerst abgelehnt
dtadDTAD Deutscher Auftragsdienst, vorerst abgelehnt
hadHAD Hessische Ausschreibungsdatenbank, vorerst abgelehnt
vergabe_saarlandvergabe.saarland, vorerst abgelehnt
oeffentlichevergabe_deBekanntmachungsservice (oeffentlichevergabe.de)
other_publicEin anderes öffentliches Vergabeportal
manualEine Datei, die Ihre Bank selbst zusammengestellt hat, aus keinem Portal

Ein Upload aus einem als abgelehnt gekennzeichneten Portal wird vollständig abgelehnt, bevor die Datei gelesen wird, und nichts daraus wird gespeichert. Uploads aus diesen Portalen werden vorerst nicht angenommen.

Portalprofile und Ihre eigene Zuordnung

Die Kopfzeile der Datei bestimmt, wie ihre Spalten gelesen werden. Eine Kopfzeile wird nur erkannt, wenn sie jede Spalte enthält, die ein Portalprofil verlangt.

ProfilKopfzeile
templateDie Stonewake Vorlage, deren Spalten die Feldnamen unten sind. Sie verlangt reference und title.
oeffentlichevergabe_de_purposepurpose.csv aus dem CSV Export des Bekanntmachungsservice auf oeffentlichevergabe.de.

Passt kein Profil oder mehr als eines, listet die Vorschau die Spalten Ihrer Datei auf und bittet Sie, sie Feldern zuzuordnen. Gelesen werden nur die Spalten, die Sie zuordnen. Eine Spalte, die weder das Profil noch Ihre Zuordnung nennt, wird als unbekannt aufgeführt und nie gelesen, und aus dem Namen einer Spalte wird nichts erraten.

Felder

FeldInhalt
referenceDie Kennung der Zeile in ihrem Portal, etwa die Bekanntmachungsnummer des Portals. Ohne sie braucht die Zeile notice_id und notice_version.
titleDer Titel der Bekanntmachung. Pflichtfeld.
notice_id, notice_versionDie Kennung der Bekanntmachung, wie eForms sie angibt, oder die numerische Kennung einer nationalen Bekanntmachung, und ihre Version von 1 bis 99.
procedure_idDie eForms Verfahrenskennung, die alle Bekanntmachungen eines Verfahrens teilen.
publication_numberDie TED Veröffentlichungsnummer, etwa 670716-2026.
form_type, notice_type, notice_subtypeDie eForms Codes. Ein Formulartyp oder Bekanntmachungstyp, der dem Untertyp widerspricht, wird verworfen.
published_on, tender_deadlineEin Tag, geschrieben als 2026-11-14 oder 14.11.2026.
buyer_name, buyer_identifier, buyer_countryDer öffentliche Auftraggeber, seine angegebene Kennung und sein dreistelliger Ländercode.
contract_nature, procedure_typeDie eForms Codes, etwa works oder open.
cpvEin oder mehrere achtstellige CPV Codes, die Prüfziffer ist erlaubt, getrennt durch Semikolons oder Leerzeichen. Der erste ist der Hauptcode.
place_of_performanceNUTS Codes oder dreistellige Ländercodes.
estimated_value, estimated_currencyZiffern mit höchstens zwei Nachkommastellen und ohne Tausendertrennzeichen und eine dreistellige ISO Währung. Ein Betrag von 1 oder weniger ist ein Platzhalter und wird nicht gespeichert.
descriptionDie Beschreibung der Bekanntmachung.
text_langDie Sprache von Titel und Beschreibung als dreistelliger Code, etwa deu.
source_urlDer Link zur Bekanntmachung, den die Datei angibt, nur https.
lotKennzeichnet eine Loszeile. Eine Loszeile wird übersprungen, weil die Bekanntmachung aus der Zeile ihres Verfahrens gelesen wird.

Ein Wert, der nicht zu seinem Feld passt, wird allein verworfen und gezählt. Er nimmt die Zeile nie mit.

Kontaktdaten

Kein Feld nimmt eine Kontaktperson, eine Telefonnummer oder eine Mailadresse auf. Ein Titel, eine Beschreibung oder ein Auftraggebername mit einer Mailadresse, einer Telefonnummer in internationaler Schreibweise oder in der Schreibweise 0711 123456, 0711/123456 oder 0711-123456 oder mit einer Kontaktangabe wie Telefon, Fax, Ansprechpartner oder Kontakt wird vollständig zurückgehalten und gezählt. Ein Auftraggeber, den eine eForms Bekanntmachung als natürliche Person kennzeichnet, behält nur sein Land.

Was jede Zeile beantwortet

ErgebnisBedeutung
newIhr Team hat noch keine Bekanntmachung mit dieser Kennung aus diesem Portal. Mit der Bestätigung wird sie gespeichert.
updateMit anderem Inhalt schon gespeichert. Die Bestätigung ersetzt ihn.
unchangedMit gleichem Inhalt schon gespeichert. Nichts ändert sich.
duplicateDieselbe Kennung steht in einer früheren Zeile, und die erste Zeile bleibt.
skippedEine Loszeile.
invalidDer Zeile fehlt die Kennung oder der Titel, oder sie hat mehr Zellen als die Kopfzeile Spalten.

counters nennt jeden verworfenen oder zurückgehaltenen Wert und jede abgelehnte Zeile, etwa estimated_value_placeholder oder contact_data_withheld, mit ihrer Anzahl.

Erst die Vorschau, dann die Bestätigung

Die Vorschau schreibt nichts. Wenn Sie bestätigen, läuft der Upload erneut gegen die Bekanntmachungen, die Ihr Team gespeichert hat, speichert neue und geänderte Zeilen und legt einen Eintrag im Prüfprotokoll mit den Zahlen an. Jede gespeicherte Bekanntmachung behält ihre Quelle, nämlich das Profil, als das sie gelesen wurde, das Portal, das Sie genannt haben, die Datei und ihre Zeile, wer sie wann hochgeladen hat und den Link zur Bekanntmachung, wenn die Datei einen angibt. Die Suchprofile Ihres Teams prüfen die gespeicherten Zeilen danach wie jede Bekanntmachung, sodass eine hochgeladene Bekanntmachung ein Ausschreibungstreffer werden kann; siehe Suchprofile und Treffer für Ausschreibungen.

Über die API und MCP

  • POST /v1/tenders/portals/upload zeigt die Vorschau eines Uploads. Senden Sie den Dateinamen in file_name, das Portal, aus dem sie exportiert wurde, in source_portal, die Datei base64 kodiert in content_base64 und auf Wunsch mapping, ein Objekt von Spaltenname zu Feld. dry_run ist auf /v1 immer true, es wird also nichts geschrieben, und bestätigt wird ein Upload im Dashboard. Die Zeilen kommen seitenweise in der Reihenfolge der Datei, gewählt über limit (Standard und Höchstwert 100) und offset, während counts, counters und total die ganze Datei abdecken. Eine als Ganzes abgelehnte Datei beantwortet ein 422, dessen Inhalt das Problem nennt.
  • Das MCP Werkzeug tender_export_preview sendet dieselbe Anfrage und liefert die Zeilen ebenso seitenweise.