diff --git a/web/api/src/main/java/org/onosproject/rest/resources/StatisticsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/StatisticsWebResource.java
index d878433..08059a8 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/StatisticsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/StatisticsWebResource.java
@@ -35,6 +35,7 @@
 import org.onosproject.net.Device;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Link;
+import org.onosproject.net.PortNumber;
 import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.device.PortStatistics;
 import org.onosproject.net.flow.FlowRuleService;
@@ -215,4 +216,33 @@
         return ok(root).build();
     }
 
+    /**
+     * Gets port statistics of a specified device and port.
+     * @onos.rsModel StatisticsPorts
+     * @param deviceId device ID
+     * @param port port
+     * @return 200 OK with JSON encoded array of port statistics for the specified port
+     */
+    @GET
+    @Path("ports/{deviceId}/{port}")
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response getPortStatisticsByDeviceIdAndPort(@PathParam("deviceId") String deviceId,
+                                                       @PathParam("port") String port) {
+        final DeviceService service = get(DeviceService.class);
+        final PortNumber portNumber = portNumber(port);
+        final PortStatistics portStatsEntry =
+                service.getStatisticsForPort(DeviceId.deviceId(deviceId), portNumber);
+        final ObjectNode root = mapper().createObjectNode();
+        final ArrayNode rootArrayNode = root.putArray("statistics");
+        final ObjectNode deviceStatsNode = mapper().createObjectNode();
+        deviceStatsNode.put("device", deviceId);
+        final ArrayNode statisticsNode = deviceStatsNode.putArray("ports");
+        if (portStatsEntry != null) {
+            statisticsNode.add(codec(PortStatistics.class).encode(portStatsEntry, this));
+        }
+        rootArrayNode.add(deviceStatsNode);
+
+        return ok(root).build();
+    }
+
 }
