Skip to main content

pages/{pageid}/files/{filename}/revisions (GET)

Overview

Retrieve file revision info

  • REST Method: GET
  • Method Access: public

Uri Parameters

Name Type Description
fileid int identifies a file by ID
filename string Double uri-encoded file name. Should be prefixed with "=" if it does not have an extension.
pageid string either an integer page ID, "home", or "=" followed by a double uri-encoded page title

Query Parameters

Name Type Description
authenticate bool? Force authentication for request (default: false)
redirects int? If zero, do not follow page redirects (only applies when {pageid} is present).
changefilter string? Only show revisions having a user-action listed in this comma delimited list. Valid actions are: CONTENT, NAME, LANGUAGE, META, DELETEFLAG, PARENT (default: filter with CONTENT)

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 file could not be found

Message Format

Output:

<files count="{int}">
    <file id="{int}" revision="{int}" href="{uri}">
        <filename>{text}</filename> 
        <description>{text}</description> 
        <contents type="{mimetype}" size="{int}" width="{int}" height="{int}" href="{uri}" /> 
        <contents.preview rel="thumb" type="{mimetype}" maxwidth="{int}" maxheight="{int}" href="{uri}" revision="{int}" /> 
        <contents.preview rel="webview" type="{mimetype}" maxwidth="{int}" maxheight="{int}" href="{uri}" revision="{int}" /> 
        <date.created>{date}</date.created> 
        <user.createdby id="{int}" href="{uri}">
            <nick>{text}</nick> 
            <username>{text}</username> 
            <email>{text}</email> 
       </user.createdby>
  </file>
  ...
</files> 

Implementation Notes

A single MindTouch site can store up to 5,000 attachments.

A new file revision is created whenever a file with the same name is uploaded to the same page.  Use GET:files/{fileid} with the revision parameter to retrieve the file from a specified revision.

The contents.preview element only exists if a file preview is available.  Preview generation requires the file to be an image and fall within a certain size.

C# Code Sample: Retrieve File Revision Info

The following code example retrieves revision information about the file with ID 456:

Sample Code

Plug p = Plug.New("http://help.mindtouch.us/@api/deki");
p.At("users", "authenticate").WithCredentials("admin", "password").Get();
p.At("pages", "home", "files", "=myfile%252ejpg", "revisions").Get();

Sample Response from executing Code

Sample response indicating that there are two file revisions:

<files count="2">
      <file id="456" revision="1" href="http://help.mindtouch.us/@api/deki/files/456/info?revision=1">
          <filename>myfile.jpg</filename> 
          <description/> 
          <contents type="image/pjpeg" size="53112" width="476" height="480" href="http://help.mindtouch.us/@api/deki/files/456?revision=1" /> 
          <contents.preview rel="thumb" type="image/pjpeg" maxwidth="160" maxheight="160" href="http://help.mindtouch.us/@api/deki/files/456?revision=1&size=thumb" revision="1" /> 
          <contents.preview rel="webview" type="image/pjpeg" maxwidth="550" maxheight="550" href="http://help.mindtouch.us/@api/deki/files/456?revision=1&size=webview" revision="1" /> 
          <date.created>2007-08-25T00:11:01Z</date.created> 
          <user.createdby id="1" href="http://help.mindtouch.us/@api/deki/users/1">
              <nick>Admin</nick> 
              <username>Admin</username> 
              <email>admin@mindtouch.com</email> 
          </user.createdby>
      </file>
      <file id="456" revision="2" href="http://help.mindtouch.us/@api/deki/files/456/info?revision=2">
          <filename>myfile.jpg</filename> 
          <description /> 
          <contents type="image/pjpeg" size="53112" width="476" height="480" href="http://help.mindtouch.us/@api/deki/files/456?revision=2" /> 
          <contents.preview rel="thumb" type="image/pjpeg" maxwidth="160" maxheight="160" href="http://help.mindtouch.us/@api/deki/files/456?revision=2&size=thumb" revision="2" /> 
          <contents.preview rel="webview" type="image/pjpeg" maxwidth="550" maxheight="550" href="http://help.mindtouch.us/@api/deki/files/456?revision=2&size=webview" revision="2" /> 
          <date.created>2007-08-27T19:59:24Z</date.created> 
          <user.createdby id="1" href="http://help.mindtouch.us/@api/deki/users/1">
              <nick>Admin</nick> 
              <username>Admin</username> 
              <email>admin@mindtouch.com</email> 
          </user.createdby>
      </file>
</files>

Implementation notes 

Add notes about requirements or config values

Curl Code Sample: Retrieve File Revision Info

The following command retrieves information regarding the revisions of file "foo" attached to page "bar":

Sample Code

curl -u username:password -i http://mindtouch.address/@api/deki/pages/=foo/files/=bar/revisions

Sample Response from executing Code

This response indicates a file attachment was revised once, thus two available revisions (i.e. the old and current one).

<files count="2" totalcount="2" href="http://192.168.59.128/@api/deki/files/73/revisions?changefilter=content">
  <file id="73" revision="1" href="http://192.168.59.128/@api/deki/files/73/info?revision=1">
    <filename>picard.jpg</filename>
    <description/>
    <contents type="image/jpeg" size="19637" width="500" height="324" href="http://192.168.59.128/@api/deki/files/73/=picard.jpg?revision=1"/>
    <contents.preview rel="thumb" type="image/jpeg" maxwidth="160" maxheight="160" href="http://192.168.59.128/@api/deki/files/73/=picard.jpg?revision=1&size=thumb" revision="1"/>
    <contents.preview rel="webview" type="image/jpeg" maxwidth="550" maxheight="550" href="http://192.168.59.128/@api/deki/files/73/=picard.jpg?revision=1&size=webview" revision="1"/>
    <date.created>2010-01-29T19:54:15Z</date.created>
    <user.createdby 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.createdby>
    <user-action type="content, name, parent"/>
    <page.parent id="569" href="http://192.168.59.128/@api/deki/pages/569?redirects=0">
      <uri.ui>http://192.168.59.128/Starfleet</uri.ui>
      <title>Starfleet</title>
      <path>Starfleet</path>
      <namespace>main</namespace>
    </page.parent>
  </file>
  <file id="73" revision="2" href="http://192.168.59.128/@api/deki/files/73/info?revision=2">
    <filename>copyright.png</filename>
    <description/>
    <contents type="image/png" size="12557" width="354" height="354" href="http://192.168.59.128/@api/deki/files/73/=copyright.png?revision=2"/>
    <contents.preview rel="thumb" type="image/png" maxwidth="160" maxheight="160" href="http://192.168.59.128/@api/deki/files/73/=copyright.png?revision=2&size=thumb" revision="2"/>
    <contents.preview rel="webview" type="image/png" maxwidth="550" maxheight="550" href="http://192.168.59.128/@api/deki/files/73/=copyright.png?revision=2&size=webview" revision="2"/>
    <date.created>2010-01-29T19:54:29Z</date.created>
    <user.createdby 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.createdby>
    <user-action type="content, name"/>
    <page.parent id="569" href="http://192.168.59.128/@api/deki/pages/569?redirects=0">
      <uri.ui>http://192.168.59.128/Starfleet</uri.ui>
      <title>Starfleet</title>
      <path>Starfleet</path>
      <namespace>main</namespace>
    </page.parent>
  </file>
</files>

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.

Attached files

To view a list of all files attached to a page, follow the instructions here.