diff --git a/x-pack/plugins/lens/public/react_embeddable/initializers/initialize_dashboard_services.ts b/x-pack/plugins/lens/public/react_embeddable/initializers/initialize_dashboard_services.ts
index bf203f5faf32a..67a5d3a89a1c2 100644
--- a/x-pack/plugins/lens/public/react_embeddable/initializers/initialize_dashboard_services.ts
+++ b/x-pack/plugins/lens/public/react_embeddable/initializers/initialize_dashboard_services.ts
@@ -16,7 +16,7 @@ import {
   getUnchangingComparator,
   initializeTitles,
 } from '@kbn/presentation-publishing';
-import { apiPublishesSettings } from '@kbn/presentation-containers';
+import { apiIsPresentationContainer, apiPublishesSettings } from '@kbn/presentation-containers';
 import { buildObservableVariable, isTextBasedLanguage } from '../helper';
 import type {
   LensComponentProps,
@@ -27,6 +27,7 @@ import type {
   LensSharedProps,
   IntegrationCallbacks,
   LensInternalApi,
+  LensApi,
 } from '../types';
 import { apiHasLensComponentProps } from '../type_guards';
 import { StateManagementConfig } from './initialize_state_management';
@@ -39,9 +40,12 @@ export interface DashboardServicesConfig {
     PublishesWritablePanelDescription &
     HasInPlaceLibraryTransforms &
     HasLibraryTransforms<LensRuntimeState> &
+    Pick<LensApi, 'parentApi'> &
     Pick<IntegrationCallbacks, 'updateOverrides' | 'getTriggerCompatibleActions'>;
   serialize: () => SerializedProps;
-  comparators: StateComparators<SerializedProps & { isNewPanel?: boolean }>;
+  comparators: StateComparators<
+    SerializedProps & Pick<LensApi, 'parentApi'> & { isNewPanel?: boolean }
+  >;
   cleanup: () => void;
 }
 
@@ -78,6 +82,7 @@ export function initializeDashboardServices(
 
   return {
     api: {
+      parentApi: apiIsPresentationContainer(parentApi) ? parentApi : undefined,
       defaultPanelTitle: defaultPanelTitle$,
       defaultPanelDescription: defaultPanelDescription$,
       ...titlesApi,
@@ -178,6 +183,7 @@ export function initializeDashboardServices(
       overrides: overridesComparator,
       disableTriggers: disabledTriggersComparator,
       isNewPanel: getUnchangingComparator<{ isNewPanel?: boolean }, 'isNewPanel'>(),
+      parentApi: getUnchangingComparator<Pick<LensApi, 'parentApi'>, 'parentApi'>(),
     },
     cleanup: noop,
   };
diff --git a/x-pack/plugins/lens/public/react_embeddable/types.ts b/x-pack/plugins/lens/public/react_embeddable/types.ts
index 058affe7f8d2f..c860c543570c1 100644
--- a/x-pack/plugins/lens/public/react_embeddable/types.ts
+++ b/x-pack/plugins/lens/public/react_embeddable/types.ts
@@ -17,6 +17,7 @@ import type {
   HasEditCapabilities,
   HasInPlaceLibraryTransforms,
   HasLibraryTransforms,
+  HasParentApi,
   HasSupportedTriggers,
   PublishesBlockingError,
   PublishesDataLoading,
@@ -63,6 +64,7 @@ import type { AllowedGaugeOverrides } from '@kbn/expression-gauge-plugin/common'
 import type { AllowedPartitionOverrides } from '@kbn/expression-partition-vis-plugin/common';
 import type { AllowedXYOverrides } from '@kbn/expression-xy-plugin/common';
 import type { Action } from '@kbn/ui-actions-plugin/public';
+import { PresentationContainer } from '@kbn/presentation-containers';
 import type { LegacyMetricState } from '../../common';
 import type { LensDocument } from '../persistence';
 import type { LensInspector } from '../lens_inspector_service';
@@ -379,6 +381,8 @@ export type LensApi = Simplify<
     HasLibraryTransforms<LensRuntimeState> &
     // Let the container know the view mode
     PublishesViewMode &
+    // forward the parentApi, note that will be exposed only if it satisfy the PresentationContainer interface
+    Partial<HasParentApi<PresentationContainer>> &
     // Let the container know the saved object id
     PublishesSavedObjectId &
     // Lens specific API methods: