diff --git a/src/Gargantext/API/Node/Document/Export.hs b/src/Gargantext/API/Node/Document/Export.hs
index ed6f9396ef34daab3a9b4c6475a5f3d192360081..6d7304eca79f0c1527ca08011f4b24c1b910e47c 100644
--- a/src/Gargantext/API/Node/Document/Export.hs
+++ b/src/Gargantext/API/Node/Document/Export.hs
@@ -36,16 +36,19 @@ api uid dId = getDocumentsJSON uid dId
 -- | Hashes are ordered by Set
 getDocumentsJSON :: UserId
                  -> DocId
-                 -> GargNoServer DocumentExport
+                 -> GargNoServer (Headers '[Header "Content-Disposition" T.Text] DocumentExport)
 getDocumentsJSON uId pId = do
   mcId <- getClosestParentIdByType pId NodeCorpus
   let cId = maybe (panic "[G.A.N.D.Export] Node has no parent") identity mcId
   docs <- runViewDocuments cId False Nothing Nothing Nothing Nothing Nothing
-  pure $ DocumentExport { _de_documents = mapFacetDoc <$> docs
+  pure $ addHeader (T.concat [ "attachment; filename=GarganText_DocsList-"
+                             , T.pack $ show pId
+                             , ".json"])
+    DocumentExport { _de_documents = mapFacetDoc <$> docs
                         , _de_garg_version = T.pack $ showVersion PG.version }
   where
     mapFacetDoc (FacetDoc { .. }) =
-      Document { _d_document = 
+      Document { _d_document =
                  Node { _node_id = facetDoc_id
                       , _node_hash_id = Nothing
                       , _node_typename = toDBid NodeDocument
@@ -64,10 +67,13 @@ getDocumentsJSON uId pId = do
 
 getDocumentsCSV :: UserId
                 -> DocId
-                -> GargNoServer T.Text -- [Document]
+                -> GargNoServer (Headers '[Header "Content-Disposition" T.Text] T.Text) -- [Document]
 getDocumentsCSV uId pId = do
-  DocumentExport { _de_documents } <- getDocumentsJSON uId pId
+  dJSON <- getDocumentsJSON uId pId
+  let DocumentExport { _de_documents } = getResponse dJSON
   let ret = TE.decodeUtf8 $ BSC.toStrict $ encodeDefaultOrderedByName _de_documents
 
-  pure ret
-  
+  pure $ addHeader (T.concat [ "attachment; filename=GarganText_DocsList-"
+                             , T.pack $ show pId
+                             , ".csv"])
+    ret
diff --git a/src/Gargantext/API/Node/Document/Export/Types.hs b/src/Gargantext/API/Node/Document/Export/Types.hs
index 08aeacbc2c46fd724358cc0a3448b27de95e84bb..e475845efb06fe71a8974c3376bef0a9323dccaa 100644
--- a/src/Gargantext/API/Node/Document/Export/Types.hs
+++ b/src/Gargantext/API/Node/Document/Export/Types.hs
@@ -90,9 +90,9 @@ instance ToParamSchema Ngrams where
 type API = Summary "Document Export"
             :> "export"
             :> ( "json"
-               :> Get '[JSON] DocumentExport
+               :> Get '[JSON] (Headers '[Servant.Header "Content-Disposition" Text] DocumentExport)
                :<|> "csv"
-               :> Get '[PlainText] Text) -- [Document])
+               :> Get '[PlainText] (Headers '[Servant.Header "Content-Disposition" Text] Text)) -- [Document])
 
 $(deriveJSON (unPrefix "_de_") ''DocumentExport)
 $(deriveJSON (unPrefix "_d_") ''Document)