diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml
index d9b8e146f3..b6dc650014 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml
@@ -376,4 +376,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.desc.xml
new file mode 100644
index 0000000000..db0195a056
--- /dev/null
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.desc.xml
@@ -0,0 +1,9 @@
+
+ Get data sets
+ WebScript to get the list of available RM test data
+ /api/rma/datasets
+ argument
+ admin
+ required
+ internal
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.json.ftl
new file mode 100644
index 0000000000..509bdd5470
--- /dev/null
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.json.ftl
@@ -0,0 +1,5 @@
+<#escape x as jsonUtils.encodeJSONString(x)>
+{
+ "data": ${data}
+}
+#escape>
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java
new file mode 100644
index 0000000000..8db37f2391
--- /dev/null
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java
@@ -0,0 +1,70 @@
+package org.alfresco.module.org_alfresco_module_rm.script;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.alfresco.module.org_alfresco_module_rm.dataset.DataSet;
+import org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.springframework.extensions.webscripts.Cache;
+import org.springframework.extensions.webscripts.DeclarativeWebScript;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptException;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+
+public class DataSetsGet extends DeclarativeWebScript
+{
+
+ /** Data set service */
+ private DataSetService dataSetService;
+
+ /**
+ * Set data set service
+ *
+ * @param dataSetService the data set service
+ */
+ public void setDataSetService(DataSetService dataSetService)
+ {
+ this.dataSetService = dataSetService;
+ }
+
+ /**
+ * @see org.springframework.extensions.webscripts.DeclarativeWebScript#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest,
+ * org.springframework.extensions.webscripts.Status,
+ * org.springframework.extensions.webscripts.Cache)
+ */
+ @Override
+ protected Map executeImpl(WebScriptRequest req, Status status, Cache cache)
+ {
+ try
+ {
+ JSONObject data = new JSONObject();
+ JSONArray dataSets = new JSONArray();
+
+ for (Map.Entry entry : dataSetService.getDataSets().entrySet())
+ {
+ DataSet value = entry.getValue();
+ JSONObject dataSet = new JSONObject();
+
+ dataSet.put("label", value.getLabel());
+ dataSet.put("id", value.getId());
+
+ dataSets.put(dataSet);
+ }
+
+ data.put("datasets", dataSets);
+
+ Map model = new HashMap(1, 1.0f);
+ model.put("data", data.toString());
+
+ return model;
+ }
+ catch (JSONException error)
+ {
+ throw new WebScriptException(Status.STATUS_BAD_REQUEST,
+ "Cannot convert data set details into JSON.", error);
+ }
+ }
+}