Free Mock Data Generator: Fake JSON, CSV & SQL

Generate realistic fake users, orders and addresses as JSON, CSV, SQL INSERTs or JSON Lines. Repeatable with a seed, customisable fields, free and private.

Dataset
Rows
Seed
Output format
ID style
FieldsRename keys, untick to remove, or build your own columns.

What is a mock data generator?

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.

Realistic

Related fields agree with each other.

Repeatable

The same seed gives the same data.

Flexible

JSON, CSV, SQL and JSONL output.

Your settings
Dataset: Users
Rows:    2
Seed:    demo
Format:  CSV
↓ Generate ↓
Output
id,firstName,lastName,email,isActive
1,Ravi,Kim,ravi.kim69@sample.io,true
2,Hugo,Ali,hugo.ali54@mail.test,true

What is it useful for?

Test data is needed at every stage of development. Here is where this generator saves the most time.

Use caseWhat you needHow this tool helps
Prototype a UI before the API existsRealistic rows to fill tables, cards and formsGenerate users, orders or addresses as JSON and wire them into your frontend.
Seed a development databaseINSERT statements that match your schemaExport SQL with CREATE TABLE and child tables for MySQL, PostgreSQL or SQL Server.
Feed a mock APIA JSON file a mock server can returnSave the JSON and serve it, as in our mock API from an OpenAPI spec tutorial.
Load and import testsHundreds of rows in CSV or JSON LinesGenerate up to 1,000 rows per run, and change the seed for more batches.
Demos, docs and screenshotsBelievable data without real customersEverything is fictional, with example email domains and made-up names.
Repeatable automated testsThe same data on every runFix the seed and your fixtures never change, so failures are easy to reproduce.
Fake data, private by design
Everything is generated in your browser and nothing is uploaded. All values are fictional, but because they are random they can occasionally resemble real ones, so do not use them as real personal data.

Every feature, explained

What each control means, and exactly how to use it.

Datasets

Ready-made users, orders and addresses whose fields agree with each other: emails match names, and order totals match their line items.

HowPick Users, Orders or Addresses at the top of the settings panel.

Row count

Chooses how many records to create, from 1 to 1,000.

HowType a number in Rows. The output updates instantly.

Seed (repeatable data)

The starting value for the random generator. The same seed always gives identical data.

HowKeep your seed to get the same data again. Click 🎲 for a new one, or type your own.

Output formats

JSON for APIs, CSV for spreadsheets, SQL for databases, and JSONL (one JSON object per line) for logs and pipelines.

HowChoose a format under Output format.

SQL options

Sets the table name and SQL dialect, and can add CREATE TABLE. Arrays such as order items become a linked child table.

HowChoose SQL, then set the table name, dialect and CREATE TABLE option.

ID style

Sequential numbers (1, 2, 3) suit databases. UUIDs suit APIs and distributed systems.

HowSwitch ID style between Sequential numbers and UUIDs.

Field picker

Includes only the fields you need, so the output matches your own schema.

HowUntick any field chip. The output updates immediately.

Copy and download

Takes the result out of the page as text or as a file named after the dataset.

HowClick Copy or Download above the output.

Open in JSON tool

Sends generated JSON to the JSON validator and converter to reformat it or convert it to XML, YAML or TypeScript.

HowWith JSON selected, click Open in JSON tool.

Custom fields and key names

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.

HowEdit a name in Fields, or click + Add custom field, name it and choose a type. Click Clear all fields to remove the presets and build your own from scratch, and Restore defaults to bring them back.

Full screen

Gives the settings and a large output the whole window, which helps with big result sets.

HowClick Full screen above the output. Press Esc to exit.

How to use the mock data generator

Four steps from an empty page to ready-to-use test data.

  1. 01

    Pick a dataset

    Choose Users, Orders or Addresses, then set how many rows you need.

  2. 02

    Choose your fields

    Untick fields you do not need, and choose sequential or UUID ids.

  3. 03

    Select a format

    Pick JSON, CSV, SQL or JSONL. For SQL, set the table name and dialect.

  4. 04

    Copy or download

    Copy the result, download a file, or open it in the JSON tool.

Common workflows

Seed a database

Test data for MySQL, PostgreSQL or SQL Server

  1. Choose Orders and set the rows.
  2. Select SQL and your dialect.
  3. Keep Include CREATE TABLE ticked.
  4. Copy and run it in your database.

Data for a mock API

JSON your mock server can return

  1. Choose Users and JSON.
  2. Pick fields to match your schema.
  3. Download users.json.
  4. Serve it from your mock API.

Spreadsheet test data

Import into Excel or Google Sheets

  1. Choose any dataset.
  2. Select CSV.
  3. Click Download.
  4. Open the file in your spreadsheet.

Datasets and output formats

What is inside each dataset, and which format to choose.

DatasetFieldsGood for
Usersid, firstName, lastName, email, username, phone, dateOfBirth, jobTitle, company, role, isActive, address, createdAtAccounts, profiles and login tests
Ordersid, orderNumber, customerName, customerEmail, status, paymentMethod, currency, items, subtotal, tax, shipping, total, orderDate, shippedAt, shippingAddressShop and checkout flows, reports
Addressesid, label, recipient, street, city, state, zip, country, countryCode, latitude, longitude, phone, isDefaultForms, maps and shipping tests
FormatWhat you getBest for
JSONPretty-printed array of objects, with nested dataAPIs, frontends, fixtures
CSVHeader row and one row per record; nested keys become address.citySpreadsheets and imports
SQLCREATE TABLE and batched INSERTs; nested keys become address_city, arrays become child tablesSeeding databases
JSONLOne compact JSON object per lineLogs, streaming and data pipelines

Frequently asked questions

Quick answers about fake data, seeds and SQL output.

Is the generated data real?

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.

How do I get the same data every time?

Use the Seed field. The same seed, dataset, row count and ID style always produce the same output, which makes tests and demos repeatable.

How are nested objects handled in CSV and SQL?

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.

Which SQL databases are supported?

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.

Why is there a 1,000 row limit?

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.

Is my data uploaded anywhere?

No. The generator runs entirely in your browser. Nothing is sent to a server, and it is free to use without an account.

Can I rename fields or add my own columns?

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.

Need to check or convert your data?

Validate the JSON you generated, follow the mock API tutorial, or explore more free developer tools.