Infers a generator for each field from your keys and value patterns (a value like 42 for id stays an integer; a UUID string becomes a UUID), then generates more rows in the same shape. Load an example.
Supports the common subset: type, properties, required, items, enum, format, minimum/maximum, minItems/maxItems. No OpenAPI or $ref yet. Load an example.
address.city) and JSON-encodes arrays. For nested data, JSON or NDJSON keeps the structure.What this mock data generator does
This is a free, privacy-first tool for generating realistic test data without sending anything to a server. Unlike most generators, it focuses on coherence — the values in a row make sense together — and on reproducibility through a seed, so the same configuration always yields the same data for your tests and fixtures.
There are three ways to describe the shape you want:
- Field picker — add named fields and choose a generator for each (UUID, email, city, price, date, enum, and more), including nested objects and arrays.
- From sample JSON — paste a real object or array and the tool infers each field's generator from your keys and value patterns, then produces as many lookalike rows as you need. This is the fastest way to generate JSON from an example.
- From JSON Schema — paste a draft-07 schema (subset) and generate conforming data.
Coherent by design
Most fake-data tools generate each field independently, so you get a row where the name is "Alice Smith" but the email is "qz8@example.com" and the city, state, and ZIP belong to three different places. This tool keeps related fields consistent within each row:
email,username, andfullNamederive from that row's first and last name.city,state,zip,country, and latitude/longitude come from a single real location.updatedAtis always on or aftercreatedAt.
Reproducible with a seed
Type anything into the Seed box and generation becomes deterministic: the same schema and seed produce byte-identical output every time, on any machine. Leave the seed blank for fresh random data on each run. This makes the tool a good fit for snapshot tests and shareable fixtures.
Export formats
Export as a JSON array, NDJSON (one JSON object per line, ideal for log pipelines and bulk import), or CSV. CSV flattens nested objects into dot-notation columns and JSON-encodes arrays, so it is best for flat schemas — for nested data, prefer JSON or NDJSON.
Frequently Asked Questions
Is the mock data generated in my browser?
Yes. Everything runs client-side in JavaScript — your schema and any sample you paste never leave your device, it works offline once loaded, and there is no row cap or signup.
How do I generate JSON that matches my existing data?
Open the From sample JSON tab, paste one object or an array of objects, and the tool infers a field-by-field schema from your keys and value patterns, then generates as many new rows in the same shape as you want.
What is a seed and why would I use one?
A seed is any text you type into the seed box. With a seed set, the generator is fully deterministic: the same schema and seed always produce byte-identical output, which is ideal for reproducible tests and fixtures. Leave it blank for fresh random data each run.
Can I export NDJSON or CSV instead of a JSON array?
Yes. Choose JSON array, NDJSON (one object per line), or CSV from the format selector. CSV flattens nested objects into dot-notation columns (address.city) and JSON-encodes arrays, so it is best suited to flat schemas.
Is the generated data coherent — does the email match the name?
Yes. A coherence layer keeps related fields consistent within each row: the email and username derive from that row's first and last name, city/state/zip/country come from one real location tuple, and updatedAt never falls before createdAt.