Mock Data Generator

Generate realistic, coherent fake JSON, NDJSON, or CSV — from a field picker, a pasted sample, or a JSON Schema. Everything runs in your browser.

100% client-side — your data never leaves your browser. Works offline. No row cap.
root = {

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.

CSV flattens nested objects into dot-notation columns (e.g. 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:

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:

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.