diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java
index 3d4fb9bfb9901ead060aae500e9586604bb189fd..df9647dc160db6cb28ac59029cbdc6eb85954fea 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/FacadeFactory.java
@@ -22,7 +22,7 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.IQueryApiServer;
 
 /**
  * Factory of {@link IQueryApiFacade}.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public class FacadeFactory
@@ -44,4 +44,15 @@ public class FacadeFactory
         }
         return new QueryApiFacade(service, sessionToken);
     }
+
+    /**
+     * Creates a facade for specified url and sessionToken.
+     */
+    public static IQueryApiFacade create(String serverURL, String sessionToken)
+    {
+        IQueryApiServer service =
+                HttpInvokerUtils.createServiceStub(IQueryApiServer.class, serverURL
+                        + ResourceNames.QUERY_PLUGIN_SERVER_URL, SERVER_TIMEOUT_MIN);
+        return new QueryApiFacade(service, sessionToken);
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java
index 5ac27c07f9389f55fef22593c905d975e639ac12..43ad4e93e2434ee8dc012844a8dcffc18d0a612d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/IQueryApiFacade.java
@@ -24,11 +24,16 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableModel;
 
 /**
  * Facade for openBIS query service.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public interface IQueryApiFacade
 {
+    /**
+     * Return the session token for the logged-in user.
+     */
+    public String getSessionToken();
+
     /**
      * Lists all queries the user has access rights.
      */
@@ -43,5 +48,5 @@ public interface IQueryApiFacade
      * Logs current user out.
      */
     public void logout();
-    
+
 }
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java
index 6a6c2937f3194149950c2ef2b48a06af284bebf4..a4c4786d579044af053b9b66aa09546431dd1d0f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/api/v1/QueryApiFacade.java
@@ -24,31 +24,35 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryDescription;
 import ch.systemsx.cisd.openbis.plugin.query.shared.api.v1.dto.QueryTableModel;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
 class QueryApiFacade implements IQueryApiFacade
 {
     private final IQueryApiServer service;
+
     private final String sessionToken;
-    
+
     QueryApiFacade(IQueryApiServer service, String sessionToken)
     {
         this.service = service;
         this.sessionToken = sessionToken;
     }
-    
+
+    public String getSessionToken()
+    {
+        return sessionToken;
+    }
+
     public void logout()
     {
         service.logout(sessionToken);
     }
-    
+
     public List<QueryDescription> listQueries()
     {
         return service.listQueries(sessionToken);
     }
-    
+
     public QueryTableModel executeQuery(long queryID, Map<String, String> parameterBindings)
     {
         return service.executeQuery(sessionToken, queryID, parameterBindings);