Content API

History and revisions

A document at a revision or a point in time, one event per transaction — deletions included — and the raw transaction log.

Every transaction is recorded, which makes three questions answerable.

What did this document look like then?

http
GET /data/history/production/documents/post-1?revision=<rev>
GET /data/history/production/documents/post-1?time=2026-07-01T09:00:00Z
GET /data/history/production/documents/post-1?lastRevision=true

What has happened to it?

http
GET /data/history/production/events/documents/post-1

One event per transaction, in reverse order, and this is the endpoint that matters most: deletions appear in it. A history derived from the current document cannot report that a document ever existed, which is precisely the case somebody needs the history for.

The raw log

http
GET /data/history/production/transactions/<id>

Served as application/x-ndjson.

What the Studio does with it

The document timeline is built from the event list, and "restore" is an ordinary mutation that writes the old content back as a new revision. Nothing is rewritten in place — the history is append-only, so a restore is itself an event.