diff --git a/restws.entity.inc b/restws.entity.inc
index b012e98..81580d2 100644
--- a/restws.entity.inc
+++ b/restws.entity.inc
@@ -356,6 +356,17 @@ class RestWSEntityResourceController implements RestWSQueryResourceControllerInt
    *   The value for the function.
    */
   protected function propertyQueryOperation(EntityFieldQuery $query, $operation, $property, $value) {
+
+    $custom_filter = array(
+      'property' => $property,
+      'value' => $value,
+    );
+    $custom_filter = restws_proprocess_filter($custom_filter);
+
+    $property = $custom_filter['property'];
+
+    $value = $custom_filter['value'];
+
     $properties = $this->propertyInfo();
 
     // If field is not set, then the filter is a property and we can extract
diff --git a/restws.module b/restws.module
index e078411..09e0066 100644
--- a/restws.module
+++ b/restws.module
@@ -457,6 +457,14 @@ function restws_meta_controls() {
 }
 
 /**
+ * Allow for preprocessing of filter.
+ */
+function restws_proprocess_filter($custom_filter) {
+  drupal_alter('restws_proprocess_filter', $custom_filter);
+  return $custom_filter;
+}
+
+/**
  * Ensures that a request with cookies has the required CSRF header set.
  *
  * @return bool
@@ -512,3 +520,16 @@ function restws_terminate_request($status_message = NULL, $message = NULL) {
   drupal_page_footer();
   exit;
 }
+
+function restws_restws_proprocess_filter_alter(&$custom_filter) {
+  if($custom_filter['property'] == 'url') {
+    $url = $custom_filter['value'];
+    $path = parse_url($url, PHP_URL_PATH);
+    $org_path = drupal_lookup_path("source", $path);
+    $node = menu_get_object("node", 1, $org_path);
+    $nid = $node->nid;
+    $custom_filter['property'] = 'nid';
+    $custom_filter['value'] = $nid;
+  }
+}
+
