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,.xlsxoder.xmlund muss zum Inhalt passen. Das alte binäre Format.xlswird 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 |
|---|---|
dtvp | Deutsches Vergabeportal (DTVP), vorerst abgelehnt |
vergabe24 | Vergabe24, vorerst abgelehnt |
evergabe_bund | e-Vergabe des Bundes |
vergabe_nrw | Vergabe.NRW |
rib_bayern | vergabe.bayern (RIB Tender) |
subreport | subreport |
cosinex_laender | Vergabemarktplätze der Länder (cosinex) |
dab | Deutsches Ausschreibungsblatt, vorerst abgelehnt |
dtad | DTAD Deutscher Auftragsdienst, vorerst abgelehnt |
had | HAD Hessische Ausschreibungsdatenbank, vorerst abgelehnt |
vergabe_saarland | vergabe.saarland, vorerst abgelehnt |
oeffentlichevergabe_de | Bekanntmachungsservice (oeffentlichevergabe.de) |
other_public | Ein anderes öffentliches Vergabeportal |
manual | Eine 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.
| Profil | Kopfzeile |
|---|---|
template | Die Stonewake Vorlage, deren Spalten die Feldnamen unten sind. Sie verlangt reference und title. |
oeffentlichevergabe_de_purpose | purpose.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
| Feld | Inhalt |
|---|---|
reference | Die Kennung der Zeile in ihrem Portal, etwa die Bekanntmachungsnummer des Portals. Ohne sie braucht die Zeile notice_id und notice_version. |
title | Der Titel der Bekanntmachung. Pflichtfeld. |
notice_id, notice_version | Die Kennung der Bekanntmachung, wie eForms sie angibt, oder die numerische Kennung einer nationalen Bekanntmachung, und ihre Version von 1 bis 99. |
procedure_id | Die eForms Verfahrenskennung, die alle Bekanntmachungen eines Verfahrens teilen. |
publication_number | Die TED Veröffentlichungsnummer, etwa 670716-2026. |
form_type, notice_type, notice_subtype | Die eForms Codes. Ein Formulartyp oder Bekanntmachungstyp, der dem Untertyp widerspricht, wird verworfen. |
published_on, tender_deadline | Ein Tag, geschrieben als 2026-11-14 oder 14.11.2026. |
buyer_name, buyer_identifier, buyer_country | Der öffentliche Auftraggeber, seine angegebene Kennung und sein dreistelliger Ländercode. |
contract_nature, procedure_type | Die eForms Codes, etwa works oder open. |
cpv | Ein oder mehrere achtstellige CPV Codes, die Prüfziffer ist erlaubt, getrennt durch Semikolons oder Leerzeichen. Der erste ist der Hauptcode. |
place_of_performance | NUTS Codes oder dreistellige Ländercodes. |
estimated_value, estimated_currency | Ziffern 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. |
description | Die Beschreibung der Bekanntmachung. |
text_lang | Die Sprache von Titel und Beschreibung als dreistelliger Code, etwa deu. |
source_url | Der Link zur Bekanntmachung, den die Datei angibt, nur https. |
lot | Kennzeichnet 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
| Ergebnis | Bedeutung |
|---|---|
new | Ihr Team hat noch keine Bekanntmachung mit dieser Kennung aus diesem Portal. Mit der Bestätigung wird sie gespeichert. |
update | Mit anderem Inhalt schon gespeichert. Die Bestätigung ersetzt ihn. |
unchanged | Mit gleichem Inhalt schon gespeichert. Nichts ändert sich. |
duplicate | Dieselbe Kennung steht in einer früheren Zeile, und die erste Zeile bleibt. |
skipped | Eine Loszeile. |
invalid | Der 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/uploadzeigt die Vorschau eines Uploads. Senden Sie den Dateinamen infile_name, das Portal, aus dem sie exportiert wurde, insource_portal, die Datei base64 kodiert incontent_base64und auf Wunschmapping, ein Objekt von Spaltenname zu Feld.dry_runist auf/v1immer 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 überlimit(Standard und Höchstwert 100) undoffset, währendcounts,countersundtotaldie ganze Datei abdecken. Eine als Ganzes abgelehnte Datei beantwortet ein 422, dessen Inhalt das Problem nennt.- Das MCP Werkzeug
tender_export_previewsendet dieselbe Anfrage und liefert die Zeilen ebenso seitenweise.