diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d7_filter_format.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d7_filter_format.yml
new file mode 100755
index 0000000..126fbfc
--- /dev/null
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d7_filter_format.yml
@@ -0,0 +1,44 @@
+id: d7_filter_format
+label: Drupal 7 filter format configuration
+migration_groups:
+  - Drupal 7
+source:
+  plugin: d7_filter_format
+process:
+  format:
+    -
+      plugin: machine_name
+      source: name
+    -
+      plugin: dedupe_entity
+      entity_type: filter_format
+      field: format
+      length: 32
+  name: name
+  cache: cache
+  filters:
+    plugin: iterator
+    source: filters
+    key: @id
+    process:
+      id:
+        plugin: static_map
+        default_value: filter_null
+        source:
+          - module
+          - name
+        map:
+          filter:
+            filter_html: filter_html
+            filter_autop: filter_autop
+            filter_url: filter_url
+            filter_htmlcorrector: filter_htmlcorrector
+            filter_html_escape: filter_html_escape
+          php:
+            - php_code
+      settings: settings
+      status:
+        plugin: default_value
+        default_value: true
+destination:
+  plugin: entity:filter_format
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/FilterFormat.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/FilterFormat.php
new file mode 100755
index 0000000..3ff50dd
--- /dev/null
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d7/FilterFormat.php
@@ -0,0 +1,112 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal\Plugin\migrate\source\d7\FilterFormat.
+ */
+
+namespace Drupal\migrate_drupal\Plugin\migrate\source\d7;
+
+use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+use Drupal\migrate\Row;
+
+
+/**
+ * Drupal 7 role source from database.
+ *
+ * @MigrateSource(
+ *   id = "d7_filter_format"
+ * )
+ */
+class FilterFormat extends DrupalSqlBase {
+
+  /**
+   * The format current.
+   *
+   * @var int
+   */
+  protected $format_current;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+     $query = $this->select('filter_format', 'f')
+      ->fields('f', array('format', 'name', 'cache','status','weight'))
+      ->condition('name','%Plain text%','NOT LIKE')
+      ->orderBy('format');
+    return $query;
+   }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    return array(
+      'format' => $this->t('Format ID.'),
+      'name' => $this->t('The name of the filter format.'),
+      'cache' => $this->t('Flag to indicate whether format is cachable. (1 = cachable, 0 = not cachable).'),
+      'status'=>$this->t('The status of the filter format'),
+      'weight'=>$this->t('The weight of the filter format'),
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function prepareRow(Row $row) {
+    $filters = array();
+    $format_original = $row->getSourceProperty('format');
+
+    if(is_numeric($format_original)){
+       $this->format_current = $format_original;
+       $new_format = $this->format_current;
+    }
+    else{
+     $this->format_current++;
+     $new_format = $this->format_current;
+    }
+    $original_name = $row->getSourceProperty('name');
+   // set plugins allowed on drupal8
+    $filters_allowed  = array('filter_html','filter_autop','filter_url','filter_htmlcorrector','filter_html_escape','php_code');
+    $filter_default = array('module'=>'filter_null','name'=>'filter_null','weight'=>'0','status'=>'1','settings'=>'a:1:@s:17:"filter_url_length";s:2:"72');
+
+    // Find filters for this row.
+    $results = $this->database
+      ->select('filter', 'f', array('fetch' => \PDO::FETCH_ASSOC))
+      ->fields('f', array('module', 'name', 'weight', 'status','settings'))
+      ->condition('format', $format_original)
+      ->condition('status',1)
+      ->execute();
+
+    foreach ($results as $raw_filter) {
+      $filter = array(
+        'module' => $raw_filter['module'],
+        'name' => $raw_filter['name'],
+        'weight' => $raw_filter['weight'],
+        'status' => $raw_filter['status'],
+        'settings' => $raw_filter['settings'],
+      );
+       // Load only plugins allowed on drupal8
+      if (in_array($filter['name'], $filters_allowed)){
+          $filters[] = $filter;
+      }
+    }
+     if(empty($filters)){
+      $filters[] = $filter_default;
+    }
+    $row->setSourceProperty('format',$new_format);
+    $row->setSourceProperty('filters', $filters);
+    $row->setSourceProperty('name','Drupal 7: ' . $original_name);
+    return parent::prepareRow($row);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    $ids['format']['type'] = 'integer';
+    return $ids;
+  }
+
+}
