Memento Project

Memento was a project of the United States National Digital Information Infrastructure and Preservation Program (NDIIPP). It was funded with the aim of making Web-archived content more easily discoverable and accessible to the public. The project concluded on 5 September 2025.[1][2]

Technical description

Memento is defined in RFC 7089[3] as an implementation of the time dimension of content negotiation.[4] HTTP accomplishes negotiation of content using headers that allow clients and servers to find content that the user desires.

Dimensions of Content Negotiation Provided by HTTP
Request Header Response Header Dimension Examples Reference
Accept Content-Type media type of the representation, can include character set
  • text/html; charset=utf-8
  • text/plain
  • image/png
RFC 9110
(obsoletes RFC 7231)
Accept-Language Content-Language language of the representation
  • en-US, en
  • cs
RFC 9110
(obsoletes RFC 7231)
Accept-Encoding Content-Encoding medium, typically compression, that the content has been encoded with
  • compress
  • gzip
  • deflate
RFC 9110
(obsoletes RFC 7231)
Accept-Datetime Memento-Datetime time of the representation
  • Fri, 15 Aug 2014 13:43:03 GMT
RFC 7089

The Last-Modified header provided by HTTP[5] does not necessarily reflect when a particular version of a web page came into existence. Also, the Last-Modified header may not exist in some cases. To provide more information, the Memento-Datetime header has been introduced to indicate when a specific representation of a web page was observed on the web.[6]

Usage

Copies of page can be found by simply navigating, in a web browser, to a link formatted, replacing urltoarchive with the full URL of the page desired.[7]

JSON description of a Memento:

  • http://timetravel.mementoweb.org/api/json/YYYY/urltoarchive
  • http://timetravel.mementoweb.org/api/json/YYYYMM/urltoarchive
  • http://timetravel.mementoweb.org/api/json/YYYYMMDD/urltoarchive
  • http://timetravel.mementoweb.org/api/json/YYYYMMDDHH/urltoarchive
  • http://timetravel.mementoweb.org/api/json/YYYYMMDDHHMM/urltoarchive

Or redirect to a Memento with a datetime that is close to a desired datetime:

  • http://timetravel.mementoweb.org/memento/YYYY/urltoarchive
  • http://timetravel.mementoweb.org/memento/YYYYMM/urltoarchive
  • http://timetravel.mementoweb.org/memento/YYYYMMDD/urltoarchive
  • http://timetravel.mementoweb.org/memento/YYYYMMDDHH/urltoarchive
  • http://timetravel.mementoweb.org/memento/YYYYMMDDHHMM/urltoarchive

References

  1. ^ Taylor, Nicholas (2025-08-07). "Memento TimeTravel sunset". memento-dev (Mailing list). Archived from the original on 2025-08-18. Retrieved 2025-11-21.
  2. ^ timetravel.mementoweb.org at the Wayback Machine (archived 2025-09-05)
  3. ^ RFC 7089: HTTP Framework for Time-Based Access to Resource States -- Memento
  4. ^ Berners Lee, Tim. "Web Architecture: Generic Resources". World Wide Web Consortium (W3C). 1996. http://www.w3.org/DesignIssues/Generic Archived 2015-06-02 at the Wayback Machine
  5. ^ RFC 7232: Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
  6. ^ Nelson, Michael L. "2010-11-05: Memento-Datetime is not Last-Modified". Web Science and Digital Libraries Research Group. November 5, 2010. http://ws-dl.blogspot.com/2010/11/2010-11-05-memento-datetime-is-not-last.html Archived 2015-05-19 at the Wayback Machine
  7. ^ "Time Travel APIs". timetravel.mementoweb.org. Archived from the original on 2018-05-21. Retrieved 2018-05-15.