diff --git a/jsonschema/jsonschema-tests.ts b/jsonschema/jsonschema-tests.ts
new file mode 100644
index 0000000000..e8acc29886
--- /dev/null
+++ b/jsonschema/jsonschema-tests.ts
@@ -0,0 +1,6 @@
+///
+import { Validator, IJSONSchemaValidationError } from "jsonschema";
+
+const v: Validator = new Validator();
+
+const validationResults: { errors: Array } = v.validate("Smith", {"type": "string"});
diff --git a/jsonschema/jsonschema.d.ts b/jsonschema/jsonschema.d.ts
new file mode 100644
index 0000000000..1c2f0f915e
--- /dev/null
+++ b/jsonschema/jsonschema.d.ts
@@ -0,0 +1,103 @@
+// Type definitions for jsonschema
+// Project: https://github.com/tdegrunt/jsonschema
+// Definitions by: Vlado Tešanovic
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+declare module "jsonschema" {
+
+ export interface IJSONSchemaResult {
+ errors: Array;
+ instance: any;
+ arguments: Array<{}>;
+ propertyPath: string;
+ name: string;
+ schema: {};
+ throwError: any;
+ disableFormat: boolean;
+ }
+
+ export interface IJSONSchemaValidationError {
+ message: string;
+ property: string;
+ stack: string;
+ schema: {};
+ name: string;
+ instance: any;
+ argument: {};
+ }
+
+ export interface IJSONSchemaOptions {
+ propertyName?: string;
+ base?: string;
+ }
+
+ /**
+ * How to;
+ *
+ * const v: Validator = new Validator();
+ *
+ * const schema: {} = {
+ * "type": "object",
+ * "properties": {
+ * "key": {
+ * "type": "string",
+ * "required": true
+ * },
+ * "value": {
+ * "type": "string",
+ * "required": true
+ * }
+ * }
+ * };
+ *
+ * const validationResults: { errors: Array } =
+ * v.validate({ key: "Name", value: "A10" }, {"type": "string"});
+ *
+ */
+ export class Validator {
+
+ /**
+ * Creates a new Validator object
+ * @name Validator
+ * @constructor
+ */
+ new(): this;
+
+ /**
+ * Validates instance against the provided schema
+ * @param instance
+ * @param schema
+ * @param [options]
+ * @param [ctx]
+ * @return {Array}
+ */
+ validate(instance: any, schema: {}, options?: IJSONSchemaOptions, ctx?: {}): IJSONSchemaResult;
+
+ /**
+ * Adds a schema with a certain urn to the Validator instance.
+ * @param schema
+ * @param urn
+ * @return {Object}
+ */
+ addSchema(schema: {}, urn: string): {};
+
+ /**
+ * Add Sub schema to existing one
+ * @param baseuri
+ * @param schema
+ */
+ addSubSchema(baseuri: string, schema: {}): {}
+
+ /**
+ * Sets all the schemas of the Validator instance.
+ * @param schemas
+ */
+ setSchemas (schemas: Array<{}>): void;
+
+ /**
+ * Returns the schema of a certain urn
+ * @param urn
+ */
+ getSchema(urn: string): {};
+ }
+}
+