diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
index b50df7825..27835500f 100644
--- a/include/libcamera/camera_manager.h
+++ b/include/libcamera/camera_manager.h
@@ -9,6 +9,7 @@
 
 #include <memory>
 #include <string>
+#include <string_view>
 #include <sys/types.h>
 #include <vector>
 
@@ -31,7 +32,7 @@ public:
 	void stop();
 
 	std::vector<std::shared_ptr<Camera>> cameras() const;
-	std::shared_ptr<Camera> get(const std::string &id);
+	std::shared_ptr<Camera> get(std::string_view id);
 
 	static const std::string &version() { return version_; }
 
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index b28bd0bd2..e62e7193c 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -381,7 +381,7 @@ std::vector<std::shared_ptr<Camera>> CameraManager::cameras() const
  *
  * \return Shared pointer to Camera object or nullptr if camera not found
  */
-std::shared_ptr<Camera> CameraManager::get(const std::string &id)
+std::shared_ptr<Camera> CameraManager::get(std::string_view id)
 {
 	Private *const d = _d();
 
diff --git a/src/py/libcamera/py_camera_manager.h b/src/py/libcamera/py_camera_manager.h
index 3574db236..af69b915e 100644
--- a/src/py/libcamera/py_camera_manager.h
+++ b/src/py/libcamera/py_camera_manager.h
@@ -20,7 +20,7 @@ public:
 	~PyCameraManager();
 
 	pybind11::list cameras();
-	std::shared_ptr<Camera> get(const std::string &name) { return cameraManager_->get(name); }
+	std::shared_ptr<Camera> get(std::string_view name) { return cameraManager_->get(name); }
 
 	static const std::string &version() { return CameraManager::version(); }
 
