Datasets
Ready-made users, orders and addresses whose fields agree with each other: emails match names, and order totals match their line items.
Generate realistic fake users, orders and addresses as JSON, CSV, SQL INSERTs or JSON Lines. Repeatable with a seed, customisable fields, free and private.
A mock data generator creates realistic but fake records, such as users, orders and addresses, so you can build and test software without real data. Instead of typing sample rows by hand or copying production data, you generate as many as you need in the format your tool expects.
This free generator produces JSON, CSV, SQL INSERT statements and JSONL. It runs in your browser, gives repeatable results through a seed, and lets you choose exactly which fields to include.
Related fields agree with each other.
The same seed gives the same data.
JSON, CSV, SQL and JSONL output.
Dataset: Users Rows: 2 Seed: demo Format: CSV
id,firstName,lastName,email,isActive 1,Ravi,Kim,ravi.kim69@sample.io,true 2,Hugo,Ali,hugo.ali54@mail.test,true
Test data is needed at every stage of development. Here is where this generator saves the most time.
| Use case | What you need | How this tool helps |
|---|---|---|
| Prototype a UI before the API exists | Realistic rows to fill tables, cards and forms | Generate users, orders or addresses as JSON and wire them into your frontend. |
| Seed a development database | INSERT statements that match your schema | Export SQL with CREATE TABLE and child tables for MySQL, PostgreSQL or SQL Server. |
| Feed a mock API | A JSON file a mock server can return | Save the JSON and serve it, as in our mock API from an OpenAPI spec tutorial. |
| Load and import tests | Hundreds of rows in CSV or JSON Lines | Generate up to 1,000 rows per run, and change the seed for more batches. |
| Demos, docs and screenshots | Believable data without real customers | Everything is fictional, with example email domains and made-up names. |
| Repeatable automated tests | The same data on every run | Fix the seed and your fixtures never change, so failures are easy to reproduce. |
What each control means, and exactly how to use it.
Ready-made users, orders and addresses whose fields agree with each other: emails match names, and order totals match their line items.
Chooses how many records to create, from 1 to 1,000.
The starting value for the random generator. The same seed always gives identical data.
JSON for APIs, CSV for spreadsheets, SQL for databases, and JSONL (one JSON object per line) for logs and pipelines.
Sets the table name and SQL dialect, and can add CREATE TABLE. Arrays such as order items become a linked child table.
Sequential numbers (1, 2, 3) suit databases. UUIDs suit APIs and distributed systems.
Includes only the fields you need, so the output matches your own schema.
Takes the result out of the page as text or as a file named after the dataset.
Sends generated JSON to the JSON validator and converter to reformat it or convert it to XML, YAML or TypeScript.
Rename any key to match your schema, or add your own columns. Pick a type such as UUID, number range, date, name, email, text, a list of values or a fixed value.
Gives the settings and a large output the whole window, which helps with big result sets.
Four steps from an empty page to ready-to-use test data.
Choose Users, Orders or Addresses, then set how many rows you need.
Untick fields you do not need, and choose sequential or UUID ids.
Pick JSON, CSV, SQL or JSONL. For SQL, set the table name and dialect.
Copy the result, download a file, or open it in the JSON tool.
Test data for MySQL, PostgreSQL or SQL Server
JSON your mock server can return
users.json.Import into Excel or Google Sheets
What is inside each dataset, and which format to choose.
| Dataset | Fields | Good for |
|---|---|---|
| Users | id, firstName, lastName, email, username, phone, dateOfBirth, jobTitle, company, role, isActive, address, createdAt | Accounts, profiles and login tests |
| Orders | id, orderNumber, customerName, customerEmail, status, paymentMethod, currency, items, subtotal, tax, shipping, total, orderDate, shippedAt, shippingAddress | Shop and checkout flows, reports |
| Addresses | id, label, recipient, street, city, state, zip, country, countryCode, latitude, longitude, phone, isDefault | Forms, maps and shipping tests |
| Format | What you get | Best for |
|---|---|---|
| JSON | Pretty-printed array of objects, with nested data | APIs, frontends, fixtures |
| CSV | Header row and one row per record; nested keys become address.city | Spreadsheets and imports |
| SQL | CREATE TABLE and batched INSERTs; nested keys become address_city, arrays become child tables | Seeding databases |
| JSONL | One compact JSON object per line | Logs, streaming and data pipelines |
Quick answers about fake data, seeds and SQL output.
No. All names, emails, phone numbers and addresses are made up. Emails use example domains, and nothing comes from a real person or customer. Because values are random, a result can look like a real one by coincidence, so never use it as real personal data.
Use the Seed field. The same seed, dataset, row count and ID style always produce the same output, which makes tests and demos repeatable.
CSV flattens nested objects into columns with dots, such as address.city. SQL flattens them with underscores, such as address_city, and turns arrays of objects, like order items, into a child table with a foreign key to the parent id.
The generated SQL works with MySQL, PostgreSQL and SQL Server. The dialect setting changes identifier quoting, boolean and timestamp types, and string escaping. Check column types before using it in production.
Everything is generated in your browser, so the limit keeps the page fast on any device. For more rows, generate several batches with different seeds.
No. The generator runs entirely in your browser. Nothing is sent to a server, and it is free to use without an account.
Yes. Edit any key name in the Fields list, untick fields you do not need, and use Add custom field to create extra columns. Custom columns can be UUIDs, numbers in a range, dates, names, emails, short text, values picked from your own list, or a fixed value. Use Clear all fields to remove the preset fields and start from a blank list, and Restore defaults to bring them back.
Validate the JSON you generated, follow the mock API tutorial, or explore more free developer tools.