diff --git a/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java b/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
index 7015d44..0e8300a 100755
--- a/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
+++ b/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
@@ -23,6 +23,7 @@
         router.attach("/get/ng-events/json", GetNGEventsResource.class);
         router.attach("/get/intents/{category}/json", IntentResource.class);
         router.attach("/get/intent/{category}/{intent_id}/json", IntentResource.class);
+        router.attach("/delete/intents/json", IntentResource.class);
         return router;
     }
 
diff --git a/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java b/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
index 48e5e15..c625f3f 100755
--- a/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
+++ b/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
@@ -27,6 +27,7 @@
 import java.util.Map;
 import org.codehaus.jackson.node.ArrayNode;
 import org.codehaus.jackson.node.ObjectNode;
+import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -70,12 +71,6 @@
     
     @Post("json")
     public String store(String jsonIntent) throws IOException {
-	IDatagridService datagridService = (IDatagridService) getContext()
-		.getAttributes().get(IDatagridService.class.getCanonicalName());
-	if (datagridService == null) {
-	    log.debug("FlowIntentResource ONOS Datagrid Service not found");
-	    return "";
-	}
         IPathCalcRuntimeService pathRuntime = (IPathCalcRuntimeService)getContext()
                 .getAttributes().get(IPathCalcRuntimeService.class.getCanonicalName());
         if (pathRuntime == null) {
@@ -100,6 +95,16 @@
 	}
         return reply;
     }
+    
+    @Delete("json")
+    public String store() {
+        IPathCalcRuntimeService pathRuntime = (IPathCalcRuntimeService)getContext().
+                getAttributes().get(IPathCalcRuntimeService.class.getCanonicalName());
+        pathRuntime.purgeIntents();
+        // TODO no reply yet from the purge intents call
+        return "";
+        
+    }
 
     @Get("json")
     public String retrieve() throws IOException {
diff --git a/web/rest-intent/add-get-intent.rb b/web/rest-intent/add-get-intent.rb
index c62a7b6..e73b8e5 100644
--- a/web/rest-intent/add-get-intent.rb
+++ b/web/rest-intent/add-get-intent.rb
@@ -25,6 +25,12 @@
     options[:get_intent] = intent_id
   end
 
+  opts.separator ""
+  opts.separator "Delete options"
+  opts.on('-d', '--purge', 'purge all intents') do
+    options[:rest_op] = "delete"
+  end
+
   opts.separator  ""
   opts.separator  "Post options:"
 
@@ -96,6 +102,11 @@
     puts request
   end
 
+  def purge_intents
+    response = RestClient.delete "http://#{@server}:#{@port}/wm/onos/datagrid/delete/intents/json"
+    puts response
+  end
+
   private 
 
   def create_specific_intent
@@ -202,6 +213,8 @@
 intent = Intent.new options
 if options[:rest_op] == "get"
   intent.get_intent options
+elsif options[:rest_op] == "delete"
+  intent.purge_intents
 else
   json_data = intent.post_intent
 end
