diff --git a/ironic/drivers/modules/inspector.py b/ironic/drivers/modules/inspector.py
index 4af309e439..0da29c63cd 100644
--- a/ironic/drivers/modules/inspector.py
+++ b/ironic/drivers/modules/inspector.py
@@ -33,6 +33,7 @@ from ironic.conductor import task_manager
 from ironic.conductor import utils as cond_utils
 from ironic.conf import CONF
 from ironic.drivers import base
+from ironic.drivers.modules import deploy_utils
 
 
 LOG = logging.getLogger(__name__)
@@ -194,6 +195,8 @@ def _start_managed_inspection(task):
         endpoint = _get_callback_endpoint(client)
         params = dict(_parse_kernel_params(),
                       **{'ipa-inspection-callback-url': endpoint})
+        if CONF.deploy.fast_track:
+            params['ipa-api-url'] = deploy_utils.get_ironic_api_url()
 
         cond_utils.node_power_action(task, states.POWER_OFF)
         with cond_utils.power_state_for_network_configuration(task):
diff --git a/ironic/tests/unit/drivers/modules/test_inspector.py b/ironic/tests/unit/drivers/modules/test_inspector.py
index c1f179ff7d..6b2313daba 100644
--- a/ironic/tests/unit/drivers/modules/test_inspector.py
+++ b/ironic/tests/unit/drivers/modules/test_inspector.py
@@ -228,6 +228,39 @@ class InspectHardwareTestCase(BaseTestCase):
         self.assertFalse(self.driver.network.remove_inspection_network.called)
         self.assertFalse(self.driver.boot.clean_up_ramdisk.called)
 
+    @mock.patch('ironic.drivers.modules.deploy_utils.get_ironic_api_url',
+                autospec=True)
+    def test_managed_fast_track(self, mock_ironic_url, mock_client):
+        CONF.set_override('fast_track', True, group='deploy')
+        CONF.set_override('extra_kernel_params',
+                          'ipa-inspection-collectors=default,logs '
+                          'ipa-collect-dhcp=1',
+                          group='inspector')
+        endpoint = 'http://192.169.0.42:5050/v1'
+        mock_ironic_url.return_value = 'http://192.169.0.42:6385'
+        mock_client.return_value.get_endpoint.return_value = endpoint
+        mock_introspect = mock_client.return_value.start_introspection
+        self.iface.validate(self.task)
+        self.assertEqual(states.INSPECTWAIT,
+                         self.iface.inspect_hardware(self.task))
+        mock_introspect.assert_called_once_with(self.node.uuid,
+                                                manage_boot=False)
+        self.driver.boot.prepare_ramdisk.assert_called_once_with(
+            self.task, ramdisk_params={
+                'ipa-inspection-callback-url': endpoint + '/continue',
+                'ipa-inspection-collectors': 'default,logs',
+                'ipa-collect-dhcp': '1',
+                'ipa-api-url': 'http://192.169.0.42:6385',
+            })
+        self.driver.network.add_inspection_network.assert_called_once_with(
+            self.task)
+        self.driver.power.set_power_state.assert_has_calls([
+            mock.call(self.task, states.POWER_OFF, timeout=None),
+            mock.call(self.task, states.POWER_ON, timeout=None),
+        ])
+        self.assertFalse(self.driver.network.remove_inspection_network.called)
+        self.assertFalse(self.driver.boot.clean_up_ramdisk.called)
+
     @mock.patch.object(task_manager, 'acquire', autospec=True)
     def test_managed_error(self, mock_acquire, mock_client):
         endpoint = 'http://192.169.0.42:5050/v1'
diff --git a/releasenotes/notes/inspection-fast-track-ab5165e11d3e9522.yaml b/releasenotes/notes/inspection-fast-track-ab5165e11d3e9522.yaml
new file mode 100644
index 0000000000..1af84f5bd0
--- /dev/null
+++ b/releasenotes/notes/inspection-fast-track-ab5165e11d3e9522.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+  - |
+    Fixes fast track deployment preceeded by managed inspection by providing
+    the ironic API URL to the ramdisk so that it can heartbeat.