diff --git a/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java
index 974b74e..2749ec0 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java
@@ -17,6 +17,9 @@
 package org.onosproject.rest.resources;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.annotations.Beta;
+import org.onlab.packet.IpAddress;
+import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.mcast.McastRoute;
 import org.onosproject.net.mcast.MulticastRouteService;
 import org.onosproject.rest.AbstractWebResource;
@@ -26,6 +29,7 @@
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
@@ -37,6 +41,7 @@
 /**
  * Manage the multicast routing information.
  */
+@Beta
 @Path("mcast")
 public class MulticastRouteWebResource extends AbstractWebResource {
 
@@ -103,4 +108,40 @@
         }
         return Response.noContent().build();
     }
+
+    /**
+     * Create a sink for a multicast route.
+     * Creates a new sink for an existing multicast route.
+     *
+     * @onos.rsModel McastSinkPost
+     * @param group group IP address
+     * @param source source IP address
+     * @param stream sink JSON
+     * @return status of the request - CREATED if the JSON is correct,
+     * BAD_REQUEST if the JSON is invalid
+     */
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("sinks/{group}/{source}")
+    public Response addSinks(@PathParam("group") String group,
+                             @PathParam("source") String source,
+                             InputStream stream) {
+        MulticastRouteService service = get(MulticastRouteService.class);
+        try {
+            McastRoute route = new McastRoute(IpAddress.valueOf(source), IpAddress.valueOf(group),
+                    McastRoute.Type.STATIC);
+            ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+            jsonTree.path("sinks").forEach(node -> {
+                ConnectPoint sink = ConnectPoint.deviceConnectPoint(node.asText());
+                service.addSink(route, sink);
+            });
+        } catch (IOException ex) {
+            throw new IllegalArgumentException(ex);
+        }
+
+        return Response
+                .created(URI.create(""))
+                .build();
+    }
 }
diff --git a/web/api/src/main/resources/definitions/McastSinkPost.json b/web/api/src/main/resources/definitions/McastSinkPost.json
new file mode 100644
index 0000000..8df8a53
--- /dev/null
+++ b/web/api/src/main/resources/definitions/McastSinkPost.json
@@ -0,0 +1,21 @@
+{
+  "type": "object",
+  "title": "sinks",
+  "required": [
+    "sinks"
+  ],
+  "properties": {
+    "sinks": {
+      "type": "array",
+      "xml": {
+        "name": "sinks",
+        "wrapped": true
+      },
+      "items": {
+        "type": "string",
+        "title": "sink",
+        "example": "of:0000000000000001/1"
+      }
+    }
+  }
+}
