diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServer.java
index 7ab4bb22958426418807b316b66d8c4500e87b3a..4472bcfcad15b4088d898c1e30644065454a9002 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServer.java
@@ -1144,6 +1144,27 @@ public class ServiceForDataStoreServer extends AbstractCommonServer<IServiceForD
                 MetaprojectTranslator.translate(metaprojects), managedPropertyEvaluatorFactory);
     }
 
+    @Override
+    @RolesAllowed(value =
+    { RoleWithHierarchy.SPACE_OBSERVER, RoleWithHierarchy.SPACE_ETL_SERVER })
+    public AbstractExternalData tryGetThinDataSet(String sessionToken, String dataSetCode) throws UserFailureException
+    {
+        assert sessionToken != null : "Unspecified session token.";
+        assert dataSetCode != null : "Unspecified data set code.";
+
+        Session session = getSession(sessionToken); // assert authenticated
+
+        IDataBO dataBO = businessObjectFactory.createDataBO(session);
+        dataBO.loadByCode(dataSetCode);
+        DataPE dataPE = dataBO.tryGetData();
+        if (null == dataPE)
+        {
+            return null;
+        }
+        return DataSetTranslator.translate(dataPE, session.getBaseIndexURL(),
+                Collections.<Metaproject> emptyList(), managedPropertyEvaluatorFactory);
+    }
+
     @Override
     @RolesAllowed(RoleWithHierarchy.INSTANCE_ADMIN)
     public void checkInstanceAdminAuthorization(String sessionToken) throws UserFailureException
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerLogger.java
index afb07a8f07472b29dc12c08885427d74c57e4b94..d5041d48e16d34b3d8c35c8976fe2ce7b08daa26 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerLogger.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ServiceForDataStoreServerLogger.java
@@ -356,6 +356,13 @@ public class ServiceForDataStoreServerLogger extends AbstractServerLogger implem
         return null;
     }
 
+    @Override
+    public AbstractExternalData tryGetThinDataSet(String sessionToken, String dataSetCode) throws UserFailureException
+    {
+        logAccess(sessionToken, "tryGetThinDataSet", "DATA_SET(%s)", dataSetCode);
+        return null;
+    }
+
     @Override
     public AbstractExternalData tryGetLocalDataSet(String sessionToken, String dataSetCode,
             String dataStore) throws UserFailureException
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IServiceForDataStoreServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IServiceForDataStoreServer.java
index ad7173e12cda8752c06abc77b1a2901aa5e62004..5e4febeb2b6e6d3cb697ce2f5fc947a7a82ee274 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IServiceForDataStoreServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IServiceForDataStoreServer.java
@@ -362,6 +362,13 @@ public interface IServiceForDataStoreServer extends IServer, ISessionProvider
     public AbstractExternalData tryGetDataSet(String sessionToken, String dataSetCode)
             throws UserFailureException;
 
+    /**
+     * Tries to return the data set specified by its code, but without any fetch options.
+     */
+    @Transactional(readOnly = true)
+    public AbstractExternalData tryGetThinDataSet(String sessionToken, String dataSetCode)
+            throws UserFailureException;
+
     /**
      * Tries to return the data set specified by its code, but only if it belongs to the data store of the caller.
      */