diff --git a/CHANGELOG b/CHANGELOG
index 52071d512097f1957a207502fa468eb985d4233f..a58b159879c532de075d513cfa4fff72590cb55a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
 minerva-front (18.0.7) stable; urgency=medium
   * Bug fix: export to image did not include overlays (#326)
   * Bug fix: missing logos added (#329)
+  * Bug fix: plugin API did not provide overlay entries when returning list of
+    visible overlays (#332)
 
 -- Piotr Gawron <piotr.gawron@uni.lu>  Wed, 11 Dec 2024 13:00:00 +0200
 
diff --git a/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.test.ts b/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.test.ts
index 036a668b22bf45829ccc22e4767a40ff0c184697..c0f486b95bf1c15209090f56863fffdbeb120b73 100644
--- a/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.test.ts
+++ b/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.test.ts
@@ -3,6 +3,7 @@ import { overlaysFixture } from '@/models/fixtures/overlaysFixture';
 import { OVERLAYS_INITIAL_STATE_MOCK } from '@/redux/overlays/overlays.mock';
 import { RootState, store } from '@/redux/store';
 import { OVERLAY_BIO_ENTITY_INITIAL_STATE_MOCK } from '@/redux/overlayBioEntity/overlayBioEntity.mock';
+import { DataOverlay } from '@/services/pluginsManager/map/overlays/types/DataOverlay';
 import { getVisibleDataOverlays } from './getVisibleDataOverlays';
 
 const ACTIVE_OVERLAYS_IDS = overlaysFixture.map(overlay => overlay.idObject);
@@ -34,7 +35,9 @@ describe('getVisibleDataOverlays', () => {
         }) as RootState,
     );
 
-    expect(getVisibleDataOverlays()).toEqual(overlaysFixture);
+    expect(getVisibleDataOverlays()).toEqual(
+      overlaysFixture.map(overlay => new DataOverlay(overlay)),
+    );
   });
 
   it('should return empty array if no active overlays', () => {
diff --git a/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.ts b/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.ts
index 6224d3ffe50af7b5e79591e464a76571ed3b0422..14a69d51ac535c543ed55d85b2d06b7e7b41a7fc 100644
--- a/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.ts
+++ b/src/services/pluginsManager/map/overlays/getVisibleDataOverlays.ts
@@ -1,9 +1,46 @@
-import { activeOverlaysSelector } from '@/redux/overlayBioEntity/overlayBioEntity.selector';
+import {
+  activeOverlaysSelector,
+  overlayBioEntityDataSelector,
+} from '@/redux/overlayBioEntity/overlayBioEntity.selector';
 import { store } from '@/redux/store';
-import { MapOverlay } from '@/types/models';
+import { DataOverlay } from '@/services/pluginsManager/map/overlays/types/DataOverlay';
+import { modelsDataSelector } from '@/redux/models/models.selectors';
+import { DataOverlayEntry } from '@/services/pluginsManager/map/overlays/types/DataOverlayEntry';
 
-export const getVisibleDataOverlays = (): MapOverlay[] => {
+export const getVisibleDataOverlays = (): DataOverlay[] => {
   const activeOverlays = activeOverlaysSelector(store.getState());
+  const overlayData = overlayBioEntityDataSelector(store.getState());
 
-  return activeOverlays;
+  const models = modelsDataSelector(store.getState());
+
+  const dataOverlays = activeOverlays.map(mapOverlay => new DataOverlay(mapOverlay));
+
+  dataOverlays.forEach(dataOverlay => {
+    const mapOverlayData = overlayData[dataOverlay.id];
+    if (mapOverlayData) {
+      models.forEach(model => {
+        const entries = mapOverlayData[model.idObject];
+        if (entries) {
+          entries.forEach(dataEntry => {
+            if (dataEntry.type === 'submap-link') {
+              dataOverlay.addEntry(
+                new DataOverlayEntry(
+                  Number(dataEntry.id),
+                  'ALIAS',
+                  dataEntry.modelId,
+                  dataEntry.color,
+                  dataEntry.value,
+                ),
+              );
+            } else {
+              // eslint-disable-next-line no-console
+              console.log(`${dataEntry.type} not supported`);
+            }
+          });
+        }
+      });
+    }
+  });
+
+  return dataOverlays;
 };
diff --git a/src/services/pluginsManager/map/overlays/types/DataOverlay.ts b/src/services/pluginsManager/map/overlays/types/DataOverlay.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e79d88ba577df7f5e6881aa5181795db9151d119
--- /dev/null
+++ b/src/services/pluginsManager/map/overlays/types/DataOverlay.ts
@@ -0,0 +1,44 @@
+import { MapOverlay } from '@/types/models';
+import { DataOverlayEntry } from '@/services/pluginsManager/map/overlays/types/DataOverlayEntry';
+
+export class DataOverlay {
+  id: number;
+
+  idObject: number;
+
+  name: string;
+
+  order: number;
+
+  creator: string;
+
+  description: string;
+
+  genomeType: string | null;
+
+  genomeVersion: string | null;
+
+  publicOverlay: boolean;
+
+  type: string;
+
+  entries: DataOverlayEntry[];
+
+  constructor(mapOverlay: MapOverlay) {
+    this.id = mapOverlay.idObject;
+    this.idObject = mapOverlay.idObject;
+    this.name = mapOverlay.name;
+    this.order = mapOverlay.order;
+    this.creator = mapOverlay.creator;
+    this.description = mapOverlay.description;
+    this.genomeType = mapOverlay.genomeType;
+    this.genomeVersion = mapOverlay.genomeVersion;
+    this.publicOverlay = mapOverlay.publicOverlay;
+    this.type = mapOverlay.type;
+    this.entries = [];
+  }
+
+  public addEntry(entry: DataOverlayEntry): void {
+    this.entries.push(entry);
+  }
+}
diff --git a/src/services/pluginsManager/map/overlays/types/DataOverlayEntry.ts b/src/services/pluginsManager/map/overlays/types/DataOverlayEntry.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2627887c2cde9f251137a816fac4656a50161fdc
--- /dev/null
+++ b/src/services/pluginsManager/map/overlays/types/DataOverlayEntry.ts
@@ -0,0 +1,27 @@
+import { Color } from '@/types/models';
+
+export class DataOverlayEntry {
+  bioEntityId: number;
+
+  bioEntityType: string;
+
+  bioEntityModelId: number;
+
+  color: Color | null;
+
+  value: number | null;
+
+  constructor(
+    bioEntityId: number,
+    bioEntityType: string,
+    bioEntityModelId: number,
+    color: Color | null,
+    value: number | null,
+  ) {
+    this.bioEntityId = bioEntityId;
+    this.color = color;
+    this.value = value;
+    this.bioEntityType = bioEntityType;
+    this.bioEntityModelId = bioEntityModelId;
+  }
+}