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.
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 }
- Array of values — append
[n]to any field, e.g.tags:string[3]orscores:int(0..100)[5]. - Nested objects — wrap a sub-schema in braces, e.g.
user:{ name:name, email:email }. Objects nest, and{...}[n]makes an array of objects.
Supported types
- Identifiers —
uuid,int,float,bool,string - Numeric ranges —
int(lo..hi),float(lo..hi) - Choice —
enum(a|b|c)picks one of your options at random - People —
name,first_name,last_name,username,email,phone - Dates —
date(YYYY-MM-DD),datetime(ISO…Z) - Web / network —
url,domain,ipv4,mac,color - Place —
street,city,state,zip,country,lat,lng - Text —
word,words,words(n),sentence,paragraph
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=trueMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
