diff --git a/quality-metrics/broker-component/data_validator.py b/quality-metrics/broker-component/data_validator.py
new file mode 100644
index 0000000..a67b86b
--- /dev/null
+++ b/quality-metrics/broker-component/data_validator.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3
+
+__copyright__ = """
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+ """
+
+""" data_validator.py:
+
+    JSON data validator class. This class is aimed at validating the JSON
+    data sent in curl command with the JSON schema, so that before pushing
+    the data to the database, it is ensured that required data is received
+    in agreed-upon format.
+
+"""
+
+import sys
+import json
+import os.path
+import constants
+import jsonschema
+from jsonschema import validate
+
+
+class DataValidator:
+    @staticmethod
+    def validate_request_sanity(data_dict):
+        """
+            Input sanitisation/authentication in the application flow
+
+            :param: data_dict: Data to be validated
+            :return: Validation info and error code
+        """
+        if 'metrics' in data_dict['metadata'] and 'api_version' in data_dict and \
+                data_dict['metadata']['metrics'] in constants.VALID_METRICS:
+            if data_dict['api_version'] not in constants.SUPPORTED_API_VERSIONS:
+                return 'Incorrect API version', 401
+
+            filename = 'metrics-schemas/' + data_dict['metadata']['metrics'] + '_schema_' + \
+                data_dict['api_version'].replace(".", "_") + '.json'
+            if not os.path.exists(filename):
+                return filename + ' does not exist', 501
+
+            try:
+                with open(filename, 'r') as handle:
+                    parsed = json.load(handle)
+                validate(data_dict, parsed)
+                sys.stdout.write('Record OK\n')
+                return 'OK', 204
+            except jsonschema.exceptions.ValidationError as ve:
+                sys.stdout.write('Record ERROR\n')
+                sys.stderr.write(str(ve) + "\n")
+                return 'Incorrect JSON Schema: ' + \
+                    str(ve).split('\n', 1)[0], 400
+        else:
+            return 'Invalid schema - metrics or api version missing\n', 401
