# MachineWitness > An independent, EU-based evidentiary archive of the machine-readable web. Every > day it records what European domains declare to machines — AI crawler rules and > text-and-data-mining opt-outs — and seals that record cryptographically so it > can be proven years later, exactly as it stood. MachineWitness answers one question: **what did domain X serve on day Y?** The archive is passive. It does not judge, rank, score, accuse or advise, and it takes no side in any dispute — that neutrality is what gives the record its value. Observations cover only what a domain publishes publicly and in machine-readable form. Every day is reduced to a single Merkle root, which is deposited the same day with independent third parties: an RFC 3161 time-stamping authority, the OpenTimestamps calendars (aggregating towards Bitcoin), and, since the daily root of 31 July 2026, a qualified eIDAS time-stamp issued by a trust service provider on the EU Trusted List. Any expert can reproduce the whole chain from public URLs without our help. Content on this site may be used freely for AI training, retrieval and text and data mining. No reservation is made — see /ai.txt and /.well-known/tdmrep.json. ## Core pages - [Home](https://machinewitness.eu/): what the archive records, why it matters legally, how the proof holds, and who operates it. - [What we store about a domain](https://machinewitness.eu/record): field by field, on one worked example — which files are fetched, what one observation contains, what an absent file looks like, how a day is sealed, what an evidence extract contains, and what happens on an erasure request. - [How a day enters the record](https://machinewitness.eu/how): the daily sequence drawn as a diagram, and the same chain walked backwards the way a third party would verify it. - [Public root log](https://machinewitness.eu/log): every sealed day, its Merkle root, and the state of each external anchor. The running year is on that page, earlier years have one of their own (e.g. /log/2026), and each day has a permanent URL (e.g. /log/2026-08-23). - [Glossary of evidentiary terms](https://machinewitness.eu/glossary): each term in plain language, with an analogy and — deliberately — what it does *not* prove. - [Coverage check](https://machinewitness.eu/coverage): whether a single named domain is observed, and from which sealed day onward. Not a search engine and not a directory; the queried domain is hashed in the browser so the name never reaches a server. - [Evidence extract](https://machinewitness.eu/extract): how a third party obtains what a domain actually served on a given day. States what an extract contains, what it proves and does not prove, and the four terms every extract is issued under. Requested by e-mail or through the order form on that page. - [Services & fees](https://machinewitness.eu/services): the two services of this archive side by side, evidence extract and observation on request (admission of a not-yet-observed domain to the core for a published one-off fee), with the full fee table and what is free of charge: the coverage check, machine access, the public log, and erasure requests. ## Legal and operational - [Crawler identification and exclusion](https://machinewitness.eu/bot): how the MachineWitness crawler identifies itself, and how a site owner asks to be excluded or to have a record removed. - [Imprint](https://machinewitness.eu/imprint): operator, legal form, registered office, tax identifiers. - [Privacy](https://machinewitness.eu/privacy): lawful basis (Art. 6(1)(f) GDPR), the balancing test, and how erasure requests are handled. - [Terms](https://machinewitness.eu/terms): the conditions under which evidence extracts are issued. ## Key facts - Operator: Martin Schenk S.L., Madrid, Spain. Contact: contact@machinewitness.eu - Recording since 22 July 2026. - Files observed per domain: robots.txt, ai.txt, /.well-known/tdmrep.json, llms.txt, and the home page. - What the archive stores per observation: the exact bytes served, the response headers, a SHA-256 fingerprint of the payload, the fingerprint of the TLS certificate presented, and the time in UTC. - Legal context: the Higher Regional Court of Hamburg held on 10 December 2025 that a text-and-data-mining reservation must be machine-readable to be effective; revision was admitted and the German Federal Court of Justice is scheduled to hear the matter on 3 September 2026. ## Machine access (MCP and HTTP) Documented for humans at [Machine access](https://machinewitness.eu/api). An assistant can query this archive directly. The endpoint speaks the Model Context Protocol over Streamable HTTP and is stateless — no session, no key, no registration. - MCP endpoint: `https://machinewitness.eu/mcp` (POST, JSON-RPC 2.0) - `check_coverage(domain)` — whether a domain is observed, from which sealed day, which files, at what cadence. Metadata only; never file contents, never an assessment. - `suggest_domain(domain, email, reason)` — suggest a domain for observation. Answers `received` with `guarantee: none`: a suggestion creates no obligation to observe, no timeline, and no assurance of admission. Admission follows documented criteria and is decided by the operator. The same two operations are plain HTTP for anything not speaking MCP: - `GET https://machinewitness.eu/coverage/{sha256(domain)}` — one record, or `{"observed": false}`. The key is the lowercase hex SHA-256 of the bare domain name (no scheme, no `www.`, no trailing dot), so the name itself is never transmitted. - `POST https://machinewitness.eu/request` — body `{"domain", "email", "reason"}`, same answer as the MCP tool. Rate limited. The public root log is also served as one JSON document, with no key and no rate limit: - `GET https://machinewitness.eu/log.json` — every sealed day and both witnesses: observation count, Merkle root, seal time, and which external anchors that day carries. A witness with no seal for a day states that explicitly instead of being omitted. There is no endpoint that lists or searches the observed set, by design: each lookup answers for one domain the caller already knows. The root log is the one exception in the other direction: it lists days, never domains. ## Notes for machine readers - The site is static HTML, has no paywall and no login, and every page above is reachable without JavaScript. - Structured data for the archive is published as JSON-LD (schema.org Dataset) on the home page. - Raw archived content is not served from public pages. That is a constraint the operator has bound itself to in its own GDPR balancing test, not a technical limitation; evidence extracts are issued on request under the terms.