diff --git a/src/main/java/net/onrc/onos/core/topology/web/TopologyWebRoutable.java b/src/main/java/net/onrc/onos/core/topology/web/TopologyWebRoutable.java
index 8eb18d4..1f224d2 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/TopologyWebRoutable.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/TopologyWebRoutable.java
@@ -18,7 +18,7 @@
 
         // Topology API
         router.attach("", TopologyResource.class);
-        router.attach("/devices", DevicesResource.class);
+        router.attach("/hosts", DevicesResource.class);
         router.attach("/links", LinksResource.class);
         router.attach("/switches", SwitchesResource.class);
 
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologySerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologySerializer.java
index 0769805..48a5cfc 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologySerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologySerializer.java
@@ -55,8 +55,8 @@
         }
         jsonGenerator.writeEndArray();
 
-        // Output the devices array
-        jsonGenerator.writeArrayFieldStart("devices");
+        // Output the hosts array
+        jsonGenerator.writeArrayFieldStart("hosts");
         for (final Device device : topology.getDevices()) {
             jsonGenerator.writeObject(device);
         }
diff --git a/src/test/java/net/onrc/onos/api/rest/TestRestTopologyGet.java b/src/test/java/net/onrc/onos/api/rest/TestRestTopologyGet.java
index eb8ee2e..b7b8d65 100644
--- a/src/test/java/net/onrc/onos/api/rest/TestRestTopologyGet.java
+++ b/src/test/java/net/onrc/onos/api/rest/TestRestTopologyGet.java
@@ -125,20 +125,20 @@
     }
 
     /**
-     * Check that the JSON array returned for the devices element matches
+     * Check that the JSON array returned for the hosts element matches
      * the data in the mocked topology.
      *
-     * @param devices JSON array of switches
+     * @param hosts JSON array of hosts
      */
-    private void checkDevices(final JSONArray devices) {
-        // devices array should be empty
-        assertThat(devices.length(), is(equalTo(0)));
+    private void checkHosts(final JSONArray hosts) {
+        // hosts array should be empty
+        assertThat(hosts.length(), is(equalTo(0)));
     }
 
     /**
      * Test that the GET of all Topology REST call returns the proper result.
      * The call to get all Topology should return 3 items (switches, links,
-     * and devices), an HTTP status of OK, and the proper topology data.
+     * and hosts), an HTTP status of OK, and the proper topology data.
      */
     @Test
     public void testFetchOfAllTopology() throws Exception {
@@ -159,9 +159,9 @@
         final JSONArray links = topology.getJSONArray("links");
         checkLinks(links);
 
-        // Check the devices array
-        final JSONArray devices = topology.getJSONArray("devices");
-        checkDevices(devices);
+        // Check the hosts array
+        final JSONArray hosts = topology.getJSONArray("hosts");
+        checkHosts(hosts);
     }
 
     /**
@@ -195,17 +195,17 @@
     }
 
     /**
-     * Test that the GET of all devices REST call returns the proper result.
-     * The call to get all devices should return no devices.
+     * Test that the GET of all hosts REST call returns the proper result.
+     * The call to get all hosts should return no hosts.
      */
     @Test
-    public void testFetchOfAllDevices() throws Exception {
-        final ClientResource client = new ClientResource(getBaseRestTopologyUrl() + "/switches");
-        final JSONArray devices = getJSONArray(client);
+    public void testFetchOfAllHosts() throws Exception {
+        final ClientResource client = new ClientResource(getBaseRestTopologyUrl() + "/hosts");
+        final JSONArray hosts = getJSONArray(client);
 
         // HTTP status should be OK
         assertThat(client, hasStatusOf(Status.SUCCESS_OK));
 
-        checkSwitches(devices);
+        checkHosts(hosts);
     }
 }
