diff --git a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
index 3e13293cf18f57605e9cca34df028883d6edb4bb..3f4de6eb58f6a3fe791b5c58640b27d73100051c 100644
--- a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
@@ -9,6 +9,9 @@ import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
+import eu.hbp.mip.model.Algorithm;
+import eu.hbp.mip.model.MiningQuery;
+import eu.hbp.mip.model.Variable;
 import io.swagger.annotations.*;
 import org.apache.log4j.Logger;
 import org.postgresql.util.PGobject;
@@ -21,8 +24,10 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.support.rowset.SqlRowSet;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 
@@ -135,12 +140,13 @@ public class VariablesApi {
         return ResponseEntity.ok(hierarchy);
     }
 
-    @ApiOperation(value = "Get groupings for histograms", response = Object.class)
-    @Cacheable("vars_histogram_groupings")
-    @RequestMapping(value = "/histogram_groupings", method = RequestMethod.GET)
-    public ResponseEntity<String> getHistogramGroupings(
+    @ApiOperation(value = "Get query for histograms", response = Object.class)
+    @Cacheable("vars_histogram_query")
+    @RequestMapping(value = "/{code}/histogram_query", method = RequestMethod.GET)
+    public ResponseEntity<String> getHistogramQuery(
+            @ApiParam(value = "code", required = true) @PathVariable("code") String code
     )  {
-        LOGGER.info("Get groupings for histograms");
+        LOGGER.info("Get query for histograms");
 
         String sqlQuery = String.format(
                 "SELECT histogram_groupings FROM meta_variables where upper(target_table)='%s'", featuresMainTable.toUpperCase());
@@ -148,6 +154,12 @@ public class VariablesApi {
         data.next();
         String histogramGroupings = data.getString("histogram_groupings");
 
+        MiningQuery query = new MiningQuery();
+        query.getVariables().add(new Variable(code));
+        List<String> groupings = Arrays.asList(histogramGroupings.split(","));
+        query.getGrouping().addAll(groupings.stream().map(Variable::new).collect(Collectors.toList()));
+        query.setAlgorithm(new Algorithm("histograms", "Histograms", false));
+
         return ResponseEntity.ok(histogramGroupings);
     }
 
diff --git a/src/main/java/eu/hbp/mip/model/Algorithm.java b/src/main/java/eu/hbp/mip/model/Algorithm.java
index 862136617dabf95f7e00aa8313124d93b4557c94..f861468cf2d8523b020cd4d37d7661028bd3febc 100644
--- a/src/main/java/eu/hbp/mip/model/Algorithm.java
+++ b/src/main/java/eu/hbp/mip/model/Algorithm.java
@@ -8,6 +8,15 @@ public class Algorithm extends ExperimentValidator {
 
     private boolean validation;
 
+    public Algorithm() {
+    }
+
+    public Algorithm(String code, String name, boolean validation) {
+        this.validation = validation;
+        setCode(code);
+        setName(name);
+    }
+
     public boolean isValidation() {
         return validation;
     }
diff --git a/src/main/java/eu/hbp/mip/model/Variable.java b/src/main/java/eu/hbp/mip/model/Variable.java
index fc619b87f7b029f6f6e9af74273d2649a821565a..8fc4d2dd91fae198da98c5e4251da3afa2739769 100644
--- a/src/main/java/eu/hbp/mip/model/Variable.java
+++ b/src/main/java/eu/hbp/mip/model/Variable.java
@@ -24,11 +24,14 @@ public class Variable {
     @Expose
     private String code = null;
 
-
+    /**
+     *  Empty constructor is needed by Hibernate
+     */
     public Variable() {
-        /*
-        *  Empty constructor is needed by Hibernate
-        */
+    }
+
+    public Variable(String code) {
+        this.code = code;
     }
 
     public String getCode() {