Skip to the tool
DevToolBench

Fake Data Generator

Mock rows as JSON, CSV or SQL, reproducible by seed.

Columns

Fictional data for testing only. Emails use the reserved example.com, example.org and example.net domains, and phone numbers sit in the 555-0100 to 555-0199 block set aside for fiction. Street addresses are random combinations and may match a real one, so never post or mail anything to them.

Everything runs in your browser. Nothing you type is sent to a server.

Found a bug in this tool? Report it.

Share this tool

What this fake data generator does

This fake data generator produces rows of realistic-looking test records — names, emails, phone numbers, street addresses with city, state and ZIP, birth dates and UUIDs — and writes them as a JSON array, a CSV file or a ready-to-run SQL INSERT statement. Pick the columns you need, up to 1,000 rows at a time, and add a seed when the same data has to come back tomorrow.

Everything is fictional by construction where it can be. Email addresses only use the domains reserved for examples, and phone numbers only use the 555-01xx block set aside for films, books and test data. You can paste the output into a staging database or a public demo without mailing or ringing anyone by accident.

How to use it

  1. Choose how many rows you want and the output format: JSON, CSV or SQL INSERT.
  2. Tick the columns to include. They always appear in the same order.
  3. Leave the seed blank for a fresh random batch, or type one to get reproducible output.
  4. For SQL, set the table name. Copy the result or download it as a file.

A mock data generator that stays reproducible

Random fixtures make flaky tests. If a test fails only for one particular name with an apostrophe, you need that name back to debug it. That is what the seed is for: the rows come from a small seeded generator (mulberry32), so a seed of 42 gives the same ten people on every machine, in every browser, forever. When the seed field is empty, a random one is drawn and displayed, so a batch you happen to like can still be recreated.

Columns are independent of one another. Each row draws every value in a fixed order even when a column is hidden, so adding the UUID column later does not reshuffle the names you already wrote assertions against.

What it deliberately does not generate

There is no credit card field, and no CPF, SSN or national insurance number. This is a choice, not an omission. A test data generator that emits numbers passing the Luhn or national checksum is also a tool for card testing and synthetic identity fraud, and it gives your tests nothing that the right alternatives do not. Stripe, Adyen and every other payment provider publish test card numbers their sandboxes accept; use those. For identity documents, a value that is visibly fake is safer than one that validates.

Names, locales and realism

As a random name generator, it draws from a short list of first and last names from many languages, so your interface meets names like Nguyen, Okafor and Schmidt instead of John Smith fifty times. It does not try to model real populations, and it is not a substitute for testing with the long, accented and non-Latin names your users really have. For bulk text to fill those fields, the lorem ipsum generator is next door, and a CSV you produce here can be turned back into JSON with the CSV to JSON converter.

Frequently asked questions

Can any of these emails or phone numbers reach a real person?

The emails cannot: example.com, example.org and example.net are reserved by RFC 2606 for documentation and never deliver mail. The phone numbers use 555-0100 to 555-0199, the block the North American Numbering Plan sets aside for fictional use. Street addresses are different — they are random combinations of a house number, a common street name and a real city, so one may happen to exist.

Why is there no credit card or social security number field?

Because a number that passes a checksum is exactly what a card-testing script or a fake identity needs, and a test suite does not. Payment providers publish official test card numbers that their sandboxes accept, and those are the ones to use. For CPF, SSN or national ID fields, generate an obviously invalid placeholder in your fixtures instead.

How does the seed make data reproducible?

The rows come from a seeded pseudo-random generator, so the same seed, row count and columns always produce exactly the same output. Type any text or number as the seed and keep it next to your test; anyone running it later gets identical rows. The seed in use is shown next to the field, even when it was picked at random.

Does switching a column off change the other columns?

No. Every row draws all of its values in the same order whether you show them or not, so turning the phone column off leaves the names, emails and UUIDs exactly as they were for that seed.

Is the data generated on your server?

No. Everything is generated in your browser, and nothing about the columns, seed or output is sent anywhere.

Related tools

Updated