> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trassets.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Data API Changelog

> Changes to the Data API by date, with breaking changes marked. Subscribe via RSS.

This page lists changes to the behavior and data model of the API since 13 October 2026, each dated by its production deployment. Subscribe via RSS: use the button at the top of the page or `https://docs.trassets.ai/changelog/rss.xml`.

Breaking changes carry the tag **Breaking**. While `/v1/` is a preview, they can land without notice (see [Versioning](https://docs.trassets.ai/concepts/versioning.md)).

**2026-11-03**

* Objects in category endpoint responses now always carry all their keys. A missing value is null, before the key was left out. A period with neither bound therefore comes as an object with start and end, both null, instead of an empty object. Check for values, not for an empty object. /v1/raw still returns source data unchanged. See [Response structure](https://docs.trassets.ai/v1/response-shape-conventions.md).
* New: through the Trassets MCP server at [https://mcp.trassets.ai/mcp](https://mcp.trassets.ai/mcp), AI clients such as Claude Code, Cursor, VS Code or Copilot Studio read your data. It needs a key with the new channel MCP, which you select in the portal when creating the key. Existing keys have channel API and work as before. See [MCP server](https://docs.trassets.ai/v1/guides/mcp.md).

**2026-11-02**

* Every response carries the X-Request-ID header. Please include it in support requests, see [Errors](https://docs.trassets.ai/concepts/errors.md).
* If the API cannot look up a table because of a database error, it now answers 500. Before, it wrongly returned 404 saying the table does not exist. A 404 is final again, a 500 is worth a retry.

**2026-11-01**

* limit on the category endpoints is now at most 10,000, down from 100,000. Larger values return 422. To get more rows, page with next\_cursor, see [Pagination](https://docs.trassets.ai/v1/concepts/pagination.md).

**2026-10-30**

* On the category endpoints, total is now null unless you send the new parameter include\_total=true. The API counts rows only on request. next\_cursor does not depend on it. /v1/raw still always returns total.
* The OpenAPI spec takes the field types of the v1 resources from a fixed declaration instead of reading them from a reference customer's database at startup. As a result, 20 filter parameters now carry their real type, such as integer for account\_id and floor\_area\_id or a date for booking\_date and reference\_date. The requests themselves stay the same. If you generate your client from the spec, regenerate it. total and next\_cursor are declared nullable.
* New API keys start with trs\_live\_. Existing keys stay valid. The portal shows when each key was last used.
* When creating a key in the portal, access can be restricted to positions of the Trassets-Standard reporting structure, see [Authentication](https://docs.trassets.ai/v1/authentication.md).

**2026-10-29**

* Each API key has a budget of 2,500 requests per hour, shared across all /v1/ endpoints. Before, the limit was 500 requests per hour per path. Failed key checks do not count. See [Rate limits](https://docs.trassets.ai/concepts/rate-limits.md).
* New resource /v1/accounting/account\_hierarchies with the account mapping structures per account, see [Accounting](https://docs.trassets.ai/v1/data-model/accounting.md).

**2026-10-28**

* New category kpi with property KPIs (property\_kpis, property\_kpis\_by\_floor\_area\_type), see [KPI](https://docs.trassets.ai/v1/data-model/kpi.md). /v1/changes can filter by this category too.

**2026-10-27**

* All endpoints now live under /v1/: category tables, raw tables, catalog, and changes. Unversioned paths return 404 without a redirect. Offset pagination and the X- pagination headers are gone, paging uses cursor. See [Versioning](https://docs.trassets.ai/concepts/versioning.md).

**2026-10-26**

* Filters on columns with object values, such as account\_type on property\_structure, now return matches instead of 500. You filter by code or label. A filter value in the wrong format, such as text for a number or date column, returns 400 instead of 500.

**2026-10-18**

* notifications.priority\_text now holds the numeric ERP ID of the priority as a string. Before, it held wrong labels from a status lookup or stayed empty. See [Operations](https://docs.trassets.ai/v1/data-model/operations.md).

**2026-10-16**

* Decimal columns under /v1/ come as JSON numbers instead of strings, for example 19.0 instead of "19.0000".
* requests.floor\_area\_id is now an integer instead of a string. Its values changed too and now match property\_structure.floor\_area\_id.
* More free-text and assignee columns count as personal data and now require the matching grant, among them comment, responsible\_user, and responsible\_person. See [Authentication](https://docs.trassets.ai/v1/authentication.md).
* New under /v1/operations: orders and offers. offers holds one row per actual offer; requests without an offer appear only in requests. See [Operations](https://docs.trassets.ai/v1/data-model/operations.md).

**2026-10-14**

* booking\_positions.person\_id is now a string instead of a number.
* notifications.person\_id is now called reporter\_key.
* projects returns one row per project and considerably more projects, because no status filter applies anymore. The fields to\_hdr\_id, to\_name, request\_hdr\_id, request\_number, report\_id, report\_number, creditor\_id, offer\_id, and offer\_number are gone, project\_account\_id is new. See [Operations](https://docs.trassets.ai/v1/data-model/operations.md).
* New resource /v1/operations/requests with one row per request, joined to projects via project\_account\_id.

**2026-10-13**

* API keys can have an expiry date, set in the portal. An expired key returns 401 "API key expired".


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.