diff --git a/pom.xml b/pom.xml
index c9d5b258e91394e8ae72e7966d64d9b85b4cc7e5..826a7ca4a58811d45e2a3b6469e6eb309c9c991f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,7 @@
         <flyway-core.version>4.2.0</flyway-core.version>
         <gson.version>2.10.1</gson.version>
         <commons-dbcp.version>2.9.0</commons-dbcp.version>
+        <springdoc-openapi-starter-webmvc-ui.version>2.1.0</springdoc-openapi-starter-webmvc-ui.version>
         <lombok.version>1.18.28</lombok.version>
     </properties>
 
@@ -103,6 +104,11 @@
             <artifactId>lombok</artifactId>
             <version>${lombok.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
+            <version>${springdoc-openapi-starter-webmvc-ui.version}</version>
+        </dependency>
     </dependencies>
 
    <build>
diff --git a/src/main/java/hbp/mip/configurations/OpenApiConfig.java b/src/main/java/hbp/mip/configurations/OpenApiConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..c02348d23264c86e826a236dd9a6444d050c302c
--- /dev/null
+++ b/src/main/java/hbp/mip/configurations/OpenApiConfig.java
@@ -0,0 +1,18 @@
+package hbp.mip.configurations;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+
+
+@Configuration
+public class OpenApiConfig {
+    @Bean
+    public OpenAPI usersMicroserviceOpenAPI() {
+        return new OpenAPI()
+                .info(new Info().title("Portal-backend API")
+                        .version("1.0"));
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/hbp/mip/configurations/SecurityConfiguration.java b/src/main/java/hbp/mip/configurations/SecurityConfiguration.java
index 33b3279eaceb1e9ded52400e76d8e18c0cf5cf2e..29a5790b6648bf788f9aaa2e44d562a2eca919a9 100644
--- a/src/main/java/hbp/mip/configurations/SecurityConfiguration.java
+++ b/src/main/java/hbp/mip/configurations/SecurityConfiguration.java
@@ -60,7 +60,15 @@ public class SecurityConfiguration {
     SecurityFilterChain clientSecurityFilterChain(HttpSecurity http, ClientRegistrationRepository clientRegistrationRepo) throws Exception {
         if (authenticationEnabled) {
             http.authorizeHttpRequests(auth -> auth
-                    .requestMatchers("/login/**", "/oauth2/**", "/actuator/**").permitAll()
+                    .requestMatchers(
+                            "/login/**",
+                            "/oauth2/**",
+                            "/actuator/**",
+                            "/v3/api-docs",
+                            "/v3/api-docs/**",
+                            "/swagger-ui/**",
+                            "/swagger-ui.html"
+                    ).permitAll()
                     .requestMatchers("/**").authenticated()
             );
 
diff --git a/src/main/java/hbp/mip/repositories/ExperimentRepository.java b/src/main/java/hbp/mip/repositories/ExperimentRepository.java
index b70f75c00ee02b50542a850515237b5ed900fe91..445b413197e64e38f5082e7bbfb1e1d2de3e72b2 100644
--- a/src/main/java/hbp/mip/repositories/ExperimentRepository.java
+++ b/src/main/java/hbp/mip/repositories/ExperimentRepository.java
@@ -6,16 +6,16 @@ import hbp.mip.models.DTOs.ExperimentExecutionDTO;
 import hbp.mip.models.DTOs.UserDTO;
 import hbp.mip.utils.Exceptions.BadRequestException;
 import hbp.mip.utils.Exceptions.ExperimentNotFoundException;
-import hbp.mip.utils.Exceptions.InternalServerError;
 import hbp.mip.utils.JsonConverters;
 import hbp.mip.utils.Logger;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.rest.core.annotation.RestResource;
 
 import java.util.Date;
 import java.util.UUID;
 
-
+@RestResource(exported = false)
 public interface ExperimentRepository extends CrudRepository<ExperimentDAO, UUID>, JpaSpecificationExecutor<ExperimentDAO> {
     ExperimentDAO findByUuid(UUID experimentUuid);
 
diff --git a/src/main/java/hbp/mip/repositories/UserRepository.java b/src/main/java/hbp/mip/repositories/UserRepository.java
index 11f5d3f6ca98b10301d7f58ec0e289fa573bbf63..505fcbbd195e6c08a76d93b2a3c996ab292f7059 100644
--- a/src/main/java/hbp/mip/repositories/UserRepository.java
+++ b/src/main/java/hbp/mip/repositories/UserRepository.java
@@ -2,7 +2,9 @@ package hbp.mip.repositories;
 
 import hbp.mip.models.DAOs.UserDAO;
 import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.rest.core.annotation.RestResource;
 
+@RestResource(exported = false)
 public interface UserRepository extends CrudRepository<UserDAO, String> {
     UserDAO findByUsername(String username);
 }