diff --git a/src/readers/queryService.ts b/src/readers/queryService.ts
index db856dd89999a7fcde0d657edd6cfa0b67503e43..1f5fe970dfd3fc5fe1a479a4e3db5b1f9853b267 100644
--- a/src/readers/queryService.ts
+++ b/src/readers/queryService.ts
@@ -13,31 +13,33 @@ import { Neo4jConnection } from 'ts-common/neo4j';
 import type { QueryCypher } from '../utils/cypher/converter/queryConverter';
 
 async function cacheCheck(cacheKey: string): Promise<GraphQueryResultMetaFromBackend | undefined> {
-  if (QUERY_CACHE_DURATION === '') {
-    log.info('Query cache disabled, skipping cache check');
-  } else {
-    log.debug('Checking cache for query, with cache ttl', QUERY_CACHE_DURATION, 'seconds');
-    const cached = await redis.client.get(cacheKey);
-    if (cached) {
-      log.info('Cache hit for query');
-      const buf = Buffer.from(cached, 'base64');
-      const inflated = Bun.gunzipSync(new Uint8Array(buf));
-      const dec = new TextDecoder();
-      const cachedMessage = JSON.parse(dec.decode(inflated)) as GraphQueryResultMetaFromBackend;
-      return cachedMessage;
-    }
+  log.debug('Checking cache for query, with cache ttl', QUERY_CACHE_DURATION, 'seconds');
+  const cached = await redis.client.get(cacheKey);
+  if (cached) {
+    log.info('Cache hit for query');
+    const buf = Buffer.from(cached, 'base64');
+    const inflated = Bun.gunzipSync(new Uint8Array(buf));
+    const dec = new TextDecoder();
+    const cachedMessage = JSON.parse(dec.decode(inflated)) as GraphQueryResultMetaFromBackend;
+    return cachedMessage;
   }
 }
 
-export const queryService = async (db: DbConnection, cypher: QueryCypher): Promise<GraphQueryResultMetaFromBackend> => {
+export const queryService = async (db: DbConnection, cypher: QueryCypher, useCached: boolean): Promise<GraphQueryResultMetaFromBackend> => {
   let index = 0;
   const disambiguatedQuery = cypher.query.replace(/\d{13}/g, () => (index++).toString());
   const cacheKey = Bun.hash(JSON.stringify({ db: db, query: disambiguatedQuery })).toString();
 
-  const cachedMessage = await cacheCheck(cacheKey);
-  if (cachedMessage) {
-    log.debug('Cache hit for query', disambiguatedQuery);
-    return cachedMessage;
+  if (QUERY_CACHE_DURATION === '') {
+    log.info('Query cache disabled, skipping cache check');
+  } else if (!useCached) {
+    log.info('Skipping cache check for query due to parameter', useCached);
+  } else {
+    const cachedMessage = await cacheCheck(cacheKey);
+    if (cachedMessage) {
+      log.debug('Cache hit for query', disambiguatedQuery);
+      return cachedMessage;
+    }
   }
 
   // TODO: only neo4j is supported for now
@@ -176,7 +178,7 @@ export const queryServiceReader = async (frontendPublisher: RabbitMqBroker, mlPu
 
     for (let i = 0; i < ss.dbConnections.length; i++) {
       try {
-        const result = await queryService(ss.dbConnections[i], cypher);
+        const result = await queryService(ss.dbConnections[i], cypher, message.useCached);
 
         // Cache nodeCounts such that we can display differentiation for each query
         await ums.updateQuery(headers.message.sessionData.userID, message.saveStateID, {