Mock data generator

Turn a JSON Schema into realistic, seeded sample records.

About & FAQ ↓
JSON Schema
Waiting for input.
Mock data

Respects enum, const, formats, numeric and length bounds, required vs optional, and $ref to local pointers.

Reference
Mock data generator

About the mock data generator

Tests and demos need data that looks real without being real. Feed this a JSON Schema and it produces records that satisfy it — respecting enums, const, numeric and length bounds, and formats such as email, uuid and date-time. Field names are used as hints too, so a field called "city" gets a city rather than a random word. The seed makes it repeatable: the same schema and seed always produce the same data, which is what makes the output usable in a committed fixture.

01

Schema in, data out

Feed it a JSON Schema and get records that satisfy it, ready for tests, demos and stubs.

02

Repeatable by seed

The same schema and seed always produce the same data, so output can live in a committed fixture.

03

Field-aware values

A field called email looks like an email, city like a city, createdAt like a timestamp.

04

Constraints respected

Enums, const, numeric and length bounds, array sizes, required versus optional, and local $ref.

How to use it

  1. Paste a JSON Schema (or generate one first with the schema generator).
  2. Choose how many records, the array size, and whether optional fields are included.
  3. Change the seed for different data, or keep it to reproduce the same set exactly.

Questions

Why does it produce the same data every time?

By design — the generator is seeded rather than random. Change the seed for a different set; keep it to get a byte-identical result you can commit as a test fixture.

Does it respect my constraints?

It respects enum, const, formats, minimum/maximum, minLength/maxLength, minItems/maxItems, uniqueItems, required versus optional, and $ref to local pointers. Regex patterns are not solved — a pattern-constrained string gets a placeholder.

Can I generate a large dataset?

Up to a hundred records per run in the picker. For more, generate and repeat with different seeds, or convert the result to JSONL for line-based tooling.