Zum Hauptinhalt springen
Hier stehen die Änderungen an Verhalten und Datenmodell der API seit dem 13.10.2026, jeweils mit dem Datum ihres Produktiv-Deployments. Abonnieren kannst du den Changelog per RSS: über den Button oben auf der Seite oder unter https://docs.trassets.ai/de/changelog/rss.xml. Breaking Changes tragen das Tag Breaking. Solange /v1/ eine Preview ist, können sie ohne Vorlaufzeit kommen (siehe Versionierung).
BreakingDatenmodellMCPAPI-Keys
  • Objekte in den Antworten der Category-Endpunkte führen jetzt immer alle Schlüssel. Fehlt ein Wert, steht dort null, bisher fehlte der Schlüssel ganz. Ein period ohne Grenzen kommt deshalb als Objekt mit start und end, beide null, statt als leeres Objekt. Prüfe auf Werte, nicht auf ein leeres Objekt. /v1/raw liefert Rohdaten weiter unverändert. Siehe Response-Struktur.
  • Neu: Über den Trassets-MCP-Server unter https://mcp.trassets.ai/mcp lesen KI-Clients wie Claude Code, Cursor, VS Code oder Copilot Studio deine Daten. Er braucht einen Key mit dem neuen Kanal MCP, den du beim Erzeugen im Portal wählst. Bestehende Keys haben den Kanal API und funktionieren unverändert. Siehe MCP-Server.
Fehler
  • Jede Antwort trägt den Header X-Request-ID. Bei Support-Anfragen schick ihn bitte mit, siehe Fehler.
  • Kann die API eine Tabelle wegen eines Datenbankfehlers nicht nachschlagen, antwortet sie mit 500. Bisher kam fälschlich 404 mit der Meldung, die Tabelle gebe es nicht. Ein 404 ist damit wieder endgültig, nach einem 500 lohnt ein erneuter Versuch.
BreakingPagination
  • limit ist auf den Category-Endpunkten jetzt höchstens 10.000, bisher waren es 100.000. Größere Werte liefern 422. Für mehr Zeilen blätterst du mit next_cursor, siehe Pagination.
BreakingPaginationOpenAPIAPI-Keys
  • Auf den Category-Endpunkten ist total ohne den neuen Parameter include_total=true jetzt null. Die API zählt die Zeilen nur noch auf Anfrage. next_cursor hängt nicht davon ab. /v1/raw liefert total weiterhin immer.
  • Die OpenAPI-Spec nimmt die Feldtypen der v1-Ressourcen aus einer festen Deklaration, nicht mehr beim Start aus der Datenbank eines Referenzkunden. Dadurch tragen 20 Filter-Parameter ihren echten Typ, etwa integer für account_id und floor_area_id oder ein Datum für booking_date und reference_date. Die Requests selbst bleiben gleich. Wenn du deinen Client aus der Spec generierst, erzeuge ihn neu. total und next_cursor sind als nullable deklariert.
  • Neue API-Keys beginnen mit trs_live_. Bestehende Keys bleiben gültig. Das Portal zeigt je Key die letzte Nutzung.
  • Beim Anlegen eines Keys im Portal lässt sich der Zugriff auf Positionen der Reporting-Struktur Trassets-Standard beschränken, siehe Authentifizierung.
Rate-LimitsDatenmodell
  • Jeder API-Key hat ein Budget von 2.500 Requests pro Stunde, gemeinsam für alle /v1/-Endpunkte. Bisher galten 500 Requests pro Stunde je Pfad. Fehlgeschlagene Key-Prüfungen zählen nicht mit. Siehe Rate-Limits.
  • Neue Ressource /v1/accounting/account_hierarchies mit den Kontenmapping-Strukturen je Konto, siehe Accounting.
Datenmodell
  • Neue Kategorie kpi mit Objekt-Kennzahlen (property_kpis, property_kpis_by_floor_area_type), siehe KPI. Auch /v1/changes filtert nach dieser Kategorie.
BreakingVersionierung
  • Alle Endpunkte liegen jetzt unter /v1/: Category-Tabellen, Raw-Tabellen, Catalog und Changes. Unversionierte Pfade liefern 404 ohne Redirect. Offset-Pagination und die X-Pagination-Header gibt es nicht mehr, geblättert wird mit cursor. Siehe Versionierung.
Filter
  • Filter auf Spalten mit Objektwerten, etwa account_type an property_structure, liefern jetzt Treffer statt 500. Du filterst nach code oder label. Ein Filterwert im falschen Format, etwa Text für eine Zahlen- oder Datumsspalte, liefert 400 statt 500.
BreakingDatenmodell
  • notifications.priority_text enthält jetzt die numerische ERP-ID der Priorität als String. Bisher standen dort falsche Labels aus einem Status-Lookup, oder das Feld blieb leer. Siehe Operations.
BreakingDatenmodell
  • Dezimalspalten kommen unter /v1/ als JSON-Zahl statt als String, zum Beispiel 19.0 statt “19.0000”.
  • requests.floor_area_id ist jetzt eine Zahl statt eines Strings. Auch die Werte sind neu und passen jetzt auf property_structure.floor_area_id.
  • Weitere Freitext- und Bearbeiterspalten gelten als personenbezogen und kommen nur noch mit dem passenden Grant, darunter comment, responsible_user und responsible_person. Siehe Authentifizierung.
  • Neu unter /v1/operations: orders und offers. offers enthält eine Zeile je echtem Angebot; Anfragen ohne Angebot stehen nur in requests. Siehe Operations.
BreakingDatenmodell
  • booking_positions.person_id ist jetzt ein String statt einer Zahl.
  • notifications.person_id heißt jetzt reporter_key.
  • projects liefert eine Zeile je Projekt und deutlich mehr Projekte, weil kein Statusfilter mehr greift. Die Felder to_hdr_id, to_name, request_hdr_id, request_number, report_id, report_number, creditor_id, offer_id und offer_number entfallen, neu ist project_account_id. Siehe Operations.
  • Neue Ressource /v1/operations/requests mit einer Zeile je Anfrage, über project_account_id mit projects verknüpft.
API-Keys
  • API-Keys können ein Ablaufdatum haben, das du im Portal setzt. Ein abgelaufener Key liefert 401 „API key expired“.