Mock Data Generator

Consistent test records as JSON, CSV or SQL. Built in your browser, never uploaded.

Records

Press Generate to produce a set.

Two things this gets right that most generators do not

The addresses cannot reach anybody

Every email uses example.com, example.org or example.net. Those domains are reserved by the standards body for exactly this purpose: they are guaranteed never to belong to a real organisation and no mail sent to them is delivered. It matters because test data has a habit of escaping. A seeded database gets pointed at a real mail server, a staging job runs against production credentials, and suddenly a stranger is receiving your test notifications. Using a reserved domain makes that failure harmless.

Phone numbers follow the same principle and are drawn from ranges set aside for fiction, so they are correctly formatted and connect to nobody.

The fields inside a record agree with each other

The email and username are derived from the name in the same row rather than being drawn independently. A record therefore reads as one person: Hannah Thomas gets [email protected], not an address belonging to somebody else entirely.

This is not cosmetic. Data where the fields disagree makes a design mockup look obviously fake, and worse, it hides real bugs: code that assumes a username can be derived from an email, or that two fields correlate, will pass against inconsistent test data and fail in production.

The formats

FormatProducesUse for
JSONAn array of objects, indentedFixture files, API stubs, seeding an application
CSVA header row and quoted valuesSpreadsheets and bulk import screens
SQL insertOne INSERT statement per rowPasting straight into a database console
Plain linesValues separated by a tabQuick paste into anything that splits on tabs

The list on screen always shows one record per row so it stays readable. The format applies to what Copy all and Download produce, which is where the JSON array brackets and the CSV header line get added.

A note on the SQL output

String values are escaped by doubling any single quote, which is the SQL standard and is what makes a name like O'Brien safe to paste. That is adequate for seeding a development database by hand. It is not a substitute for parameterised queries in application code, and nothing produced here should be pasted into a query built from user input.

How to use it

Tick the fields you want, choose a format and a row count, and press Generate. Every option regenerates immediately. The Table field names the table in the SQL output and is ignored by the other formats.

Questions

Can these email addresses receive mail?

No, and that is deliberate. Every address uses example.com, example.org or example.net, which are reserved by the standards body precisely so they can never belong to anyone. Test data built on a real domain eventually gets sent to by accident, and that lands on a stranger.

Are the fields in a record consistent with each other?

Yes. The email and username are derived from the name in the same row rather than drawn separately, so a record reads as one person. Data where the name and email disagree makes screenshots look wrong and hides bugs in code that assumes they match.

What format should I choose?

JSON for seeding an application or a fixture file, CSV for a spreadsheet or a bulk import, and SQL when you want to paste straight into a database console. The list on screen always shows one record per row; the format applies to what copy and download produce.

Are the phone numbers real?

They are formatted to look plausible but are drawn from ranges reserved for fiction, so they do not connect to a real subscriber. As with the email addresses, this is to make sure test data cannot reach a person by accident.

Is anything sent to a server?

No. Records are built inside your browser and this tool has no backend, so nothing is transmitted, logged or stored.