{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Wappalyzer schema", "description": "This schema defines the information related to web based technologies for the purposes of identification (finger printing)", "examples": [ { "Example": { "description": "A short description of the technology.", "cats": [ 1 ], "cookies": { "cookie_name": "Example" }, "dom": { "#example-id": { "exists": "", "attributes": { "class": "example-class" }, "properties": { "example-property": "" }, "text": "Example text content" } }, "dns": { "MX": [ "example\\.com" ] }, "icon": "Example.svg", "cpe": "cpe:2.3:a:example:example:*:*:*:*:*:*:*:*", "js": { "Example.method": "" }, "excludes": [ "Example" ], "headers": { "X-Powered-By": "Example" }, "text": [ "\bexample\b" ], "css": [ "\\.example-class" ], "robots": [ "Disallow: /unique-path/" ], "implies": [ "PHP\\;confidence:50" ], "requires": [ "WordPress" ], "requiresCategory": [ 6 ], "meta": { "generator": "(?:Example|Another Example)" }, "probe": { "/path": "" }, "scriptSrc": [ "example-([0-9.]+)\\.js\\;confidence:50\\;version:\\1" ], "scripts": [ "function webpackJsonpCallback\\(data\\) {" ], "url": [ "example\\.com" ], "xhr": [ "example\\.com" ], "oss": true, "saas": true, "pricing": [ "mid", "freemium" ], "website": "https://example.com", "certIssuer": "Example" } } ], "$defs": { "non-empty-non-blank-string": { "type": "string", "pattern": "^(?!\\s*$).+" } }, "type": "object", "additionalProperties": { "additionalProperties": false, "required": [ "cats", "website" ], "properties": { "description": { "type": "string", "pattern": "^.{0,550}$" }, "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": "^[Cc][Pp][Ee]:(\/|\\d+\\.\\d+)[^:]*(:?[^:]*){0,11}$" }, "cookies": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "js": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "dom": { "oneOf": [ { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, { "$ref": "#/$defs/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": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "text": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "css": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "robots": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "probe": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "certIssuer": { "$ref": "#/$defs/non-empty-non-blank-string" }, "excludes": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "implies": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "requires": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "requiresCategory": { "type": "array", "items": { "type": "number" } }, "meta": { "type": "object", "additionalProperties": false, "patternProperties": { "^.+$": { }, "additionalProperties": { "type": "string" } } }, "scriptSrc": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "scripts": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "url": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } }, "website": { "$ref": "#/$defs/non-empty-non-blank-string" }, "icon": { "$ref": "#/$defs/non-empty-non-blank-string" }, "xhr": { "type": "array", "items": { "$ref": "#/$defs/non-empty-non-blank-string" } } } } }