diff --git a/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/RequestInfoImpl.java b/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/RequestInfoImpl.java
index 12fd218f826bc9ea1177e433d305cbc951571605..6ddf941be1f763557bce5904cd290ff22cd34ef8 100644
--- a/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/RequestInfoImpl.java
+++ b/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/RequestInfoImpl.java
@@ -53,10 +53,14 @@ public class RequestInfoImpl implements IRequestInfo {
 
     @Inject
     private TenantInfo tenantInfo;
-
+    
     @Value("${DEPLOYMENT_ENVIRONMENT}")
     private String DEPLOYMENT_ENVIRONMENT;
 
+    private static final String INDEXER_API_KEY_HEADER="x-api-key";
+    
+    @Value("${INDEXER_API_KEY}")
+    private String tokenFromProperty;
 
     @Override
     public DpsHeaders getHeaders() {
@@ -65,9 +69,19 @@ public class RequestInfoImpl implements IRequestInfo {
             // throw to prevent null reference exception below
             throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Invalid Headers", "Headers Map DpsHeaders is null");
         }
-        DpsHeaders headers = this.getCoreServiceHeaders(headersMap.getHeaders());
-        return headers;
-    }
+		DpsHeaders headers = this.getCoreServiceHeaders(headersMap.getHeaders());
+
+		if (headers.getHeaders().containsKey(INDEXER_API_KEY_HEADER)) {
+			String apiToken = headers.getHeaders().get(INDEXER_API_KEY_HEADER);
+			if (!apiToken.equals(tokenFromProperty)) {
+				logger.error("Indexer API Token in header is mismatched");
+				throw new AppException(HttpStatus.SC_UNAUTHORIZED, "Indexer API Token in header mismatched.", "Indexer API Token in header mismatched.");
+			}
+		} else {
+			throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Missing Header", "The headers "+ INDEXER_API_KEY_HEADER + "  is missing!");
+		}
+		return headers;
+	}
 
     @Override
     public String getPartitionId() {
@@ -95,7 +109,8 @@ public class RequestInfoImpl implements IRequestInfo {
 
     @Override
     public boolean isTaskQueueRequest() {
-        //if (!this.dpsHeaders.getHeaders().containsKey(INDEXER_QUEUE_KEY)) return false;
+        //if (!this.dpsHeaders.getHeaders().containsKey(INDEXER_API_KEY_HEADER)) return false;
+    	
 
 //        String queueId = this.headersInfo.getHeadersMap().get(AppEngineHeaders.TASK_QUEUE_NAME);
 //        return queueId.endsWith(Constants.INDEXER_QUEUE_IDENTIFIER);
diff --git a/provider/indexer-ibm/src/main/resources/application.properties b/provider/indexer-ibm/src/main/resources/application.properties
index d01f70fee512758c2f6543d56218831ee9a3d472..701f7c8469bb6482eb765eef9d2a948971fb5c4e 100644
--- a/provider/indexer-ibm/src/main/resources/application.properties
+++ b/provider/indexer-ibm/src/main/resources/application.properties
@@ -67,4 +67,5 @@ ELASTIC_USER_PASSWORD=REPLACE_ME:REPLACE_ME
 
 #requeue logic
 INDEXER_QUEUE_HOST=""
-ibm.env.prefix=oc-local
\ No newline at end of file
+ibm.env.prefix=oc-local
+INDEXER_API_KEY=abcds