Skip to main content
WizTools123
WizTools123
Free Online Tools

Tool Categories


Developer Tools New Tool

Free Online Fake Data Generator, JSON, CSV and SQL

Build a schema field by field, choose how many rows you want, and get invented data as JSON, NDJSON, CSV, SQL insert statements or a JavaScript literal. A seed field makes the output repeatable, so the same seed gives the same thousand rows every time you come back.

Free Forever Nothing Uploaded Six output formats Invented, not collected
Free Online Fake Data Generator, JSON, CSV and SQL
Share this tool
Advertisement Slot (Top Banner) Google AdSense Unit • Responsive Banner
Fake Data Generator Everything happens in this tab. Nothing you paste is sent anywhere.
First rows

Rows
Rows
Schema

Every value here is invented. The phone numbers come from ranges reserved for drama and documentation, and the addresses are not real places, so nothing generated on this page can reach a person.

Buy Us A Coffee

Enjoying WizTools123? Help keep our server infrastructure 100% free and open for everyone.

Buy Us A Coffee
Sponsored Content (Below Tool) Google AdSense Placement

What Each Field Type Takes in Options

The options box changes meaning with the type.

TypeOptionsExample value
integer1-10042
decimal0-1000|2412.75
enumnew,paid,shippedpaid
date2023-01-01..2025-12-312024-07-19
datetime2023-01-01..2025-12-312024-07-19T14:08:31Z
auto-increment id1 to start from1, 2, 3
sentence, paragrapha word count, optionalNulla gravida orci a odio.
everything elsenothing-

A field name is used as the JSON key, the CSV header and the SQL column, so keep it to the characters your target accepts. Nothing is renamed or quoted for you beyond what each format requires.

How to Generate Fake Data

A few steps, and nothing is uploaded.

1
Build the schema Add a field, name it, pick its type, and fill in the options box where the type needs one, such as a range for an integer or a list for an enum.
2
Choose rows and format Up to a thousand rows, as JSON, NDJSON, CSV, SQL inserts or a JavaScript literal. The SQL format asks for a table name.
3
Set a seed The same seed with the same schema gives exactly the same rows, so a fixture stays stable. Change the seed for a fresh set.
4
Take the output The preview shows the first rows as a table and the output box holds the whole set, ready to copy or download.

What to Know About Fake Data

Including what this data must never be used for.

This data is invented and must never stand in for a real person. The names are assembled from common name parts, so a generated row can coincide with a real person by accident. Do not use it in anything that implies a real customer, do not publish it as an example of your user base, and do not paste it into a support ticket as though it were a record.
The phone numbers and addresses are deliberately not deliverable. Mobile numbers come from the 07700 900000 range and landlines from 020 7946 0000, both reserved by Ofcom for drama and documentation, and the American ones use 555 0100 to 555 0199, reserved for the same purpose. The street addresses are invented. If you need a number that rings, this is the wrong tool.
A seeded UUID is repeatable, which means it is not cryptographically random. The seed exists so a fixture stays stable, and that requires a predictable generator. The UUIDs and ids produced here have the right shape and the wrong provenance. For real identifiers, use our UUID or short id tools, which take their bytes from the browser cryptographic source.
This does not understand your database. It has no idea what your columns are, what your constraints allow, or what a foreign key needs to point at, so nothing generated here is guaranteed to insert cleanly. Relationships between fields are not modelled either: a city and a postcode in the same row have nothing to do with each other.

Key Features & Capabilities

What this tool does, and what it deliberately does not.

Twenty five field types Names, contact details, places, text, numbers, dates, ids and enums.
Six output formats JSON, NDJSON, CSV, SQL inserts, and two JavaScript literals.
Repeatable with a seed A small deterministic generator, written in the page, keyed on your seed.
Table preview The first rows are shown as a table so you can see the shape at once.
Reserved numbers only Phone numbers come from ranges set aside for fiction and documentation.
Nothing leaves the page The rows are built in your browser and no request is made.

About the Fake Data Generator

Filling a table with data is the quickest way to find out whether a layout holds up, whether a query is fast enough and whether an importer handles the awkward cases. Typing that data is tedious, and copying it from production is the mistake everybody regrets, because real personal data in a development database is a breach waiting for an accident.

This page builds a schema field by field and generates as many rows as you want. Six output formats cover the common destinations: JSON and NDJSON for an API or a bulk load, CSV for a spreadsheet or an importer, SQL inserts for a database directly, and two JavaScript literals for a test fixture you can paste into a file.

The seed is the part that matters more than it looks. Random fixture data makes tests that fail intermittently and nobody can reproduce, so the generator here is a small deterministic function keyed on a string you choose, written out in the page rather than pulled from a library. The same seed and the same schema give the same rows, every time, on any machine.

Frequently Asked Questions

Seeds, formats, deliverable addresses and test fixtures.

It sets the starting state of the random number generator, which is deterministic. The same seed and the same schema will always produce the same rows, in the same order, on any machine. That is what makes the output usable as a test fixture, since a test that gets different data on every run will eventually fail for reasons nobody can reproduce.

They are built on example.com, example.org and example.net, which are reserved by the IETF precisely so they cannot belong to anybody. Mail to them goes nowhere. That said, an address that cannot receive mail is not the same as an address that is safe to use in a live system, so keep this data out of anything that sends.

Possibly, but do not count on it. The statements quote strings and leave numbers and booleans bare, which is correct SQL, but the page does not know your column types, your lengths, your not-null constraints or your foreign keys. Treat the output as a starting point and expect to adjust the column list.

Because each field is generated independently. Modelling the relationship between a city, a region and a postcode would mean shipping real geographic data, and would still be wrong for most countries. If you need matching values, generate the city here and fill the postcode from your own reference data.

A thousand rows is the limit, across as many fields as you add. It is a limit on the browser rather than on the maths: building the strings and then rendering a preview of them is what costs time, and beyond a thousand rows the page starts to feel slow while giving you nothing you could not get by running it twice with two seeds.

Other Developer Tools

Advertisement Slot (Bottom Banner) Google AdSense Unit • Responsive Banner