Mock Data Generator

Turn a compact shorthand schema into realistic mock JSON. Name your own fields, pick a type for each (with array counts and nested objects), choose how many records, and use a seed to reproduce. Runs entirely in your browser, no server, no sign-up.

Generated JSON

About this tool

The mock data generator turns a compact shorthand schema — the field names and types you define — into realistic-looking mock JSON. It is built for the moment you need a fixture, a stubbed API response, or seed data shaped exactly like your real model, without writing a generator by hand or exposing real people's information. Every value is synthetic placeholder data.

How the schema works

Write a comma- or newline-separated list of field:type pairs. You choose the field names; each maps to a type that controls the generated value:

id:int(1..1000),
name:name,
email:email,
signup:date,
roles:enum(admin|editor|viewer)[2],
profile:{ city:city, country:country, lat:lat, lng:lng }

Supported types

One object or many

Leave Records at 1 for a single JSON object. Set it higher (up to 1000) and the output becomes a JSON array of that many records — perfect for seeding a list endpoint or a table.

Reproducible with a seed

Set the seed to any non-zero number and you'll get the exact same data every time — handy for deterministic tests, fixtures, and code review. Leave it at 0 to get fresh data on each run.

Everything runs locally in your browser via WebAssembly — your schema and the generated data never leave your device.

FAQ

How many records can I generate at once?

Up to 1000 per run (the Records field). Asking for more returns an error rather than a partial result. With Records at 1 you get a single JSON object; anything higher wraps the output in a JSON array.

How do I get the exact same data every time?

Set Seed to any non-zero number — the generator is fully deterministic for a given schema + seed, so fixtures stay stable across runs and machines. Seed 0 (the default) produces fresh data on every run.

What happens if I misspell a type in the schema?

You get an error that names the unknown type and lists every valid one — the tool never silently guesses. Other schema mistakes are caught the same way: an empty enum(), a field with no type, unbalanced { braces, or missing int(lo..hi) bounds each produce a specific message.

How deeply can I nest objects?

Sub-schemas in braces (e.g. user:{ profile:{ city:city } }) can nest up to 8 levels deep, and {...}[n] makes an array of objects at any level. Deeper nesting is rejected with an error.

Is any of the generated data real?

No — every name, email, address, and phone number is synthetic placeholder data assembled from word lists, never sampled from real people. Generation happens in your browser, so nothing you type is uploaded.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool mock-data-generator "id:int(1..1000), name:name, email:email, roles:enum(admin|user)[2]"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/mock-data-generator/?schema=id%3Aint%281..1000%29%2C%20name%3Aname%2C%20email%3Aemail%2C%20roles%3Aenum%28admin%7Cuser%29%5B2%5D&count=1&seed=0&pretty=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.