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.