diff --git a/src/main/java/net/onrc/onos/core/datagrid/web/GetNGEventsResource.java b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGEventsResource.java
new file mode 100644
index 0000000..f319d23
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGEventsResource.java
@@ -0,0 +1,41 @@
+package net.onrc.onos.core.datagrid.web;
+
+import java.util.Collection;
+
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.ofcontroller.networkgraph.TopologyEvent;
+import net.onrc.onos.ofcontroller.networkgraph.TopologyManager;
+
+import org.restlet.resource.Get;
+import org.restlet.resource.ServerResource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GetNGEventsResource extends ServerResource {
+
+    public static final Logger log = LoggerFactory.getLogger(GetNGEventsResource.class);
+
+    @Get("json")
+    public String retrieve() {
+        IDatagridService datagridService =
+                (IDatagridService) getContext().getAttributes().
+                        get(IDatagridService.class.getCanonicalName());
+
+
+        log.debug("Get network graph events");
+
+        IEventChannel<byte[], TopologyEvent> channel = datagridService.createChannel(TopologyManager.EVENT_CHANNEL_NAME,
+                byte[].class, TopologyEvent.class);
+
+        Collection<TopologyEvent> entries = channel.getAllEntries();
+
+        String result = "";
+        for (TopologyEvent event : entries) {
+            result += event.toString() + "\n";
+        }
+
+        return result;
+    }
+
+}
