Mock Data Generator
Schema-driven mock data in JSON, CSV, or SQL. Optional seed makes output byte-for-byte reproducible across runs.
About this ToolHow it works, benefits & use casesTap to collapse
Define a schema field by field and generate realistic fake records in JSON, CSV, or SQL INSERT format. Each field has a name and one of twelve types — string, number, boolean, email, url, uuid, date, name, phone, address, company, or lorem — and the generator fills every row with type-appropriate values (UUID v4s, developer-themed names like "Ada Lovelace", emails, phone numbers, US-style addresses, and ISO dates). Set the record count from 1 up to 1,000. The standout feature is the optional seed: leave it blank for fresh random data each run, or enter a number (or click the dice to randomize one) to get byte-for-byte identical output every time — driven by a deterministic mulberry32 PRNG, which also keeps server-rendered previews stable. A stats strip shows the row count, field count, output size in bytes, and whether the run was seeded. Output streams live and can be copied, downloaded with the right extension, or shared.
How to Use
- 1Set the number of Records (1–1,000) and choose an Output format: JSON, CSV, or SQL INSERT.
- 2Build your schema row by row — type a field name and pick its type — using "Add field"; remove rows with the trash button.
- 3Optionally enter a Seed for reproducible output, or click the dice to generate a random seed; leave it blank for fresh data each run.
- 4Click "Generate mock data" to produce the records and update the live preview.
- 5Check the stats (rows, fields, size, seeded/random), then copy, download, or share the output.
Key Benefits
- Twelve field types: string, number, boolean, email, url, uuid, date, name, phone, address, company, lorem
- Export as JSON, CSV (with quoted strings), or SQL INSERT statements
- Seeded mode gives byte-for-byte reproducible data via a mulberry32 PRNG
- Generate up to 1,000 records per run
- UUID v4 generation and realistic, developer-themed sample values
- Live stats: row count, field count, output byte size, and seed state
- Schema is captured in a shareable URL; format/count/seed persist locally
Common Use Cases
- Seeding a development database with INSERT statements that match your columns
- Generating fixture data for tests that must be identical across runs (use a seed)
- Producing a CSV of fake users to import into a spreadsheet or test pipeline
- Building a JSON array to stub an API response while the backend is unfinished
- Sharing an exact schema with a teammate via the encoded URL
Fresh each run
Schema(3 fields)
Configure the schema above.
Was this tool helpful?
Share Your Experience
Help others discover this tool!
Related tools
- JSON FormatterFormat and validate JSON with syntax highlighting
- JSON to TypeScriptGenerate TypeScript interfaces from JSON
- Random User GeneratorReproducible seeded fake user profiles with locales and field selection; export JSON, NDJSON, CSV, SQL, or TypeScript
- Changelog GeneratorGenerate changelog from Git commit history
- Component Name GeneratorTurn a description into ranked, kind-aware component names with a file scaffold and a name validator (casing, collisions, clarity)
- Heroku Procfile GeneratorBuild a Heroku Procfile and matching app.json — process types, env vars, addons, dyno formation — plus a Procfile parser and audit
Leaving the seed blank produces fresh random data on every generation. Entering a number makes the output deterministic — the same schema, count, and seed always yield byte-for-byte identical records, because generation runs through a seeded mulberry32 pseudo-random generator. This is ideal for stable test fixtures.
JSON produces a pretty-printed array of objects. CSV writes a header row from the field names followed by comma-separated values, wrapping string values in double quotes. SQL emits one INSERT INTO mock_data (...) VALUES (...) statement per record, with string values single-quoted and embedded quotes escaped.

