diff --git a/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java b/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java
index cc709573823b24ae1f3643f22afef91b3e5102da..d393cb943522bccbabaadd5d495444cb7292bbb2 100644
--- a/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java
+++ b/src/main/java/com/smartharvester/controller/SmartHarvesterMappingController.java
@@ -2,10 +2,12 @@ package com.smartharvester.controller;
 
 
 import com.smartharvester.model.mapping.Path;
+import com.smartharvester.model.mapping.request.KeywordRequest;
 import com.smartharvester.model.mapping.request.MappingRequest;
 import com.smartharvester.model.mapping.response.MappingResponse;
 import com.smartharvester.service.MappingFromIsoService;
 import com.smartharvester.service.MappingService;
+import com.smartharvester.service.OpenApiServiceImpl;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.json.JSONException;
 import org.slf4j.Logger;
@@ -36,6 +38,9 @@ public class SmartHarvesterMappingController {
 	@Autowired
 	private MappingService mappingService;
 
+	@Autowired
+	private OpenApiServiceImpl openApiService;
+
 	@GetMapping
 	public ResponseEntity<String> transformXmlToRdf(@RequestParam(value = "url") String url,
 			@RequestParam(value = "catalogId") String catalogId) {
@@ -50,7 +55,7 @@ public class SmartHarvesterMappingController {
 	public ResponseEntity<MappingResponse> map(@RequestBody MappingRequest mappingRequest,
 			@RequestParam("catalogId") String catalogId, @RequestParam String fdpUrl, @RequestParam boolean isJsonpath)  {
 		ResponseEntity<?> responseEntity;
-		List<String> urls = mappingRequest.getUrls();
+		List<String> ids = mappingRequest.getIds();
 		List<Path> paths = mappingRequest.getPaths();
 		String fdpToken = mappingRequest.getFdpToken();
 		List<String> publishedUrl = new ArrayList<>();
@@ -58,6 +63,9 @@ public class SmartHarvesterMappingController {
 		List<Path> distributionPaths = paths.stream().filter(path -> path.getDcatClass().equals("dcat:distribution"))
 				.collect(Collectors.toList());
 
+		List<String> urls = new ArrayList<>();
+		ids.parallelStream().forEach(id -> urls.addAll(this.openApiService.getUrls(this.openApiService.getOpenApiByUUDI(catalogId), id)));
+
 		for (String url : urls) {
 			String datasetId;
 
@@ -105,4 +113,15 @@ public class SmartHarvesterMappingController {
 
 	}
 
+	@PostMapping("/keywords")
+	public ResponseEntity<List<String>> getKeywords (@RequestBody KeywordRequest req) {
+		List<String> keywords = new ArrayList<>();
+		if (req.isJSonPath()) {
+
+		} else {
+
+		}
+		return ResponseEntity.ok(keywords);
+	}
+
 }
diff --git a/src/main/java/com/smartharvester/model/mapping/request/KeywordRequest.java b/src/main/java/com/smartharvester/model/mapping/request/KeywordRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..0d85f24a4c1491c60a2b5f83e77c88531247c4da
--- /dev/null
+++ b/src/main/java/com/smartharvester/model/mapping/request/KeywordRequest.java
@@ -0,0 +1,25 @@
+package com.smartharvester.model.mapping.request;
+
+import java.util.List;
+
+public class KeywordRequest {
+
+    private boolean isJSonPath;
+    private List<String> keywordPaths;
+
+    public boolean isJSonPath() {
+        return isJSonPath;
+    }
+
+    public void setJSonPath(boolean JSonPath) {
+        isJSonPath = JSonPath;
+    }
+
+    public List<String> getKeywordPaths() {
+        return keywordPaths;
+    }
+
+    public void setKeywordPaths(List<String> keywordPaths) {
+        this.keywordPaths = keywordPaths;
+    }
+}
diff --git a/src/main/java/com/smartharvester/model/mapping/request/MappingRequest.java b/src/main/java/com/smartharvester/model/mapping/request/MappingRequest.java
index ce798bebb48e9a1b5210904836b379602a7f0769..bb9287f58fd56a8ce66a2966c613f3fd6a5d3d7e 100644
--- a/src/main/java/com/smartharvester/model/mapping/request/MappingRequest.java
+++ b/src/main/java/com/smartharvester/model/mapping/request/MappingRequest.java
@@ -6,17 +6,17 @@ import java.util.List;
 
 public class MappingRequest {
 	
-	private List<String> urls;
+	private List<String> ids;
 	private List<Path> paths;
 	private String fdpToken;
 	
 	
-	public List<String> getUrls() {
-		return urls;
+	public List<String> getIds() {
+		return ids;
 	}
 	
-	public void setUrls(List<String> urls) {
-		this.urls = urls;
+	public void setIds(List<String> ids) {
+		this.ids = ids;
 	}
 	
 	public List<Path> getPaths() {
diff --git a/src/main/java/com/smartharvester/service/OpenApiServiceImpl.java b/src/main/java/com/smartharvester/service/OpenApiServiceImpl.java
index d5f124c88143c5e9077f85452161b2cbc1456922..98d95ba02246aa4953970c865b3c06e64feaac58 100644
--- a/src/main/java/com/smartharvester/service/OpenApiServiceImpl.java
+++ b/src/main/java/com/smartharvester/service/OpenApiServiceImpl.java
@@ -7,9 +7,8 @@ import com.smartharvester.model.openapi.OpenApiPathItemParameter;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 public class OpenApiServiceImpl implements OpenApiService {
 
@@ -61,5 +60,74 @@ public class OpenApiServiceImpl implements OpenApiService {
         openApiDaoRepository.save(openApi);
     }
 
+    public List<String> getUrls(OpenApi openApi, String id) {
+        List<Map<String, OpenApiPathItem>> datasetItems =
+                (List<Map<String, OpenApiPathItem>>) this.getDatasetItems(openApi);
+        List<String> paths = this.getPaths(openApi);
+        List<String> urls = new ArrayList<>();
+        for (int i = 0; i < datasetItems.size(); i++) {
+            String url = "";
+            List<OpenApiPathItemParameter> parameters = datasetItems.get(i).get("get").getParameters();
 
+            Map<String, String> mapQueryParameters = new HashMap<>();
+            Map<String, String> mapPathParameters = new HashMap<>();
+            for(OpenApiPathItemParameter param: parameters) {
+                if (param.getRequired()) {
+                    if(param.getIn().equals("query")) {
+                        mapQueryParameters.put(param.getName(), id);
+                    } else if (param.getIn().equals("path")){
+                        paths.set(i, paths.get(i).replace("{" + param.getName() + "}", id));
+                    }
+                } else {
+                    if(param.getIn().equals("query")) {
+                        mapQueryParameters.put(param.getName(), param.getSchema().getDefaultValue());
+                    } else if (param.getIn().equals("path")){
+                        mapPathParameters.put(param.getName(), param.getSchema().getDefaultValue());
+                    }
+                }
+            }
+            String listOfParams = "?";
+            String pathParam = "";
+            for(Map.Entry<String, String> entry: mapQueryParameters.entrySet()) {
+                listOfParams = listOfParams.concat(entry.getKey() + "=" + entry.getValue() + "&");
+            }
+            for(Map.Entry<String, String> entry: mapPathParameters.entrySet()) {
+                pathParam += "/" + entry.getValue();
+            }
+
+            listOfParams = StringUtils.substring(listOfParams, 0, listOfParams.length() - 1);
+
+            url = this.getBaseUrl(openApi) + paths.get(i) + pathParam + listOfParams;
+
+            String pathToData = datasetItems.get(i).get("get").getResponses()
+                    .get(datasetItems.get(i).get("get").getResponses().keySet().toArray()[0]).getContent()
+                    .get("application/json").getExample();
+
+
+            urls.add(url);
+        }
+
+
+        return urls;
+    }
+
+    public Collection<Map<String, OpenApiPathItem>> getDatasetItems(OpenApi openApi) {
+        return openApi.getPaths().values().stream().filter(e -> e.get("get").getTags().get(0).equals("dataset"))
+                .collect(
+                        Collectors.toList());
+    }
+
+    public List<String> getPaths(OpenApi openApi) {
+        List<String> paths = new ArrayList<>();
+        for (Map.Entry<String, Map<String, OpenApiPathItem>> mapEntry : openApi.getPaths().entrySet()) {
+            if (mapEntry.getValue().get("get").getTags().get(0).equals("dataset")) {
+                paths.add(mapEntry.getKey());
+            }
+        }
+        return paths;
+    }
+
+    public String getBaseUrl(OpenApi openApi) {
+        return openApi.getServers().get(0).getUrl();
+    }
 }
diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties
index 3e448fde8b132bd91546f96b2a4f59afe18120b7..d82af2994aa69ead5f11a2fd40ed463f479bfd47 100644
--- a/src/main/resources/application-dev.properties
+++ b/src/main/resources/application-dev.properties
@@ -6,8 +6,8 @@ spring.jackson.serialization.indent-output=true
 server.port=8080
 
 # 3. MongoDB configuration.
-spring.data.mongodb.uri=mongodb://admin:adminadmin@90.147.167.103:27017/fdp?authSource=admin
-
+#spring.data.mongodb.uri=mongodb://admin:adminadmin@90.147.167.103:27017/fdp?authSource=admin
+spring.data.mongodb.uri=mongodb://10.6.10.97:27017/fdp?authSource=admin
 
 # 4. Logging configuration.
 logging.level.com.assignment.springboot.mongo=DEBUG
@@ -42,4 +42,4 @@ spring.security.oauth2.client.provider.oidc.issuer-uri=https://iam-pillar.cloud.
 spring.security.oauth2.client.registration.oidc.client-id=a03a6ac2-acfe-4916-9d0f-db874ea94e75
 spring.security.oauth2.client.registration.oidc.client-secret=cLONCJ8MccdHwobCEMSl_sYDJGKpmBxH16SyiRIBx8XeoDa2ZLwzTvF_aVoEeOt3h2sNbZqltRqhfHKeI3g7Dw
 spring.security.oauth2.client.registration.oidc.scope=address,phone,openid,email,profile
-spring.security.oauth2.client.registration.oidc.redirect-uri=http://localhost:4200/callback
\ No newline at end of file
+spring.security.oauth2.client.registration.oidc.redirect-uri=http://localhost:4200/callback