diff --git a/core/modules/filter/config/schema/filter.schema.yml b/core/modules/filter/config/schema/filter.schema.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a8e3db4c41ab629162ec2978cfb6c39f613fa362
--- /dev/null
+++ b/core/modules/filter/config/schema/filter.schema.yml
@@ -0,0 +1,46 @@
+# Schema for the configuration files of the Filter module.
+
+filter.settings:
+  type: mapping
+  label: 'Filter settings'
+  mapping:
+    fallback_format:
+      type: string
+      label: 'Fallback text format'
+    always_show_fallback_choice:
+      type: boolean
+      label: 'Always show fallback choice'
+
+filter.format.*:
+  type: mapping
+  label: 'Text formats'
+  mapping:
+    format:
+      type: string
+      label: 'Machine name'
+    name:
+      type: string
+      label: 'Name'
+    status:
+      type: boolean
+      label: 'Enabled'
+    weight:
+      type: integer
+      label: 'Weight'
+    roles:
+      type: sequence
+      label: 'Roles'
+      sequence:
+        - type: string
+          label: 'Role'
+    cache:
+      type: boolean
+      label: 'Cache'
+    filters:
+      type: sequence
+      label: 'Enabled filters'
+      sequence:
+        - type: filter
+    langcode:
+      type: string
+      label: 'Language'
diff --git a/core/modules/system/config/schema/system.data_types.schema.yml b/core/modules/system/config/schema/system.data_types.schema.yml
index ac9bc78f2f89978f89ff75d35825b7ea7d19f91d..422245b7cf7fb5e515f203934d206af176530a81 100644
--- a/core/modules/system/config/schema/system.data_types.schema.yml
+++ b/core/modules/system/config/schema/system.data_types.schema.yml
@@ -61,3 +61,15 @@ mail:
     "body":
       type: text
       label: "Body"
+
+# Filter with module and status.
+filter:
+  type: mapping
+  label: 'Filter'
+  mapping:
+    module:
+      type: string
+      label: 'Module'
+    status:
+      type: boolean
+      label: 'Enabled'