Skip to content

Fake Data Generator

Mock data as JSON, CSV or SQL INSERT, up to 10,000 rows. Runs in your browser.

Loading tool…

About this fake data generator

This fake data generator makes realistic but invented test data: names, emails, phone numbers, addresses, companies, dates, UUIDs and more. You get up to 10,000 rows as JSON, CSV or SQL INSERT statements, ready to paste into a database, a spreadsheet or an API mock.

Pick your columns, rename them to match your schema, choose a locale such as German or Japanese, and set a seed. The same seed with the same settings gives exactly the same rows every time, so a test fixture can be rebuilt instead of stored. A preview table shows the first 50 rows while you work.

Everything is generated in your browser. There is no sign-up and no row quota, and nothing you type is sent anywhere. Every value is made up. None of it describes a real person, and it must not be used to pose as anyone or to fill real records.

Features

  • 38 field types

    Row numbers, UUID v4, first, last and full names, sex, email, username, phone, birth date, job title, street, city, state, postcode, country, ISO 3166 country code, latitude and longitude, company, department, product, price, ISO 4217 currency code, URL, domain, IPv4, IPv6, MAC address, hex color, dates, numbers, true/false, and lorem text.

  • Rows that hang together

    Within one row, the first name, last name, full name, sex, email and username all belong to the same invented person, so Josefina Smitham gets an address like [email protected]. Names in Japanese script get a random Latin email instead.

  • Repeatable with a seed

    Type a number or any word as the seed. Same seed, same columns, same row count and same locale means identical output. Press New data for a fresh random seed.

  • Nine locales

    English (US, UK and India), German, French, Spanish, Portuguese (Brazil), Japanese and Bangladesh, where cities, regions and countries come out in Bengali. Only the locale you choose is loaded.

  • SQL that runs

    Column and table names are cleaned to lowercase letters, digits and underscores. Apostrophes are escaped, rows go out in INSERT batches of 100, and an optional CREATE TABLE picks types like INTEGER, DATE, TIMESTAMP and BOOLEAN.

  • Clean CSV and typed JSON

    CSV follows RFC 4180, with CRLF line endings and quotes only where needed, plus an optional UTF-8 BOM for Excel. JSON keeps numbers and booleans unquoted and comes pretty, compact or as JSON Lines.

  • 10,000 rows without a freeze

    Rows are built in chunks of 500 so the page stays responsive. Copy all or download a .json, .jsonl, .csv or .sql file with every row.

How to use the fake data generator

  1. 1Pick the columns, rename them and set the number of rows.
  2. 2Choose a locale and a seed if you want the same data again.
  3. 3Pick JSON, CSV or SQL, then copy or download the file.

When to use it

  • Seeding a development database

    Build a users table with id, names, email, city and created_at, tick Include CREATE TABLE, and run the SQL file against your local database.

  • Testing a CSV import

    Generate 10,000 rows with commas and apostrophes in names and addresses to check that your importer handles quoting and large files.

  • Mocking an API response

    Export pretty JSON, drop it into your mock server or front-end fixture, and get believable lists without waiting for the backend.

  • Realistic design mock-ups

    Fill tables, cards and dashboards with names of varying length instead of "John Doe" in every row, so layout problems show up early.

  • Teaching SQL or spreadsheets

    Give every student the same dataset by sharing a seed, then ask questions with known answers.

What is a seed, and why does it matter for test data?

A seed is the starting value for a pseudo-random generator. The generator always produces the same sequence from the same seed. Set the seed to 42 today and again next month, and with the same columns, row count and locale you get the same rows, value for value.

That makes test data reproducible. Instead of committing a 2 MB fixture file, you can record the seed and the settings. A failing test can be rerun on the exact same data. One caution: the sequence can change between major versions of the underlying library, so keep the exported file if it must never change.

Which output format should you choose?

