diff --git a/src/emuvim/api/rest/network.py b/src/emuvim/api/rest/network.py
index e766e62..65dddc4 100755
--- a/src/emuvim/api/rest/network.py
+++ b/src/emuvim/api/rest/network.py
@@ -121,3 +121,31 @@
         except Exception as ex:
             logging.exception("API error.")
             return ex.message, 500, CORS_HEADER
+
+
+class DrawD3jsgraph(Resource):
+
+    global net
+
+    def get(self):
+        nodes = list()
+        nodes2 = list()
+        links = list()
+        # add all DCs
+        #for dc in net.dcs:
+        for node_name in net.DCNetwork_graph.nodes():
+            nodes2.append(node_name)
+            node_index = nodes2.index(node_name)
+            node_dict = {"name":node_name,"group":node_index}
+            nodes.append(node_dict)
+
+        # add links between other DCs
+        for node1_name in net.DCNetwork_graph.nodes():
+            node1_index = nodes2.index(node1_name)
+            for node2_name in net.DCNetwork_graph.neighbors(node1_name):
+                node2_index = nodes2.index(node2_name)
+                edge_dict = {"source": node1_index, "target": node2_index, "value": 10}
+                links.append(edge_dict)
+
+        json = {"nodes":nodes, "links":links}
+        return json, 200, CORS_HEADER
\ No newline at end of file
diff --git a/src/emuvim/api/rest/rest_api_endpoint.py b/src/emuvim/api/rest/rest_api_endpoint.py
index 71f87b9..f328b8e 100755
--- a/src/emuvim/api/rest/rest_api_endpoint.py
+++ b/src/emuvim/api/rest/rest_api_endpoint.py
@@ -38,7 +38,7 @@
 
 # need to import total module to set its global variable net
 import network
-from network import NetworkAction
+from network import NetworkAction, DrawD3jsgraph
 
 import monitor
 from monitor import MonitorInterfaceAction, MonitorFlowAction, MonitorLinkAction, MonitorSkewAction
@@ -85,7 +85,8 @@
         # network related actions (setup chaining between VNFs)
         self.api.add_resource(NetworkAction,
                               "/restapi/network")
-
+        self.api.add_resource(DrawD3jsgraph,
+                              "/restapi/network/d3jsgraph")
 
         # monitoring related actions
         # export a network interface traffic rate counter
@@ -103,6 +104,7 @@
         self.api.add_resource(MonitorSkewAction,
                               "/restapi/monitor/skewness")
 
+
         logging.debug("Created API endpoint %s(%s:%d)" % (self.__class__.__name__, self.ip, self.port))
 
 
