diff --git a/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
index ffb9149..8fa660e 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
@@ -19,6 +19,7 @@
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onosproject.net.DeviceId;
+import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.meter.DefaultMeterRequest;
 import org.onosproject.net.meter.Meter;
 import org.onosproject.net.meter.MeterId;
@@ -140,12 +141,17 @@
             ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
             JsonNode specifiedDeviceId = jsonTree.get("deviceId");
 
-            if (specifiedDeviceId != null &&
-                    !specifiedDeviceId.asText().equals(deviceId)) {
+            if ((specifiedDeviceId != null &&
+                    !specifiedDeviceId.asText().equals(deviceId)) ||
+                    get(DeviceService.class).getDevice(DeviceId.deviceId(deviceId))
+                            == null) {
                 throw new IllegalArgumentException(DEVICE_INVALID);
             }
+
             jsonTree.put("deviceId", deviceId);
-            final MeterRequest meterRequest = codec(MeterRequest.class).decode(jsonTree, this);
+            final MeterRequest meterRequest = codec(MeterRequest.class)
+                    .decode(jsonTree, this);
+
             final Meter meter = meterService.submit(meterRequest);
 
             UriBuilder locationBuilder = uriInfo.getBaseUriBuilder()
