diff -rupN a/subscriptions_views.info b/subscriptions_views.info
--- /dev/null/
+++ b/subscriptions_views.info
@@ -0,0 +1,7 @@
+name = Subscriptions Views
+description = Provides views integration for the subscriptions module.
+package = Subscriptions
+core = 7.x
+
+dependencies[] = subscriptions
+dependencies[] = views
diff -rupN a/subscriptions_views.module b/subscriptions_views.module
--- /dev/null/
+++ b/subscriptions_views.module
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * @file
+ * Provides views integration for the subscriptions module.
+ */
+
+/**
+ * Implements hook_views_api().
+ */
+function subscriptions_views_views_api() {
+  return array(
+     'api' => 3,
+  );
+}
diff -rupN a/subscriptions_views.views.inc b/subscriptions_views.views.inc
--- /dev/null/
+++ b/subscriptions_views.views.inc
@@ -0,0 +1,254 @@
+<?php
+
+/**
+ * @file
+ * Defines subscriptions related Views data and plugins.
+ */
+
+/**
+ * Implements hook_views_data().
+ */
+function subscriptions_views_views_data() {
+  $data = array();
+
+  $data['subscriptions']['table']['group']  = t('Subscriptions');
+
+  // Subscriptions base table information.
+  $data['subscriptions']['table']['base'] = array(
+    'field' => 'sid',
+    'title' => t('Subscription'),
+  );
+  // Provide a "default relationship" to keep older views from choking.
+  $data['subscriptions']['table']['default_relationship'] = array(
+    'users' => array(
+      'table' => 'users',
+      'field' => 'recipient_uid',
+    ),
+  );
+
+  // Subscription ID.
+  $data['subscriptions']['sid'] = array(
+    'title' => t('Subscription ID'),
+    'help' => t('The ID of the given subscription.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ),
+  );
+  // Module that provides the content being subscribed to.
+  $data['subscriptions']['module'] = array(
+    'title' => t('Module'),
+    'help' => t('The module that provides the content being subscribed to.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+  // The field that stores the data that is used to subscribe to the content.
+  $data['subscriptions']['field'] = array(
+    'title' => t('Field'),
+    'help' => t('The field that holds the data defining the subscription.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+  // The value of the subscription field.
+  $data['subscriptions']['value'] = array(
+    'title' => t('Value'),
+    'help' => t('The value of the field used to define the subscription.'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+  // Relationsip with the user that made the subscription.
+  $data['subscriptions']['recipient_uid'] = array(
+    'title' => t('Subscribing user uid'),
+    'help' => t('The user that is subscribing to content. If you need more fields than the uid add the subscription: subscribing user relationship.'),
+    'field' => array(
+      'handler' => 'views_handler_field_user',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_user_uid',
+      'name field' => 'name',
+    ),
+    'filter' => array(
+      'title' => t('Subscribing user'),
+      'handler' => 'views_handler_filter_user_name',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'relationship' => array(
+      'title' => t('Subscribing user'),
+      'help' => t('Relate subscription to the user who is subscribed.'),
+      'handler' => 'views_handler_relationship',
+      'base' => 'users',
+      'field' => 'uid',
+      'label' => t('Subscribing user'),
+    ),
+  );
+
+  // Relationship with the author that is subscribed to.
+  $data['subscriptions']['author_uid'] = array(
+    'title' => t('Subscribed content author ID'),
+    'help' => t('The uid of the user that is subscribed to. If you need more fields than the uid add the subscription: subscribed author relationship.'),
+    'field' => array(
+      'handler' => 'views_handler_field_user',
+      'click sortable' => TRUE,
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_user_uid',
+      'name field' => 'name',
+    ),
+    'filter' => array(
+      'title' => t('Subscribed author'),
+      'handler' => 'views_handler_filter_user_name',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'relationship' => array(
+      'title' => t('Subscribed author'),
+      'help' => t('Relate subscription to the user who is subscribed to. This relationship is only applied when the subscription is to an author’s content.'),
+      'handler' => 'views_handler_relationship',
+      'argument table' => 'subscriptions',
+      'argument field' => 'author_uid',
+      'base' => 'users',
+      'base field' => 'uid',
+      'field' => 'author_uid',
+      'label' => t('Subscribed author'),
+    ),
+  );
+  // The value field for node IDs.
+  $data['subscriptions']['node'] = array(
+    'title' => t('Content nid'),
+    'help' => t('The content ID to which the subscription is made.'),
+    'real field' => 'value',
+    'relationship' => array(
+      'title' => t('Content'),
+      'help' => t('The content to which the subscription is made.'),
+      'base' => 'node',
+      'base field' => 'nid',
+      'field' => 'value',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Content'),
+    ),
+  );
+  // The value field for node types.
+  $data['subscriptions']['type'] = array(
+    'title' => t('Content type'),
+    'help' => t('The type of the content that the user is subscribed to.'),
+    'real field' => 'value',
+    'relationship' => array(
+      'title' => t('Content type'),
+      'help' => t('The content type that the user is subscribed to. This relationship will create one record for each node of the content type that user is subscribed to.'),
+      'base' => 'node',
+      'base field' => 'type',
+      'field' => 'value',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Content type'),
+    ),
+  );
+  // The value field for term IDs.
+  $data['subscriptions']['term'] = array(
+    'title' => t('Term tid'),
+    'help' => t('The taxonomy term that the user is subscribed to.'),
+    'real field' => 'value',
+    'relationship' => array(
+      'title' => t('Taxonomy term'),
+      'help' => t('The taxonomy term that the user is subscribed to. This relationship will create one record for each piece of content with the term the user is subscribed to.'),
+      'base' => 'taxonomy_term_data',
+      'base field' => 'tid',
+      'field' => 'value',
+      'handler' => 'views_handler_relationship',
+      'label' => t('Taxonomy term'),
+    ),
+  );
+
+  return $data;
+}
+
+
+/**
+ * Implements hook_views_data_alter().
+ */
+function subscriptions_views_views_data_alter(&$views_data) {
+  $default_relationships = module_invoke_all('subscriptions_relationships');
+
+  $default_relationships[] = array(
+    'description' => t('nodes'),
+    'entity_type' => 'node',
+    'base_table' => 'node',
+    'entity_id_column' => 'nid',
+  );
+  $default_relationships[] = array(
+   'description' => t('node types'),
+    'entity_type' => 'node',
+    'base_table' => 'node',
+    'entity_id_column' => 'type',
+  );
+  $default_relationships[] = array(
+    'description' => t('taxonomy terms'),
+    'entity_type' => 'taxonomy_term_data',
+    'base_table' => 'taxonomy_term_data',
+    'entity_id_column' => 'tid',
+  );
+  $default_relationships[] = array(
+    'description' => t('users'),
+    'entity_type' => 'users',
+    'base_table' => 'users',
+    'entity_id_column' => 'uid',
+    'subscription_field' => 'recipient_uid',
+   );
+
+  foreach ($default_relationships as $data) {
+    $pseudo = str_replace(array(' ','-','.'), '_', $data['entity_type'] . '_' . $data['entity_id_column']);
+    $pseudo_sub ='subscriptions_'. $pseudo;
+
+    $views_data[$data['base_table']][$pseudo_sub]['relationship'] = array(
+      'title' => t('!desc subscriptions', array('!desc'=> $data['description'] )),
+      'label' => t('!desc subscriptions', array('!desc'=>$data['description'])),
+      'help' => 'Subscriptions by users on ' . $data['description'] . '.',
+      'base' => 'subscriptions',
+      'base field' => 'value',
+      'relationship field' => $data['entity_id_column'],
+      'handler' => 'views_handler_relationship',
+      'extra' => array(
+        array(
+          'field' => 'field',
+	  'operator' => '=',
+          'value' => $data['entity_id_column'],
+        ),
+      ),
+    );
+
+  }
+
+}
