anchor.diff:  
               { "error": "file is protected by api key" }
   
  ++ Request Write-protect new file with an automatically generated API Key. (multipart/form-data; boundary=AaB03x)
  +
  +    + Body
  +
  +            --AaB03x
  +            Content-Disposition: form-data; name="file"; filename="file1.gz"
  +            Content-Type: application/x-gzip
  +            Content-Transfer-Encoding: binary
  +
  +            <Content of local file file1.gz>
  +            --AaB03x
  +            Content-Disposition: form-data; name="protect"
  +            Content-Type: text/plain
  +
  +            true
  +            --AaB03x
  +
  +
  ++ Response 200 (application/json)
  +
  +    The file is now write-protected with the API Key that is included in the response body.
  +
  +    + Body
  +
  +            {
  +                "downloads": 0,
  +                "lastDownload", 0,
  +                "md5": "8d0f0108005c55a136f0deb6e1d5f82d",
  +                "mimetype": "application/x-gzip",
  +                "name": null,
  +                "namespace": "/my-project/releases",
  +                "sha1": "2111e97593b2e9dcba506e78f91a06a2322975f6",
  +                "sha256": "b60bddc102fffd52cf8dbdab8662489829cdce2109cf1f22bd595ab1a63a8660",
  +                "size": 3902,
  +                "tag": null,
  +                "timestamp": 1436838661,
  +                "url": "/my-project/releases/latest",
  +                "version": 1,
  +                "apiKey": "55a9c68fe0f4e26653169c27"
  +            }
  +
   
   ### Retrieve a File [GET]
   
  -+ Attributes
  -    + version (number) - The specific version to download.
  -    + tag (string) - The specific tag to download.
  +A file's content or its metadata can be retrieved from the same
  +endpoint. What is returned by the server is determined by the `format` attribute
  +in requests. If `format` is not specified, the file's content is retrieved. The
  +"stat" format will return the file's metadata.
  +
  ++ Attributes
  +    + version (number, optional) - The specific version to download.
  +    + tag (string, optional) - The specific tag to download.
  +    + format (string, optional) - The download format; currently can only be "stat".
   
   + Request Download Latest Version (application/json)
   
  -    Without specifying a request body, the latest version of the file will be downloaded.
  -
  -    + Body
  -    
  -            { }
   
   + Response 200
   
  
positive.code: ### Retrieve History [GET]
  
  + Attributes
      + limit (number) - The maximum number of versions to retrieve.
      + skip (number) - The offset of the first version to retrieve.
  
  
  + Request (application/json)
  
      + Body
  
              {
                  "limit": 10,
                  "skip": 0
              }
  
  
  + Response 200 (application/json)
  
  
negative.code:     + Body
  
              { "error": "file not found" }
  
  
  ## Tree [/v1/trees/{+url}]
  
  Trees are a loose-form directory structure around uploaded files. Each uploaded
  file's URL is parsed and tree nodes are created for each unque path. Each file's
  `namespace` attribute matches a tree's `namespace` attribute and using the two
  together, listing a namespace will return the list of sub-trees and sub-files.
  
  For example, if a file is uploaded to `/my-project/releases/latest`, tree nodes
  are created for the following paths: `/my-project`, `/my-project/releases`,
  `/my-project/releases/latest`. Listing the tree `/my-project` will return the
  single tree node `releases`, which then, in turn, can be listed to retrieve
  the `latest` node.
  
  A tree's `type` attribute holds whether the tree points to another tree or a
  file, which can be quired in the Files collection.
  
  + Parameters
      + url (string) - Tree location.
  
  + Attributes
      + name (string) - Node name.
      + type (string) - Node type, either "tree" or "file".
  
  ### Retrieve Tree Listing [GET]
  
  Responses are a list of newline separated JSON Tree objects.
  
  + Request (application/json)
      + Attributes
          + limit (number, optional) - Maximum number of objects to retrieve.
          + skip (number, optional) - Index of the first Tree object to retrieve.
  
  
  + Response 200 (application/json)
      + Body
  
              { "name": "my-project", "type": "tree" }
              { "name": "other-project", "type": "tree" }
              { "name": "test_file.txt", "type": "file" }
  