For AI agents: llms.txt is a short guide that sends you to the rules your problem needs, and rules.json holds every rule of this playbook as JSON.
Recommended
Give users the data from connected products
If you make a connected device or the app or service it needs, let users get its data free and machine-readable. Tell them what data it creates before they buy.
Applies when
The project it has users in the EU.
How to do it
Chapter II of the Data Act, Regulation (EU) 2023/2854, has applied since 12 September 2025. A connected product collects data about its use and can send it, such as a smart meter or a fitness tracker. A related service is the software a product needs, or software that adds functions to it later. Article 4 asks for readily available data and its metadata on a simple electronic request, free and machine-readable. Products placed on the market after 12 September 2026 must give that access by design, under Article 3(1). Articles 3(2) and 3(3) list the facts due before a contract, such as data types, volume, storage place and retention. Data from products made by micro and small enterprises is excluded, under Article 7. Article 4(4) bans interfaces that make these choices hard. Build the access on the self-service export.
Examples
Using these examples: they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.
YAML example
connected_products:
- model: thermostat-t2
placed_on_market: 2026-11-02
data_types: [temperature, setpoint, heating_minutes]
continuous: true
storage: remote, retained 24 months
access: https://example.com/account/device-data
pre_contract_page: https://example.com/thermostat-t2/data
JavaScript example
export const missingDataTypes = (product, exportedRecords) => {
const exported = new Set(exportedRecords.map(record => record.type));
return product.data_types.filter(type => !exported.has(type));
};
Python example
def missing_data_types(product: dict, exported_records: list[dict]) -> list[str]:
exported = {record["type"] for record in exported_records}
return [t for t in product["data_types"] if t not in exported]
How to check
An end-to-end test requests a test device's data and gets every listed data type as JSON or CSV, at no charge. Every product model has a published pre-contract page with data types, continuous generation, storage place and access method.
Sources
Related rules
- Let people export their data themselves in Accounts
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/compliance/product-and-sector-laws/data-act-connected-products">Agent Wranglers compliance playbook</a>. In code you write, add a comment next to it with the same link.