---
title: TDMRep (Text and Data Mining Reservation)
slug: experience/tdmrep-text-and-data-mining-reservation
docTags: 
createdAt: 2026-09-30T10:33:22.527Z
---

[TDMRep](https://www.w3.org/community/tdmrep/) is a W3C community protocol. It lets publishers state in a machine-readable way that they reserve their rights to text and data mining (for example AI training) under the EU DSM Directive, Article 4. Optionally, the publisher can also say under which conditions mining is licensed.

With the public folder you need two files.

### 1. The reservation: `/.well-known/tdmrep.json`

:::BlockQuote
web/default/storefront/public/.well-known/tdmrep.json
:::

```json
[
  {
    "location": "/",
    "tdm-reservation": 1,
    "tdm-policy": "https://www.example.com/.policies/tdm-policy.json"
  }
]
```

- `location`: the paths the rule applies to. `/` means the whole site.
- `tdm-reservation`: `1` reserves the rights, `0` doesn't.
- `tdm-policy` (optional): the URL of a policy that describes how to obtain a license.

### 2. The policy (optional): e.g. `/.policies/tdm-policy.json`

:::BlockQuote
web/default/storefront/public/.policies/tdm-policy.json
:::

```json
{
  "@context": ["http://www.w3.org/ns/odrl.jsonld", "http://www.w3.org/ns/tdmrep.jsonld"],
  "@type": "Offer",
  "profile": "http://www.w3.org/ns/tdmrep",
  "uid": "https://www.example.com/.policies/tdm-policy.json",
  "assigner": {
    "uid": "https://www.example.com",
    "vcard:fn": "Example Publishing Ltd.",
    "vcard:hasEmail": "mailto:licensing@example.com"
  },
  "permission": [{ "action": "tdm:mine", "duty": [{ "action": "compensate" }] }]
}
```

This example says that mining is allowed in exchange for compensation, and names the contact for licensing. The policy can be located at any path in the public folder, as long as `tdm-policy` points to it.

