Paste the schema, render the form and fill in the fields. Check the reported input issues before copying or downloading the JSON payload.
Runs locally in your browserPaste a JSON Schema and the page renders an editable form beside it: nested objects become fieldsets, strings and numbers become inputs, enums and const values become selects, booleans become checkboxes and arrays become JSON text areas. Constraints carried by the schema — required, minLength, maxLength, pattern, minimum, maximum, multipleOf and the email format — are attached to the matching fields.
The payload panel is rebuilt on every keystroke, so you see the JSON while you type. Nothing is uploaded: the pasted schema and the entered values stay in the tab, no request carries them, and the tool keeps working offline once the page has loaded.
$ref pointers into the pasted document are followed — both #/definitions/... and #/$defs/... — and allOf members that are object schemas are merged into one fieldset. Arrays are typed as JSON in a text area, with the expected shape shown by items.
Recursive $ref chains, oneOf / anyOf / not and schemas that accept any value are not expanded into widgets; those fields take raw JSON and are checked only for being valid JSON. additionalProperties, dependencies, if/then/else and the other conditional keywords are not applied.
Checks run in the browser as you type: missing required values, string lengths, patterns, numeric ranges and steps, the email format, and invalid JSON in array or raw fields. Every row names the dotted field path, so nested fields such as settings.retentionDays stay readable.
This is a form builder, not a complete JSON Schema validator, and it never rewrites your input: the exported payload mirrors exactly what you entered, including values the list still flags. Review the issues before you ship the JSON.
The schema and the answers never leave the browser tab — DevTools shows that no request carries them. Copy uses the clipboard, Download writes a local file, and Clear removes both the schema and the entered values.
Arrays stay a single JSON text area rather than a repeating row control, so what you type is exactly what the payload receives.