Pick the format your next step reads directly. Each one here is written to its usual standard.

  • JSON: an array of objects, one per row, for API mocks and JavaScript fixtures. Pretty uses 2-space indents; Compact removes whitespace.
  • JSON Lines: one JSON object per line (.jsonl), handy for streaming tools, log pipelines and bulk loaders that read line by line.
  • CSV: RFC 4180 style for spreadsheets and import tools. Turn on the BOM if Excel shows accented, Bengali or Japanese text as garbage.
  • SQL INSERT: plain INSERT INTO statements in batches of 100 rows, with an optional CREATE TABLE. Date-times are written as YYYY-MM-DD HH:MM:SS.

Is it legal and safe to use fake data?

Using invented data for testing, demos and teaching is normal practice, and it is usually safer than copying production data, which can contain personal details covered by privacy laws such as the GDPR. Fake data lets you test without exposing real customers.

The line is how you use it. These names, emails, phone numbers and addresses are generated at random, and some will match real ones by chance. Do not use them to sign up for services, to pose as someone, to fill official forms or to pad real records. The generator deliberately has no card numbers, tax IDs or other values built to pass real-world checks.

Why use Mavros

 MavrosTypical upload sites
Rows per runUp to 10,000, freeOften 100 to 1,000 before sign-up or payment
Where data is generatedIn your browserOn a server, sometimes with a queue
Repeatable outputSeed field, numbers or wordsRarely offered
Email matches the name in the rowYes, for Latin-script namesOften unrelated
SQL outputEscaped values, safe names, optional CREATE TABLEINSERT only, names used as typed
Account neededNoOften required to save or export more

Tips

  • Rename columns to match your schema before exporting. A name like "First Name" becomes first_name automatically, and duplicates get _2, _3.
  • Paste the SQL output into an SQL formatter if you want each value on its own line for review.
  • Need YAML or XML instead of JSON? Export JSON, then run it through the JSON converter.
  • If you only need identifiers, the UUID and ULID generator makes thousands at once, including time-ordered UUID v7.
  • For filler text in a layout rather than rows of data, a lorem ipsum generator gives you paragraphs of the length you choose.
  • Dates fall between 2020 and 2025 and birth dates give ages from 18 to 80, so the same seed does not drift as the calendar moves on.

Questions

How do I generate fake data for testing?

Choose your columns, set the number of rows, pick JSON, CSV or SQL, then copy or download the result. The default schema already gives 25 people with names, emails, phones, cities and IDs.

Is the generated data real?

No. Every value is invented by a random generator. Any match with a real person, phone number, email or address is a coincidence, so never use this data to contact, sign up or pose as anyone.

How many rows can I generate?

Up to 10,000 rows per run. Ten columns of 10,000 rows takes about a second on a typical laptop. The preview shows 50 rows, and copy or download includes every row.

How do I get the same data again later?

Use the same seed. With the same seed, columns, row count and locale, the output is identical. Write the seed down next to your test, or keep the downloaded file.

Can I generate SQL INSERT statements?

Yes. Choose SQL INSERT, type a table name and optionally tick Include CREATE TABLE. Values are escaped, names are made SQL-safe, and rows are grouped 100 to a statement.

Why does my CSV show strange characters in Excel?

Excel often assumes an old encoding for CSV files. Tick the UTF-8 BOM option before downloading, and Excel will read accented letters, Bengali and Japanese correctly.

Which languages and countries are supported?

Nine locales: English for the US, UK and India, German, French, Spanish, Brazilian Portuguese, Japanese and Bengali for Bangladesh. Where a locale lacks a type of value, English data is used for that field.

Is my schema or data sent to a server?

No. The data is generated in your browser after the page and the chosen locale have loaded. Nothing is uploaded and nothing is stored.

Can I make related tables with foreign keys?

Not yet. Each run makes one table. A practical workaround is a Row number column, which counts 1, 2, 3 and so on, used as the ID in a parent table and as a key you match in a second export.