Mock data generator: JSON, CSV and SQL
Pick the columns you need, choose how many rows, and get realistic fake data as JSON, CSV or SQL insert statements, ready to paste into tests and prototypes.
Runs in your browser. Nothing you enter is uploaded.
Use a seed to get the same data every time, e.g. for repeatable tests.
How to use the mock data generator
- Set up your columns: give each field a name and pick a type, such as Full name, Email or Price.
- Use + Add field for more columns and the × button to remove one.
- Choose the number of rows and the format: JSON, CSV or SQL inserts (with a table name).
- Click Generate, then Copy the result or Download it as data.json, data.csv or data.sql.
What is mock data used for?
Mock data is realistic-looking fake data. Developers use it to fill a database before real users exist, to test how a table or form looks with 500 rows instead of three, to write unit tests, and to share demos without exposing anyone's personal details. Because every value is invented, you can paste it anywhere without privacy concerns.
Each row is built around one fake person, so the columns agree with each other: a row with the name Priya Muller gets the email address priya.muller@example.org. That makes screenshots and demos look believable and helps you spot layout problems with real-length names.
Why do the emails use example.com?
Email domains are drawn only from names reserved for documentation and testing, such as example.com, example.org and the .test domain. Nobody can register them, so if a test system accidentally sends mail to a generated address, it never reaches a real inbox. Phone numbers use the 555-0100 to 555-0199 range set aside for fictional use, and URLs point to subdomains of example.com.
How do seeds make data repeatable?
By default every click on Generate gives new random values. Enter a number in Seed and the generator starts from that number instead, so the same seed, fields and row count always produce exactly the same data. That is useful for automated tests that compare output, for bug reports, and for keeping a demo database identical across machines.
Frequently asked questions
Which field types are available?
There are 24: ID, UUID, first name, last name, full name, email, username, phone, street address, city, country, ZIP code, company, job title, date, date and time (ISO 8601), boolean, integer, decimal, price, URL, IPv4 address, hex colour and a short sentence.
How many rows can I generate?
Up to 1,000 rows at a time. For larger test sets, generate several batches with different seeds, or use the SQL output with a loop in your database. Everything is created in your browser, so even 1,000 rows appear almost instantly.
How is the CSV formatted?
The first line holds the column names, values are separated by commas and rows by line breaks. Values that contain a comma, a quote or a line break are wrapped in double quotes, with inner quotes doubled, following the common RFC 4180 convention that Excel and Google Sheets understand.
What does the SQL output look like?
One INSERT INTO table (columns) VALUES (…); statement per row, using the table name you enter. Text is wrapped in single quotes with any apostrophes doubled, numbers are written as numbers and booleans as TRUE or FALSE, which works in PostgreSQL, MySQL and SQLite.
Is the generated data real?
No. Names, cities and companies are combined at random from built-in lists, so any match with a real person is a coincidence. Emails, phone numbers and URLs use ranges reserved for testing, and nothing is sent anywhere: the generator runs entirely in your browser.