Dummy Data Generator — Realistic Fake Test Data, Free & Local
Build a schema and generate realistic fake JSON, CSV, SQL, or TypeScript test data — names, emails, addresses, dates, and more. Seeded for reproducibility, 100% in your browser.
What it does
Lets you design a data schema field by field — names, emails, addresses, dates, numbers, booleans, custom lists — and generates as many realistic-looking fake rows as you need. Export straight to JSON, CSV, SQL INSERT statements, or a TypeScript interface, ready to drop into a test database, a frontend mockup, or a demo.
How it works
Each field in your schema has a type (first name, email, integer range, date range, and so on), and the generator fills it in using built-in name, address, and word lists combined with a seeded random number generator. The seed means the same input always produces the exact same dataset — useful when you need a test fixture that doesn’t change between runs, or when you want to share a dataset with a teammate by sharing just the schema and seed instead of a file.
Fields can reference each other: an email field automatically builds off a preceding first_name/last_name field, and a custom template field can pull in any earlier field’s value with {{fieldName}} syntax — handy for building a SKU or username out of other columns. Fields can also be marked nullable (with an adjustable chance of being empty) or unique (the generator retries until it finds a value that hasn’t been used yet, useful for IDs or emails).
If you’d rather start from real data than build a schema from scratch, drop in a sample .json or .csv file and the generator will infer field types (numbers, booleans, dates, emails, UUIDs) from it automatically.
How to use it
- Pick a starter template (user accounts, e-commerce products, blog posts) or start from scratch.
- Add, remove, or edit fields — set the type, and any range, options, or template each type needs.
- Set how many rows you want and, optionally, a seed for reproducible output.
- Check the live preview table as you adjust the schema.
- Download as JSON, CSV, SQL, or a TypeScript interface — or copy the JSON directly.
If your generated SQL needs formatting before it’s readable, the SQL formatter will tidy it up. If you already have real JSON and just want a matching TypeScript interface without generating new data, the JSON-to-TypeScript tool does exactly that.
Field types
Name, email, phone, address (street/city/state/zip/country), company, job title, UUID, auto-increment sequence, boolean, integer/float range, word/sentence/paragraph, hex color, IPv4 address, date range, pick-from-list (with optional weighting), synthetic Luhn-valid credit card numbers, and custom templates referencing other fields.
A note on the credit card field
The credit card type generates numbers that pass the Luhn checksum — the same structural check real payment forms run — purely so you can test form validation. These are not real card numbers, aren’t tied to any real account or issuer, and won’t work on an actual payment processor.
FAQ
Does this send my schema or data anywhere? No — generation happens entirely in your browser, and nothing is uploaded.
Will the same seed always give me the same data? Yes. The seed determines every random choice the generator makes, so re-entering the same seed with the same schema reproduces the exact same rows every time.
Can one field depend on another, like a full name built from first and last name? Yes — use the “Custom template” field type and reference any earlier field with {{fieldName}}, for example {{first_name}}.{{last_name}}.
What happens if I ask for more unique values than the field’s option list can provide? The generator retries a limited number of times to find an unused value, then falls back to a repeat rather than getting stuck — useful to know if you’re generating a large unique set from a small list of options.
Can I import my own data instead of building a schema from scratch? Yes — drop a sample .json or .csv file on the import area and the generator will infer a starting schema from it, which you can then adjust.
Are the credit card numbers real? No. They’re synthetic numbers that satisfy the Luhn checksum algorithm used to catch typos on real cards, generated for testing form validation — not tied to any real account.
Is there a row limit? The generator is capped at 10,000 rows per run to keep things responsive in the browser; for bigger datasets, generate in a few batches with different seeds.