diff --git a/src/main/java/portal/api/metrics/MetricsApi.java b/src/main/java/portal/api/metrics/MetricsApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a40578d9e6fd8c29e4ab27a0c470ffafb7656ce
--- /dev/null
+++ b/src/main/java/portal/api/metrics/MetricsApi.java
@@ -0,0 +1,48 @@
+package portal.api.metrics;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.etsi.osl.model.nfv.metrics.RegisteredManoProviders;
+import org.etsi.osl.model.nfv.metrics.RegisteredNSDs;
+import org.etsi.osl.model.nfv.metrics.RegisteredVNFs;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+
+@Tag(name = "NFV Metrics Api")
+public interface MetricsApi {
+
+    Logger log = LoggerFactory.getLogger(MetricsApi.class);
+
+    @Operation(summary = "Get total number of registered NSDs", operationId = "getRegisteredNsds")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "200", description = "Success"),
+            @ApiResponse(responseCode = "400", description = "Bad Request"),
+            @ApiResponse(responseCode = "500", description = "Internal Server Error")
+    })
+    @RequestMapping(value = "/metrics/registeredNsds", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
+    ResponseEntity<RegisteredNSDs> getRegisteredNsds();
+
+    @Operation(summary = "Get total number of registered VNFs", operationId = "getRegisteredVnfs")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "200", description = "Success"),
+            @ApiResponse(responseCode = "400", description = "Bad Request"),
+            @ApiResponse(responseCode = "500", description = "Internal Server Error")
+    })
+    @RequestMapping(value = "/metrics/registeredVnfs", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
+    ResponseEntity<RegisteredVNFs> getRegisteredVnfs();
+
+    @Operation(summary = "Get total number of registered Mano Providers", operationId = "getRegisteredManoProviders")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "200", description = "Success"),
+            @ApiResponse(responseCode = "400", description = "Bad Request"),
+            @ApiResponse(responseCode = "500", description = "Internal Server Error")
+    })
+    @RequestMapping(value = "/metrics/registeredManoProviders", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
+    ResponseEntity<RegisteredManoProviders> getRegisteredManoProviders();
+}
diff --git a/src/main/java/portal/api/metrics/MetricsApiController.java b/src/main/java/portal/api/metrics/MetricsApiController.java
new file mode 100644
index 0000000000000000000000000000000000000000..834b8a7b531be152fc1a8a995001b3d814c4eb67
--- /dev/null
+++ b/src/main/java/portal/api/metrics/MetricsApiController.java
@@ -0,0 +1,68 @@
+package portal.api.metrics;
+
+import org.etsi.osl.model.nfv.metrics.RegisteredManoProviders;
+import org.etsi.osl.model.nfv.metrics.RegisteredNSDs;
+import org.etsi.osl.model.nfv.metrics.RegisteredVNFs;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import portal.api.service.ManoProviderService;
+import portal.api.service.NSDService;
+import portal.api.service.VxFService;
+
+
+@Controller
+public class MetricsApiController implements MetricsApi {
+
+    private static final Logger log = LoggerFactory.getLogger(MetricsApiController.class);
+
+    private final NSDService nsdService;
+
+    private final VxFService vxfService;
+
+    private final ManoProviderService manoProviderService;
+
+    public MetricsApiController(NSDService nsdService, VxFService vxfService, ManoProviderService manoProviderService) {
+        this.nsdService = nsdService;
+        this.vxfService = vxfService;
+        this.manoProviderService = manoProviderService;
+    }
+
+    @Override
+    public ResponseEntity<RegisteredNSDs> getRegisteredNsds() {
+        try {
+            int totalNSDs = nsdService.getExperiments().size();
+            RegisteredNSDs response = new RegisteredNSDs(totalNSDs);
+            return new ResponseEntity<>(response, HttpStatus.OK);
+        } catch (Exception e) {
+            log.error("Couldn't retrieve total registered NSDs. ", e);
+            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+    }
+
+    @Override
+    public ResponseEntity<RegisteredVNFs> getRegisteredVnfs() {
+        try {
+            int totalVNFs = vxfService.getVxFs().size();
+            RegisteredVNFs response = new RegisteredVNFs(totalVNFs);
+            return new ResponseEntity<>(response, HttpStatus.OK);
+        } catch (Exception e) {
+            log.error("Couldn't retrieve total registered VNFs. ", e);
+            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+    }
+
+    @Override
+    public ResponseEntity<RegisteredManoProviders> getRegisteredManoProviders() {
+        try {
+            int totalManoProviders = manoProviderService.getMANOproviders().size();
+            RegisteredManoProviders response = new RegisteredManoProviders(totalManoProviders);
+            return new ResponseEntity<>(response, HttpStatus.OK);
+        } catch (Exception e) {
+            log.error("Couldn't retrieve total registered MANO Providers. ", e);
+            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+    }
+}
diff --git a/src/main/java/portal/api/swagger2/SwaggerConfig.java b/src/main/java/portal/api/swagger2/SwaggerConfig.java
index c49190fcc26e923fbad7bcec6576cebaa349bc72..db9a0b930b6e45da4a08ef81ecab5f3905bd8333 100644
--- a/src/main/java/portal/api/swagger2/SwaggerConfig.java
+++ b/src/main/java/portal/api/swagger2/SwaggerConfig.java
@@ -57,7 +57,7 @@ public class SwaggerConfig {
       	SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class);
 	  	SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class);
       return GroupedOpenApi.builder()
-      		.group("nfv-portal.api.controller-v1.0.0")
+      		.group("nfv-portal.api.controller")
     		.addOpenApiCustomizer( this.apiInfoPortalAPI() )
             .packagesToScan("portal.api.controller")
             .build();
@@ -69,11 +69,36 @@ public class SwaggerConfig {
 		
 		return openApi -> openApi
 				.specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) 
-	              .info(new Info().title("NFV portal API")
-	            		  .description("## NFV portal API")
+	              .info(new Info().title("NFV Portal API")
+	            		  .description("## An API to manage NFV Artifacts")
 	                      
 		              .version("1.0.0")
-		              .license(new License().name("Apache 2.0").url("http://openslice.io")));
+		              .license(new License().name("Apache 2.0").url("https://osl.etsi.org")));
+    }
+
+	@Bean
+	public GroupedOpenApi nfvportalmetrics(){
+    	
+      	SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class);
+	  	SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class);
+      return GroupedOpenApi.builder()
+      		.group("nfv-portal.api.metrics")
+    		.addOpenApiCustomizer( this.nfvPortalAPImetrics() )
+            .packagesToScan("portal.api.metrics")
+            .build();
+      
+    }
+    
+    OpenApiCustomizer nfvPortalAPImetrics() {
+
+		
+		return openApi -> openApi
+				.specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) 
+	              .info(new Info().title("NFV Portal metrics API")
+	            		  .description("## An API to retrieve metrics about NFV Portal")
+	                      
+		              .version("1.0.0")
+		              .license(new License().name("Apache 2.0").url("https://osl.etsi.org")));
     }