diff --git a/relation_ui.module b/relation_ui.module
index cb041c3..430d548 100644
--- a/relation_ui.module
+++ b/relation_ui.module
@@ -112,6 +112,12 @@ function relation_ui_menu() {
     'description' => 'View, edit and delete all the available relations on your site.',
     'type' => MENU_LOCAL_TASK,
   );
+  $items['relation/endpoints_type/autocomplete'] = array(
+    'type' => MENU_CALLBACK,
+    'access arguments' => array('administer relations'),
+    'file' => 'relation_ui.module',
+    'page callback' => 'relation_ui_endpoints_type_autocomplete',
+  );
   return $items;
 }
 
@@ -434,6 +440,80 @@ function relation_ui_generate_form_submit($form, &$form_state) {
 }
 
 /**
+ * Filter form for relation administration list.
+ */
+function relation_ui_filter_form($form, $form_state) {
+  if (isset($_SESSION['relation_filters']['bundle'])) {
+    $selected_bundles = $_SESSION['relation_filters']['bundle'];
+  }
+  $bundles = array('all' => t('All'));
+  $types = relation_get_types();
+  foreach ($types as $name => $relation) {
+    if (array_key_exists('all', $bundles)) {
+      unset($bundles['all']);
+    }
+    $bundles[$name] = $relation->label;
+  }
+  $form['filters'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Show only items where'),
+    '#theme' => 'exposed_filters__relation',
+  );
+  $form['filters']['bundle'] = array(
+    '#title' => t('relation type'),
+    '#type' => 'select',
+    '#default_value' => isset($selected_bundles) ? array_keys($selected_bundles) : NULL,
+    '#multiple' => TRUE,
+    '#options' => $bundles,
+    '#size' => (count($bundles) < 10) ? count($bundles) : 10,
+  );
+  $form['filters']['endpoints_entity_type'] = array(
+    '#title' => t('endpoints entity type'),
+    '#type' => 'textfield',
+    '#autocomplete_path' => 'relation/endpoints_type/autocomplete'
+  );
+  $form['filters']['endpoints_entity_id'] = array(
+    '#title' => t('endpoints entity ID'),
+    '#type' => 'textfield'
+  );
+  $form['filters']['actions'] = array(
+    '#type' => 'actions',
+    '#attributes' => array('class' => array('container-inline')),
+  );
+  $form['filters']['actions']['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Filter'),
+  );
+  $form['filters']['actions']['reset'] = array(
+    '#type' => 'submit',
+    '#value' => t('Reset'),
+  );
+  $form['#submit'] = array('relation_ui_filter_form_submit');
+  return $form;
+}
+
+function relation_ui_filter_form_submit($form, $form_state) {
+  if (!array_key_exists('all', $form_state['values']['bundle']) && $form_state['triggering_element']['#id'] != 'edit-reset') {
+    $_SESSION['relation_filters'] = $form_state['values'];
+  }
+  else {
+    unset($_SESSION['relation_filters']['bundle']);
+  }
+}
+
+/**
+ * Apply filters for relation administration filters based on session.
+ *
+ * @param $query
+ *   A SelectQuery to which the filters should be applied.
+ */
+function relation_ui_build_filter_query(SelectQueryInterface $query) {
+  if (!empty($_SESSION['relation_filters']['bundle'])) {
+    $query->condition('r.relation_type', array_keys($_SESSION['relation_filters']['bundle']), 'IN');
+  }
+}
+
+/**
  * Menu callback for admin/content/relation. Displays all relations on the site.
  */
 function relation_ui_admin_content() {
@@ -447,12 +527,16 @@ function relation_ui_admin_content() {
 
   // Grab all relations.
   $query = db_select('relation', 'r')->extend('PagerDefault')->extend('TableSort');
-  $query->fields('r', array('rid', 'relation_type'))
-    ->limit(50)
-    ->orderByHeader($header);
+  $query->fields('r', array('rid', 'relation_type'));
+  relation_ui_build_filter_query($query);
+  $query->limit(50)
+  ->orderByHeader($header);
   $relations = $query->execute();
 
-  return theme('relation_ui_admin_content', array('relations' => $relations, 'header' => $header));
+  $form = drupal_get_form('relation_ui_filter_form');
+  $filter_form = drupal_render($form);
+
+  return $filter_form . theme('relation_ui_admin_content', array('relations' => $relations, 'header' => $header));
 }
 
 /**
@@ -601,3 +685,11 @@ function relation_ui_theme() {
   );
   return $theme;
 }
+
+/**
+ * @TODO
+ */
+function relation_ui_endpoints_type_autocomplete($string = '') {
+  $matches = array(check_plain($string));
+  drupal_json_output($matches);
+}
