diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/meter/MeterService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/meter/MeterService.java
new file mode 100644
index 0000000..b8702dd
--- /dev/null
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/meter/MeterService.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.incubator.net.meter;
+
+import org.onosproject.event.ListenerService;
+
+/**
+ * Service for add/updating and removing meters. Meters are
+ * are assigned to flow to rate limit them and provide a certain
+ * quality of service.
+ */
+public interface MeterService
+        extends ListenerService<MeterEvent, MeterListener> {
+
+    /**
+     * Adds a meter to the system and performs it installation.
+     *
+     * @param meter a meter.
+     */
+    void addMeter(Meter meter);
+
+    /**
+     * Updates a meter by adding statistic information to the meter.
+     *
+     * @param meter an updated meter
+     */
+    void updateMeter(Meter meter);
+
+    /**
+     * Remove a meter from the system and the dataplane.
+     *
+     * @param meter a meter to remove
+     */
+    void removeMeter(Meter meter);
+
+    /**
+     * Remove a meter from the system and the dataplane by meter id.
+     *
+     * @param id a meter id
+     */
+    void removeMeter(MeterId id);
+
+    /**
+     * Fetch the meter by the meter id.
+     *
+     * @param id a meter id
+     * @return a meter
+     */
+    Meter getMeter(MeterId id);
+
+    /**
+     * Allocate a meter id which must be used to create the meter.
+     *
+     * @return a meter id
+     */
+    MeterId allocateMeterId();
+}
