diff --git a/Documentation/guides/pipeline-handler.rst b/Documentation/guides/pipeline-handler.rst
index 0d5df7269e40..c09690fe7c15 100644
--- a/Documentation/guides/pipeline-handler.rst
+++ b/Documentation/guides/pipeline-handler.rst
@@ -522,7 +522,7 @@ Finally with a successful construction, we return 'true' indicating that the
 PipelineHandler successfully matched and constructed a device.
 
 .. _Camera::create: https://libcamera.org/internal-api-html/classlibcamera_1_1Camera.html#adf5e6c22411f953bfaa1ae21155d6c31
-.. _registerCamera: https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#adf02a7f1bbd87aca73c0e8d8e0e6c98b
+.. _registerCamera: https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a97bc7a1ac8e7128d4b3dff91eb03f2a4
 
 .. code-block:: cpp
 
@@ -782,8 +782,8 @@ Applications generate a ``CameraConfiguration`` instance by calling the
 implementation of the overridden `PipelineHandler::generateConfiguration()`_
 function.
 
-.. _Camera::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1Camera.html#a25c80eb7fc9b1cf32692ce0c7f09991d
-.. _PipelineHandler::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a7932e87735695500ce1f8c7ae449b65b
+.. _Camera::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1Camera.html#a3059dba6e3facae4f58212d3d76b5cac
+.. _PipelineHandler::generateConfiguration(): https://libcamera.org/api-html/classlibcamera_1_1PipelineHandler.html#a83bbbe0826fb159253535ef077cb4343
 
 Configurations are generated by receiving a list of ``StreamRole`` instances,
 which libcamera uses as predefined ways an application intends to use a camera
@@ -791,7 +791,7 @@ which libcamera uses as predefined ways an application intends to use a camera
 optional hints on how an application intends to use a stream, and a pipeline
 handler should return an ideal configuration for each role that is requested.
 
-.. _StreamRole API: https://libcamera.org/api-html/stream_8h.html#file_a295d1f5e7828d95c0b0aabc0a8baac03
+.. _StreamRole API: https://libcamera.org/api-html/namespacelibcamera.html#a295d1f5e7828d95c0b0aabc0a8baac03
 
 In the pipeline handler ``generateConfiguration`` implementation, remove the
 ``return nullptr;``, create a new instance of the ``CameraConfiguration``
@@ -1110,7 +1110,7 @@ We can now use the V4L2 control IDs to prepare a list of controls with the
 `ControlList`_ class, and set them using the `ControlList::set()`_ function.
 
 .. _ControlList: https://libcamera.org/api-html/classlibcamera_1_1ControlList.html
-.. _ControlList::set(): https://libcamera.org/api-html/classlibcamera_1_1ControlList.html#a74a1a29abff5243e6e37ace8e24eb4ba
+.. _ControlList::set(): https://libcamera.org/api-html/classlibcamera_1_1ControlList.html#aa41c425f3075349747fdbfc1e3a6fc46
 
 In our pipeline ``configure`` function, add the following code after the format
 has been set and checked to initialise the ControlList and apply it to the
@@ -1281,7 +1281,7 @@ This example pipeline handler identifies the buffer using the `findBuffer`_
 helper from the only supported stream and queues it to the capture device
 directly with the `queueBuffer`_ function provided by the V4L2VideoDevice.
 
-.. _findBuffer: https://libcamera.org/api-html/classlibcamera_1_1Request.html#ac66050aeb9b92c64218945158559c4d4
+.. _findBuffer: https://libcamera.org/api-html/classlibcamera_1_1Request.html#abaed06e43f6a92590075962f825767f7
 .. _queueBuffer: https://libcamera.org/api-html/classlibcamera_1_1V4L2VideoDevice.html#a594cd594686a8c1cf9ae8dba0b2a8a75
 
 Replace the stubbed contents of ``queueRequestDevice`` with the following:
