diff --git a/api/api.py b/api/api.py
index 7e6e59bdd525f972ec08a1df8497f61de7ef1341..dd9f3b1dff74487db314a807492741f34f21294a 100644
--- a/api/api.py
+++ b/api/api.py
@@ -238,10 +238,14 @@ endpoints = [
         ]),
 
         # Analysis
-        route( '/analyses/<_id:{cid}>',             AnalysesHandler,  m=['GET']),
+        route(  '/analyses/<_id:{cid}>',                        AnalysesHandler,  m=['GET']),
+        prefix( '/analyses/<_id:{cid}>', [
+            route('/files',                                     AnalysesHandler, h='download',      m=['GET']),
+            route('/files/<filename:{fname}>',                  AnalysesHandler, h='download',      m=['GET']),
+        ]),
         prefix('/<:{cname}>/<:{cid}>/<cont_name:analyses>/<cid:{cid}>', [
-            route('/<list_name:notes>',             NotesListHandler,               m=['POST']),
-            route('/<list_name:notes>/<_id:{nid}>', NotesListHandler, name='notes', m=['GET', 'PUT', 'DELETE']),
+            route('/<list_name:notes>',                         NotesListHandler,               m=['POST']),
+            route('/<list_name:notes>/<_id:{nid}>',             NotesListHandler, name='notes', m=['GET', 'PUT', 'DELETE']),
         ]),
 
 
@@ -263,11 +267,11 @@ endpoints = [
                 route('/<list_name:files>/<name:{fname}>/info', FileListHandler, h='get_info',       m=['GET']),
                 route('/<list_name:files>/<name:{fname}>/info', FileListHandler, h='modify_info',    m=['POST']),
 
-                route( '/analyses',                                AnalysesHandler,                  m=['POST']),
+                route( '/analyses',                                     AnalysesHandler,                    m=['POST']),
                 prefix('/analyses', [
-                    route('/<_id:{cid}>',                          AnalysesHandler,                  m=['GET', 'PUT', 'DELETE']),
-                    route('/<_id:{cid}>/files',                    AnalysesHandler, h='download',    m=['GET']),
-                    route('/<_id:{cid}>/files/<filename:{fname}>', AnalysesHandler, h='download',    m=['GET']),
+                    route('/<_id:{cid}>',                               AnalysesHandler,                    m=['GET', 'PUT', 'DELETE']),
+                    route('/<_id:{cid}>/files',                         AnalysesHandler, h='download',      m=['GET']),
+                    route('/<_id:{cid}>/files/<filename:{fname}>',      AnalysesHandler, h='download',      m=['GET']),
                 ]),
 
                 route('/<list_name:notes>',             NotesListHandler,               m=['POST']),
diff --git a/api/handlers/refererhandler.py b/api/handlers/refererhandler.py
index 2a6260a4d13981d1ba180c5536e1601084cb8736..c5f36fd9a84b146aae6ef51b061f8bb9b1ec3a9b 100644
--- a/api/handlers/refererhandler.py
+++ b/api/handlers/refererhandler.py
@@ -153,9 +153,11 @@ class AnalysesHandler(RefererHandler):
             self.abort(404, 'Analysis {} not removed from container {} {}'.format(_id, cont_name, cid))
 
 
-    def download(self, cont_name, cid, _id, filename=None):
+    def download(self, **kwargs):
         """
-        .. http:get:: /api/(cont_name)/(cid)/analyses/(analysis_id)/files/(file_name)
+        .. http:get:: /api/(cont_name)*/(cid)*/analyses/(analysis_id)/files/(file_name)*
+
+            * - not required
 
             Download a file from an analysis or download a tar of all files
 
@@ -249,8 +251,15 @@ class AnalysesHandler(RefererHandler):
 
 
         """
+        _id = kwargs.get('_id')
+        analysis = self.storage.get_container(_id)
+        filename = kwargs.get('filename')
+
+        cid = analysis['parent']['id']
+        cont_name = analysis['parent']['type']
         parent = self.storage.get_parent(cont_name, cid)
         permchecker = self.get_permchecker(parent)
+
         ticket_id = self.get_param('ticket')
         ticket = None
         if ticket_id is None:
@@ -260,7 +269,6 @@ class AnalysesHandler(RefererHandler):
             if not self.origin.get('id'):
                 self.origin = ticket.get('origin')
 
-        analysis = self.storage.get_container(_id)
         fileinfo = analysis.get('files', [])
         if filename:
             fileinfo = [fi for fi in fileinfo if fi['name'] == filename]