diff --git a/src/leap/soledad/server/_blobs.py b/src/leap/soledad/server/_blobs.py
index 3113e12c0dcc409f4dcdace98e4b46f6cd4a6296..8393d5bfe71fe87ea9e8bb7180e30e56f72f1da4 100644
--- a/src/leap/soledad/server/_blobs.py
+++ b/src/leap/soledad/server/_blobs.py
@@ -197,16 +197,14 @@ class FilesystemBlobsBackend(object):
     def get_total_storage(self, user):
         return self._get_disk_usage(self._get_path(user))
 
-    def add_tag_header(self, user, blob_id, request, namespace=''):
+    def get_tag(self, user, blob_id, namespace=''):
         blob_path = self._get_path(user, blob_id, namespace)
         if not os.path.isfile(blob_path):
-            # 404 - Not Found
-            request.setResponseCode(404)
-            return "Blob doesn't exists: %s" % blob_id
+            raise BlobNotFound
         with open(blob_path) as doc_file:
             doc_file.seek(-16, 2)
             tag = base64.urlsafe_b64encode(doc_file.read())
-            request.responseHeaders.setRawHeaders('Tag', [tag])
+            return tag
 
     @defer.inlineCallbacks
     def _get_disk_usage(self, start_path):
@@ -290,7 +288,13 @@ class BlobsResource(resource.Resource):
         only_flags = request.args.get('only_flags', [False])[0]
         if only_flags:
             return self._handler.get_flags(user, blob_id, request, namespace)
-        self._handler.add_tag_header(user, blob_id, request, namespace)
+        try:
+            tag = self._handler.get_tag(user, blob_id, namespace)
+        except BlobNotFound:
+            # 404 - Not Found
+            request.setResponseCode(404)
+            return "Blob doesn't exists: %s" % blob_id
+        request.responseHeaders.setRawHeaders('Tag', [tag])
         return self._handler.read_blob(user, blob_id, request, namespace)
 
     def render_DELETE(self, request):
diff --git a/src/leap/soledad/server/interfaces.py b/src/leap/soledad/server/interfaces.py
index 674fd8e6d7d34ea0442849b8772ad0e9a469644c..15603047832f01ed69c3963618cf6e157b0c5a37 100644
--- a/src/leap/soledad/server/interfaces.py
+++ b/src/leap/soledad/server/interfaces.py
@@ -157,18 +157,17 @@ class IBlobsBackend(Interface):
         :rtype: int
         """
 
-    def add_tag_header(user, blob_id, request, namespace=''):
+    def get_tag(user, blob_id, namespace=''):
         """
-        Add a ``Tag`` HTTP header to the passed request containing the tag of
-        a blob.
+        Get the tag of a blob.
 
         :param blob_id: The id of the blob.
         :type blob_id: str
-        :param request: A representation of all of the information about the
-            request that is being made.
-        :type request: twisted.web.server.Request
         :param namespace: An optional namespace for the blob.
         :type namespace: str
+
+        :return: The tag of the blob.
+        :rtype: str
         """
 
     def get_flags(user, blob_id, request, namespace=''):