diff --git a/nomad/app/dcat/catalog.py b/nomad/app/dcat/catalog.py
index 54c7d7ceb19e1d363981cbf5574bddc59b9bfd76..e402579cb1245a9ceaeaff8c7702e73293e2aac9 100644
--- a/nomad/app/dcat/catalog.py
+++ b/nomad/app/dcat/catalog.py
@@ -73,7 +73,8 @@ class Catalog(Resource):
 
         mapping = Mapping()
         mapping.map_catalog(es_response.hits)
+        content_type = 'application/xml' if format_ == 'xml' else 'text/%s' % format_
 
         return Response(
             mapping.g.serialize(format=format_).decode('utf-8'), 200,
-            {'Content-Type': 'application/xml'})
+            {'Content-Type': content_type})
diff --git a/nomad/app/dcat/datasets.py b/nomad/app/dcat/datasets.py
index 176ec90c9282e1facd05b4cf8ce8e04ebd64510e..aee3aff0452d385f59ecdc4c5474f5550e7a450a 100644
--- a/nomad/app/dcat/datasets.py
+++ b/nomad/app/dcat/datasets.py
@@ -59,6 +59,7 @@ class Dataset(Resource):
 
         mapping = Mapping()
         mapping.map_entry(entry)
+        content_type = 'application/xml' if format_ == 'xml' else 'text/%s' % format_
         return Response(
             mapping.g.serialize(format=format_).decode('utf-8'), 200,
-            {'Content-Type': 'application/xml'})
+            {'Content-Type': content_type})