{ "title": "Wappalyzer schema", "definitions": { "non-empty-non-blank-string": { "type": "string", "pattern": "^(?!\\s*$).+" } }, "type": "object", "additionalProperties": { "type": "object", "additionalProperties": false, "required": ["cats","website"], "properties": { "description": { "type": "string", "pattern": "^.{0,500}$" }, "oss": { "type": "boolean" }, "saas": { "type": "boolean" }, "pricing": { "type": "array", "items": { "type": "string", "pattern": "^(low|mid|high|freemium|poa|payg|onetime|recurring)$" } }, "cats": { "type": "array", "items": { "type": "number" }, "minItems": 1 }, "cpe": { "type": "string", "pattern": "cpe:2.3:(a|h|o):[^*:]+:[^:]+:\\*:\\*:\\*:\\*:\\*:[^:]+:\\*:\\*" }, "cookies": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "js": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "dom": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" }, { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { } } } ] }, "dns": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { } } }, "headers": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "html": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "text": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "css": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "robots": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "probe": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "certIssuer": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "excludes": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "implies": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "requires": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "requiresCategory": { "oneOf": [ { "type": "array", "items": { "type": "number" } }, { "type": "number" } ] }, "meta": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "scriptSrc": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "scripts": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "url": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] }, "website": { "$ref": "#/definitions/non-empty-non-blank-string" }, "icon": { "$ref": "#/definitions/non-empty-non-blank-string" }, "xhr": { "oneOf": [ { "type": "array", "items": { "$ref": "#/definitions/non-empty-non-blank-string" } }, { "$ref": "#/definitions/non-empty-non-blank-string" } ] } } } }