Your data never leaves your browser — everything runs client-side.
Supported keywords (Draft-07 subset)
Any type: type, enum, const, allOf, anyOf, oneOf, not, if / then / else, $ref (document-local
# and #/… JSON Pointers only — keywords beside a $ref are ignored, as Draft-07
requires), true / false schemas.
Numbers: multipleOf, maximum, exclusiveMaximum, minimum, exclusiveMinimum (numeric form; the Draft-04 true/false form is ignored).
Strings: maxLength, minLength (counted in code points), pattern (unanchored, ECMAScript syntax), format — when the box above is ticked: date-time, date, time, email, hostname, ipv4, ipv6, uri, uri-reference, regex, json-pointer, relative-json-pointer. Other formats are annotations and are not checked.
Arrays: items (schema or tuple), additionalItems, maxItems, minItems, uniqueItems, contains.
Objects: properties, patternProperties, additionalProperties, required, maxProperties, minProperties, dependencies (both forms), propertyNames.
Ignored: $id, $schema, $comment, title, description, default, examples, readOnly, writeOnly,
contentMediaType, contentEncoding, and any keyword not listed here — the status line names every ignored
keyword it meets (and every known keyword whose value has the wrong shape), so a silently skipped rule
never looks like a pass. Remote and $id-based references are not resolved. Validation runs in
a worker and is stopped after 3 seconds, so a pattern that backtracks catastrophically cannot freeze the
page.