Developer Tools
JSON Schema Faker
Paste a JSON Schema and generate realistic sample JSON that validates against it. Honours types, formats, enums, required, and local $ref. No upload.
Load a sample schema
Schema parsed. Adjust the options below, then copy the generated JSON.
Sample JSON13 lines
{
"id": "8ff49b6f-7726-4327-86c4-3069c43a8c3b",
"name": "Hana Boyd",
"email": "priya.reyes@example.net",
"role": "admin",
"active": true,
"age": 48,
"createdAt": "2025-07-04T06:02:37Z",
"tags": [
"Consectetur quis dolore do adipiscing",
"Veniam veniam et veniam"
]
}Generation options
Randomness
Same schema and seed always give the same data.Schema keywords honoured
The generator reads the draft-07 keywords most schemas actually use and falls back to readable placeholders for anything it does not recognise.
- String formats become realistic values: email, uri, uuid, date, date-time, ipv4, hostname, and color.
- enum and const are honoured exactly, and a provided default or examples value is used as is.
- Numbers respect minimum, maximum, and multipleOf; arrays respect minItems and maxItems.
- Local $ref to definitions or $defs is resolved. Remote refs are not fetched, so they show a labelled placeholder.
How to use
- Paste your JSON Schema into the input, or load one of the sample schemas (User, Order with $ref, Event) to see the output shape.
- Read the generated sample JSON on the right. It updates live as you edit the schema or change options.
- Toggle Include optional fields off to emit only the properties listed in required, or leave it on for a fully populated document.
- Set Array length for arrays that do not specify minItems, and set Number of records to emit a single object or an array of many.
- Press Shuffle values for a fresh deterministic draw; the same schema and seed always reproduce the same data.
- Copy the JSON for your mock, fixture, or request body. The schema and the output never leave your browser.
About this tool
JSON Schema Faker reads a JSON Schema and produces a sample JSON document that fits it, which is the exact inverse of inferring a schema from data. Where a schema generator looks at example data and writes the rules, this looks at the rules and writes example data, so you can seed an API mock, build a test fixture, or fill in a request body without typing it out by hand. The generator honours the draft-07 keywords that real, hand-written schemas actually use. Object schemas read properties, required, and additionalProperties, and you can choose whether optional properties are included or whether the output is trimmed to only the required ones. Array schemas read items, minItems, and maxItems, including tuple form where items is a list of per-position schemas. enum picks one of its members, const is emitted exactly, and a default or examples value supplied in the schema is used verbatim because that is the most faithful sample the author could give. Numbers respect minimum, maximum, and multipleOf, and integers stay whole; strings respect minLength and maxLength. String format is where the output starts to look real rather than like filler: email, uri or url, uuid, date, date-time, time, ipv4, hostname, and color each produce a value of the right shape, with emails landing on the reserved example domains so nothing resembles a real address. Even without a format, the field name guides the value, so a property called name reads like a name, email like an email, id like an identifier, and city like a city. The combinator keywords are supported too: allOf is shallow-merged so the required properties from every fragment appear, while oneOf and anyOf pick a single branch. Local references are resolved, both #/definitions/Name and #/$defs/Name, so schemas that factor shared shapes into definitions still fill out completely; remote references are not fetched because the tool runs entirely offline, so they show a clearly labelled placeholder instead. Generation is deterministic by default, which is what you want for a fixture you intend to commit: the same schema and the same options always produce the same document, and diffs stay clean. A small seeded random source drives every choice, and a Shuffle control bumps the seed when you want a different draw. You can ask for a single record or many at once, in which case the output is wrapped in an array, and you can set how long arrays should be when the schema does not pin a length. The result is pretty-printed, with a line count and a one-click copy. Everything runs in your browser; the schema you paste is never uploaded, logged, or stored.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
JSON Schema Generator
Infer a JSON Schema document (Draft 7 or 2020-12) from any JSON value.
Open tool
DeveloperMock Data Generator
Build custom rows of fake test data and export to JSON, CSV, SQL, or TS.
Open tool
ConverterJSON Schema to TypeScript Converter
Turn any JSON Schema document into TypeScript interfaces and types.
Open tool
DeveloperJSON Formatter
Format, minify, and validate JSON in your browser.
Open tool
DeveloperJSON Validator
Strict JSON validation with line and column errors and human-readable hints.
Open tool
DeveloperJSON to TypeScript Converter
Generate TypeScript interfaces or types from any JSON value with full inference.
Open tool