diff --git a/sdbusplus/bus.hpp b/sdbusplus/bus.hpp
index 25c7c49..6365644 100644
--- a/sdbusplus/bus.hpp
+++ b/sdbusplus/bus.hpp
@@ -201,6 +201,32 @@
         return sd_bus_get_event(_bus.get());
     }
 
+    /** @brief Wrapper for sd_bus_emit_object_added
+     *
+     *  In general the similarly named server::object::object API should
+     *  be used to manage emission of ObjectManager signals in favor
+     *  of this one.  Provided here for complex usage scenarios.
+     *
+     *  @param[in] path - The path to forward to sd_bus_emit_object_added
+     */
+    void emit_object_added(const char* path)
+    {
+        sd_bus_emit_object_added(_bus.get(), path);
+    }
+
+    /** @brief Wrapper for sd_bus_emit_object_removed
+     *
+     *  In general the similarly named server::object::object API should
+     *  be used to manage emission of ObjectManager signals in favor
+     *  of this one.  Provided here for complex usage scenarios.
+     *
+     *  @param[in] path - The path to forward to sd_bus_emit_object_removed
+     */
+    void emit_object_removed(const char* path)
+    {
+        sd_bus_emit_object_removed(_bus.get(), path);
+    }
+
     friend struct server::interface::interface;
     friend struct server::manager::manager;
     template<class... Args> friend struct server::object::object;
