Neatbo.

Validate local supplied schema constraints

Prepare the instance and authoritative schema separately, distinguish failed validation from refused constraints, and save every diagnostic.

Validate against schema

Check supplied Draft 2020-12 constraints, inspect every supported rule failure and save the complete validation report.

Distinguish evaluation from refusal
OutcomeInterpretationNext step
Valid instanceThe instance satisfies the supported supplied constraintsKeep the instance, schema and complete report
Invalid instanceSupported constraints were evaluated and failedReview every instance location and evaluation path
Refused input or profileThe request did not complete validationCorrect syntax or unsupported constraints before rerunning

Choose supported inputs deliberately

The current limits, controls and supported profile are listed in the tool reference on this page. A syntactically valid input can still be refused for profile, source-path work or complete-output capacity.

The selected file is read only after you click Run. Reading, checks and processing share one 10-second task period.

Each role uses its selected mode only. Empty or invalid active files never fall back to pasted text.

Recover and save

Move object rules under array items when intended; correct syntax or unsupported constraints, then rerun. A valid result means this instance satisfies the supported supplied schema.

Keep complete evidence

This is a bounded preview. Full diagnostics, matches and source data remain in the complete copy and downloads.

The complete report retains every diagnostic entry and its multiplicity; repeated entries are not deduplicated.

Technical diagnostic text is original report data. Interface labels are translated; the report is not rewritten.

  • Check that each diagnostic points to the intended instance value and schema rule.
  • Keep repeated parent and leaf diagnostics rather than reducing them to one message.
  • Save validation-report.json or the complete report copy alongside the supplied instance and schema.

Recover without switching sources silently

Move object rules under array items when intended; correct syntax or unsupported constraints, then rerun. A valid result means this instance satisfies the supported supplied schema. After cancellation, rerun the unchanged active sources in a fresh request. Refused inputs and timed-out requests do not yield partial artifacts.

Cancelled or timed-out work produces no complete artifact. The next run uses the same active roles unless you deliberately edit or change them.

References

  • Supplied schema and renamed-field question

    The complete demonstration is a separately normalized replay: decoded duplicates were resolved last-wins and trailing commas were removed. The unchanged post is refused; its array rules were moved under items as the author intended.

  • JSON Schema Draft 2020-12

    Background specification; the supported static profile is narrower and does not claim full conformance.

Tools in this category

Expand a tool to see its steps, options and supported formats, then open its workspace.

Validate a JSON instance against a schemaCheck supplied Draft 2020-12 constraints, inspect every supported rule failure and save the complete validation report.

Check supplied Draft 2020-12 constraints, inspect every supported rule failure and save the complete validation report.

Steps

  1. Provide the instance and the authoritative schema in their separate roles.
  2. Choose the active source mode for each role. File selection shows metadata only; click Run to read and process.
  3. Validate; distinguish a refused schema/profile from a successfully evaluated invalid instance.
  4. Read instance pointers and evaluation paths. Save validation-report.json or copy the complete report.

Capabilities and limits

  • Instance up to 1 MiB, 50,000 value nodes and depth 64; schema up to 128 KiB, 5,000 nodes, depth 32 and 1,000 schema locations. Node depth starts at zero.
  • Fixed Draft 2020-12 static subset: types, const/enum, required and dependencies, properties and arrays, numeric/string rules, applicators and acyclic same-document JSON Pointer references. Unknown or unsupported keywords stop the run.
  • All JSON numeric tokens must be mathematically integral and within ±9,007,199,254,740,991. Decimal notation such as 1.00 is allowed when its exact value is integral; fractional and rounded unsafe values are refused.
  • Flat ECMA262-u patterns up to 128 UTF-8 bytes allow literals, character classes, anchors, dot and simple quantifiers. Grouping, alternation, backreferences and alphabetic shorthand escapes except f/n/r/t/v are refused. No remote refs, anchors, dynamic refs, unevaluated rules, format or custom validation code.
  • Unsupported schema vocabulary/content keywords, $anchor/$dynamicAnchor/$dynamicRef, unevaluated rules, format, nested $id, remote or percent/anchor references and recursive local references refuse the run. This static profile is not full Draft 2020-12 conformance.
  • Validation and deep-comparison calls together allow 2,000,000; all attempted distinct diagnostics allow 20,000 and 8 MiB of compact diagnostic work. The complete exported report allows 8 MiB. Any exceeded limit refuses the complete result.
  • Cumulative schema-location JSON Pointer paths allow 8 MiB. Schema location count and path bytes are checked before path allocation; a syntactically valid oversized profile is refused as a complete result.
  • Each role uses either its pasted value or exactly one selected UTF-8 file; clear the selected file to paste. An empty or invalid active file never falls back to hidden pasted text. A filename label allows 512 UTF-8 bytes.
  • One leading BOM is removed and recorded, including pasted input. Invalid UTF-8, decoded duplicate JSON keys and unpaired Unicode surrogates are refused. Inputs stay in this browser.
  • A fixed 10-second whole-task deadline or cancellation returns no partial export. Rerun after correcting the input; a fresh Worker starts each job.
  • Every retained diagnostic entry, including parent wrappers and repeated four-field entries, stays in the complete report. keywordLocation is an evaluation path with local reference transitions, not an absolute resolved source pointer. Technical error text remains unchanged.
  • File contents are read only after Run, within the same fixed 10-second period as engine loading, checks and processing. Cancelling or exceeding any limit publishes no partial copy or download. Only the current tab holds the inputs in bounded memory.
  • The screen uses a bounded preview. Complete copied data and downloadable artifacts keep all diagnostics, ordered matches and source identity. Files and names are processed locally; no content upload or remote reference fetch.
Open Validate a JSON instance against a schema →