diff --git a/notification-core/pom.xml b/notification-core/pom.xml
index 69d5f99b341a05db802f531f862883fc352af9af..771a747ec5b5b3a52898463f7cc61d2a99345cc3 100644
--- a/notification-core/pom.xml
+++ b/notification-core/pom.xml
@@ -37,6 +37,7 @@
         <java.version>8</java.version>
         <maven.compiler.target>${java.version}</maven.compiler.target>
         <maven.compiler.source>${java.version}</maven.compiler.source>
+        <springfox-version>2.7.0</springfox-version>
     </properties>
 
     <repositories>
@@ -187,6 +188,24 @@
             <version>2.8.5</version>
         </dependency>
 
+        <!-- swagger dependencies -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>${springfox-version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.guava</groupId>
+                    <artifactId>guava</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>${springfox-version}</version>
+        </dependency>
+
         <dependency>
             <groupId>org.powermock</groupId>
             <artifactId>powermock-api-mockito2</artifactId>
@@ -211,6 +230,11 @@
             <version>4.12</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java b/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java
index 36bfc80393762c8fcee8abd64a82c39dda253e48..2eb23d060a1e3ce9e4abddd8fda4d2ce7a30e232 100644
--- a/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java
+++ b/notification-core/src/main/java/org/opengroup/osdu/notification/auth/AuthorizationFilter.java
@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.annotation.RequestScope;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
 
 @Component("authorizationFilter")
@@ -35,6 +36,8 @@ import java.util.Arrays;
 public class AuthorizationFilter {
     private static final String BEARER_PREFIX = "Bearer ";
 
+    @Autowired
+    private HttpServletRequest request;
     @Autowired
     private IAuthorizationService authService;
     @Autowired
@@ -51,6 +54,13 @@ public class AuthorizationFilter {
             requestInfoExt.assignPartitionIdIfNotInHeader();
         }
 
+        String path = request.getServletPath();
+        if ("GET".equals(request.getMethod())) {
+            if (path.equals("/swagger-ui.html")) {
+                return true;
+            }
+        }
+
         if (Arrays.asList(requiredRoles).contains(Config.CRON) && requestInfoExt.isCronRequest()) {
             dpsHeaders.put(DpsHeaders.USER_EMAIL, Config.CRON);
             requestInfoExt.setHeaders(dpsHeaders);
diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/swagger/HomeController.java b/notification-core/src/main/java/org/opengroup/osdu/notification/swagger/HomeController.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e568ff05233c163ec6e535e09e6ce06c09df98d
--- /dev/null
+++ b/notification-core/src/main/java/org/opengroup/osdu/notification/swagger/HomeController.java
@@ -0,0 +1,14 @@
+package org.opengroup.osdu.notification.swagger;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@Controller
+public class HomeController {
+
+    @RequestMapping(value = {"/", "/swagger"})
+    public String swagger() {
+        System.out.println("swagger-ui.html");
+        return "redirect:swagger-ui.html";
+    }
+}
diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/swagger/SwaggerDocumentationConfig.java b/notification-core/src/main/java/org/opengroup/osdu/notification/swagger/SwaggerDocumentationConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..2aea7a909d3786007ab3c033d460b81f407a63db
--- /dev/null
+++ b/notification-core/src/main/java/org/opengroup/osdu/notification/swagger/SwaggerDocumentationConfig.java
@@ -0,0 +1,69 @@
+package org.opengroup.osdu.notification.swagger;
+
+import org.opengroup.osdu.core.common.model.http.DpsHeaders;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ParameterBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.ApiKey;
+import springfox.documentation.service.AuthorizationScope;
+import springfox.documentation.service.Parameter;
+import springfox.documentation.service.SecurityReference;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerDocumentationConfig {
+    public static final String AUTHORIZATION_HEADER = "Authorization";
+    public static final String DEFAULT_INCLUDE_PATTERN = "/.*";
+
+    @Bean
+    public Docket api() {
+        ParameterBuilder builder = new ParameterBuilder();
+        List<Parameter> parameters = new ArrayList<>();
+        builder.name(DpsHeaders.DATA_PARTITION_ID)
+                .description("tenant")
+                .defaultValue("common")
+                .modelRef(new ModelRef("string"))
+                .parameterType("header")
+                .required(true)
+                .build();
+        parameters.add(builder.build());
+        return new Docket(DocumentationType.SWAGGER_2)
+                .globalOperationParameters(parameters)
+                .select()
+                .apis(RequestHandlerSelectors.basePackage("org.opengroup.osdu.notification.api"))
+                .build()
+                .securityContexts(Collections.singletonList(securityContext()))
+                .securitySchemes(Collections.singletonList(apiKey()));
+    }
+
+    private ApiKey apiKey() {
+        return new ApiKey("JWT", AUTHORIZATION_HEADER, "header");
+    }
+
+    private SecurityContext securityContext() {
+        return SecurityContext.builder()
+                .securityReferences(defaultAuth())
+                .forPaths(PathSelectors.regex(DEFAULT_INCLUDE_PATTERN))
+                .build();
+    }
+
+    List<SecurityReference> defaultAuth() {
+        AuthorizationScope authorizationScope
+                = new AuthorizationScope("global", "accessEverything");
+        AuthorizationScope[] authorizationScopes =
+                new AuthorizationScope[]{authorizationScope};
+        return Collections.singletonList(
+                new SecurityReference("JWT", authorizationScopes));
+    }
+}
\ No newline at end of file
diff --git a/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java b/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java
index 50a46790c9789b4d9257833fa0437771aca0eb40..cbf48fb7cc6d97a50bc105c2d2e18d1f47507fbd 100644
--- a/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java
+++ b/notification-core/src/test/java/org/opengroup/osdu/notification/auth/AuthorizationFilterTest.java
@@ -31,6 +31,7 @@ import org.opengroup.osdu.notification.utils.Config;
 import org.opengroup.osdu.notification.provider.interfaces.IServiceAccountValidator;
 import org.powermock.modules.junit4.PowerMockRunner;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -53,6 +54,8 @@ public class AuthorizationFilterTest {
     @Mock
     private DpsHeaders headers;
     @Mock
+    private HttpServletRequest request;
+    @Mock
     private RequestInfoExt requestInfo;
     @Mock
     private IAuthorizationService authorizationService;
diff --git a/notification-core/src/test/java/org/opengroup/osdu/notification/swagger/HomeControllerTest.java b/notification-core/src/test/java/org/opengroup/osdu/notification/swagger/HomeControllerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..6bd3e8084d58fd9a779c75d74f887b3901d0b349
--- /dev/null
+++ b/notification-core/src/test/java/org/opengroup/osdu/notification/swagger/HomeControllerTest.java
@@ -0,0 +1,33 @@
+package org.opengroup.osdu.notification.swagger;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.http.MediaType;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;
+
+public class HomeControllerTest {
+
+    private MockMvc mockMvc;
+
+    @Before
+    public void setup() {
+        mockMvc = standaloneSetup(HomeController.class).build();
+    }
+
+    @Test
+    public void testSwaggerFound() throws Exception {
+        mockMvc.perform(get("/swagger")
+                .contentType(MediaType.APPLICATION_JSON)
+                .accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isFound());
+
+        mockMvc.perform(get("/")
+                .contentType(MediaType.APPLICATION_JSON)
+                .accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isFound());
+    }
+}