diff --git a/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteCodec.java b/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteCodec.java
index 3ea9f07..b33dca1 100644
--- a/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteCodec.java
+++ b/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteCodec.java
@@ -52,11 +52,14 @@
 
         IpPrefix prefix = IpPrefix.valueOf(json.path(PREFIX).asText());
         IpAddress nextHop = IpAddress.valueOf(json.path(NEXT_HOP).asText());
+        String source = json.path(SOURCE).asText();
 
-        // Routes through the REST API are created as STATIC, so we ignore
-        // the source parameter if it is specified in the JSON.
-        Route route = new Route(Route.Source.STATIC, prefix, nextHop);
+        // Routes through the REST API without mentioning source in the json are created as STATIC,
+        // otherwise routes are created with corresponding source.
 
+        Route route = source.isEmpty() ?
+                new Route(Route.Source.STATIC, prefix, nextHop) :
+                new Route(Route.Source.valueOf(source), prefix, nextHop);
         return route;
     }
 }
diff --git a/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteServiceWebResource.java b/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteServiceWebResource.java
index fc1a09a..a1c0296 100644
--- a/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteServiceWebResource.java
+++ b/apps/route-service/app/src/main/java/org/onosproject/routeservice/rest/RouteServiceWebResource.java
@@ -74,14 +74,13 @@
 
     /**
      * Create new unicast route.
-     * Creates a new route in the unicast RIB. Routes created through the REST
-     * API are always created as STATIC routes, so there is no need to specify
-     * the type.
+     * Creates a new route in the unicast RIB. Source field is kept optional.
+     * Without Source field routes are created as STATIC routes. Otherwise as per the mentioned Source
      *
      * @param route unicast route JSON
      * @return status of the request - CREATED if the JSON is correct,
      * BAD_REQUEST if the JSON is invalid, NO_CONTENT otherwise
-     * @onos.rsModel RoutePost
+     * @onos.rsModel RouteTypePost
      */
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
@@ -103,14 +102,13 @@
 
     /**
      * Creates new unicast routes.
-     * Creates new routes in the unicast RIB. Routes created through the REST
-     * API are always created as STATIC routes, so there is no need to specify
-     * the type.
+     * Creates a new route in the unicast RIB. Source field is kept optional.
+     * Without Source field routes are created as STATIC routes. Otherwise as per the mentioned Source
      *
      * @param routesStream unicast routes JSON array
      * @return status of the request - CREATED if the JSON is correct,
      * BAD_REQUEST if the JSON is invalid, NO_CONTENT otherwise
-     * @onos.rsModel RoutesPost
+     * @onos.rsModel RoutesTypePost
      */
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
