pages/{pageid}/revisions (GET)
Overview
Retrieve revision history of a given title
- REST Method: GET
 - Method Access: public
 
Uri Parameters
| Name | Type | Description | 
| pageid | string | either an integer page ID, "home", or "=" followed by a double uri-encoded page path | 
Query Parameters
| Name | Type | Description | 
| authenticate | bool? | Force authentication for request (default: false) | 
| offset | int? | Number of items to skip. Must be a positive number or 0 to not skip any. (default: 0) | 
| revision | string? | Page revision to retrieve. Positive integer or a GUID will retrieve the specific revision | 
| redirects | int? | If zero, do not follow page redirects. | 
| deleted | bool? | Include deleted revisions (default: true) | 
| limit | string? | Maximum number of items to retrieve. Must be a positive number or 'all' to retrieve all items. (default: 50) | 
Return Codes
| Name | Value | Description | 
| OK | 200 | The request completed successfully | 
| Bad Request | 400 | Invalid input parameter or request body | 
| Forbidden | 403 | Read access to the page is required | 
| Not Found | 404 | Requested page could not be found | 
Message Format
Output:
<pages>
    <page id="{int}" revision="{int}" href="{uri}">
        <title>{text}</title> 
        <path>{text}</path> 
        <date.edited>{date}</date.edited> 
        <user.author id="{int}" href="{uri}">
            <nick>{text}</nick> 
            <username>{text}</username> 
            <email>{text}</email> 
        </user.author>
        <description>{text}</description> 
        <contents type="{contenttype}" href="{uri}" /> 
    </page>
    ...
</pages>
Implementation Notes
A new page revision is created whenever the page is modified.
Use GET:pages/{pageid}/contents with the revision parameter to retrieve the contents of a page from a specified revision. It is also possible to compare the contents of two revisions with GET:pages/{pageid}/diff.
C# Code Sample: Retrieve Page Revisions
The following code example retrieves the revisions of the page called "Page Title":
Sample Code
Plug p = Plug.New("http://deki-hayes/@api/deki");
p.At("users", "authenticate").WithCredentials("admin", "password").Get();
p.At("pages", "=Page_Title", "revisions").Get();
Sample Response from executing Code
Sample response indicating that there is one revision:
<pages>
    <page id="31" revision="1" href="http://deki-hayes/@api/deki/pages/31/revisions?revision=1&redirects=0">
        <title>Page Title</title> 
        <path>Page_Title</path> 
        <date.edited>2007-08-29T23:03:18Z</date.edited> 
        <user.author id="1" href="http://deki-hayes/@api/deki/users/1">
            <nick>Admin</nick> 
            <username>Admin</username> 
            <email>admin@mindtouch.com</email> 
        </user.author>
        <description>2 words added</description> 
        <contents type="application/x.deki0702+xml" href="http://deki-hayes/@api/deki/pages/31/revisions/contents?revision=1&redirects=0" /> 
    </page>
</pages>
Curl Code Sample: Retrieve Page Revisions
The following command retrieves a list of all revisions made on page "foo":
Sample Code
curl -u username:password -i http://mindtouch.address/@api/deki/pages/=foo/revisions
Sample Response from executing Code
Here is an example revision metadata of a page that has gone through 2 edits (creating 3 versions and revisions).
Content-Type: application/xml
<pages>
  <page id="567" revision="3" href="http://192.168.59.128/@api/deki/pages/567/revisions?revision=3&redirects=0">
    <uri.ui>http://192.168.59.128/FUBAR</uri.ui>
    <title>FUBAR</title>
    <path>FUBAR</path>
    <namespace>main</namespace>
    <date.edited>2010-01-29T18:41:40Z</date.edited>
    <user.author id="1" href="http://192.168.59.128/@api/deki/users/1">
      <nick>Admin</nick>
      <username>Admin</username>
      <email hidden="true"/>
      <hash.email>64e1b8d34f425d19e1ee2ea7236d3028</hash.email>
      <uri.gravatar>http://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028</uri.gravatar>
    </user.author>
    <description>1 words added, 6 words removed</description>
    <contents type="application/x.deki0805+xml" href="http://192.168.59.128/@api/deki/pages/567/contents?revision=3&redirects=0"/>
  </page>
  <page id="567" hidden="true" revision="2" href="http://192.168.59.128/@api/deki/pages/567/revisions?revision=2&redirects=0">
    <uri.ui>http://192.168.59.128/FUBAR</uri.ui>
    <title hidden="true">FUBAR</title>
    <path>FUBAR</path>
    <namespace>main</namespace>
    <date.edited>2010-01-21T01:45:58Z</date.edited>
    <user.author id="1" href="http://192.168.59.128/@api/deki/users/1">
      <nick>Admin</nick>
      <username>Admin</username>
      <email hidden="true"/>
      <hash.email>64e1b8d34f425d19e1ee2ea7236d3028</hash.email>
      <uri.gravatar>http://www.gravatar.com/avata
r/64e1b8d34f425d19e1ee2ea7236d3028</uri.gravatar>
    </user.author>
    <description hidden="true"/>
    <contents type="application/x.deki0805+xml" href="http://192.168.59.128/@api/deki/pages/567/contents?revision=2&redirects=0"/>
    <user.hiddenby id="88" href="http://192.168.59.128/@api/deki/users/88">
      <nick>test6</nick>
      <username>test6</username>
      <email hidden="true"/>
      <hash.email>989d7c3b24422e0f2ab2da41e3a91434</hash.email>
      <uri.gravatar>http://www.gravatar.com/avatar/989d7c3b24422e0f2ab2da41e3a91434</uri.gravatar>
    </user.hiddenby>
    <date.hidden>2010-01-29T21:06:11Z</date.hidden>
    <description.hidden/>
  </page>
  <page id="567" revision="1" href="http://192.168.59.128/@api/deki/pages/567/revisions?revision=1&redirects=0">
    <uri.ui>http://192.168.59.128/FUBAR</uri.ui>
    <title>FUBAR</title>
    <path>FUBAR</path>
    <namespace>main</namespace>
    <date.edited>2010-01-19T19:24:52Z</date.edited>
    <user.author id="1" href="http://192.168.59.128/@api/deki/users/1">
      <nick>Admin</nick>
      <username>Admin</username>
      <email hidden="true"/>
      <hash.email>64e1b8d34f425d19e1ee2ea7236d3028</hash.email>
      <uri.gravatar>http://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028</uri.gravatar>
    </user.author>
    <description>page created, 9 words added</description>
    <contents type="application/x.deki0805+xml" href="http://192.168.59.128/@api/deki/pages/567/contents?revision=1&redirects=0"/>
  </page>
</pages>
Implementation notes
curl flags
- -u
 - Provides external user authentication. Note that if anonymous access is available and authentication is not forced, this flag may be omitted.
 - -i
 - Outputs the HTTP response headers. Useful for debugging.
 
Pages
- To view a list of all pages, follow the instructions here.
 

