Fake data generator
Build a schema of typed fields and generate reproducible test data — people, addresses, orders, logs, sensor readings — as JSON, CSV, SQL, YAML, XML, or Markdown.
Added
How to use it
Start from a preset — Users, Orders, Products, Employees, Addresses, IoT readings,
or Access log — or add fields one by one. Each field has a name, a type, type-specific
options, and a percentage of rows that should be null. Drag the ⋮⋮ handle to reorder.
Over 70 types in groups: identity (sequence ids, UUID v4), people (names, usernames, emails, phones, ages, birth dates), work (job titles, departments, companies), places (street addresses, cities, regions, postcodes, countries, latitude and longitude within bounds), numbers (integers, decimals, normal distributions, prices, booleans), time (dates, ISO 8601 timestamps, Unix time, steadily increasing timestamps with random gaps for logs), text (lorem words and paragraphs, product names, colours), internet (URLs, IPs, MACs, user agents, HTTP methods and statuses weighted like real traffic, log levels, hashes, SemVer versions), commerce (test card numbers, order and account statuses), and sensors (temperature, humidity, pressure, battery voltage, RSSI).
Three types tie things together:
-
One of… picks from a list, optionally weighted:
USD:6, EUR:3, GBP:2. -
Pattern fills
with a digit,?with a lowercase letter,Awith an uppercase letter,*with a letter or digit, andXwith a hex digit:SKU-AA-###. Escape with\. -
Template builds text from other fields in the same row:
{first}.{last}@example.com.
Within a row, names, emails, and usernames belong to the same person, and a card brand matches the card number.
Seed makes output reproducible: the same seed, schema, and row count always give the same data, so fixtures can be regenerated exactly. 🎲 picks a new seed. Locale changes names, cities, street formats, postcodes, and phone formats (US, UK, German, French, Spanish).
Safe by construction. Emails use the reserved example.com, example.org, and
example.net domains. IPv4 addresses come from the documentation blocks 192.0.2.0/24,
198.51.100.0/24, and 203.0.113.0/24 (or private ranges if you choose), IPv6 from
2001:db8::/32, and MAC addresses are locally administered. US phone numbers use the
fictional 555-0100–0199 range, UK numbers Ofcom’s drama range 07700 900xxx, and French
numbers ARCEP’s fiction ranges; German and Spanish numbers have no reserved range and only
look real, so never dial them. Card numbers are the published test numbers that pass the Luhn
check and never charge.
Output formats: JSON, JSON Lines, CSV (RFC 4180 quoting), TSV, SQL (a CREATE TABLE with
column types inferred from the data, then INSERT batches of 500), YAML, XML, and a Markdown
table. Generate up to 100,000 rows; the preview shows the first 200 KB, and Copy and
Download give the full output. Export and Import save the schema as JSON to reuse later.
Sharing
Share link copies a URL that opens this tool exactly as configured. The whole schema with rows, seed, locale, and format, so the link regenerates exactly the same data. By hand: ?preset=users&count=10&seed=abc&format=csv.
For example: fake-data/?preset=users&count=5&seed=demo&format=csv.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.