Mock Data Generator
Generate fake data rows — names, emails, addresses, dates, UUIDs and more — as JSON, CSV, SQL INSERT, XML, YAML or Excel, from a seed you can reuse.
Choose fields and press Generate to create mock rows.
Realistic seed data, column by column
Define your columns, choose one of 24 types for each — a row number, names, emails, phones, addresses, countries, companies, job titles, sentences, prices, integers, floats, booleans, dates, UUIDs, cities, credit cards, IBANs, SSNs, latitudes, longitudes and MAC addresses — pick how many rows you need, then generate a ready-to-use dataset as JSON, CSV, SQL INSERT statements, XML or YAML, or download it as an Excel (.xlsx) workbook. The finance and identity types are made so that none can be a real one: Credit card gives one of the test numbers the payment processors publish, IBAN a German account number whose check digits are valid, SSN a number from the range the US Social Security Administration never issues, and MAC address one with the locally administered bit set, which no manufacturer owns. Each field’s ⚙ Field options narrow what it produces: only the values you list (one value makes a fixed column), a pattern such as INV-2024-####, lowest and highest bounds for integers, floats, prices and dates, and a blank share left empty. Use it to seed a development database, stub an API response, or fill a spreadsheet with plausible test data.
Deterministic and private
Every value comes from a small built-in word list combined with a seeded random generator, so nothing is fetched from a server and nothing you enter is uploaded. The page says which seed each Generate used; type it into the Seed box and the same rows come back. Column names and types are yours to edit — add or remove fields until the shape matches your schema, then copy or download the result. The Choose a schema… menu beside + Add field swaps the fields for a ready-made table — Users, Orders, Products, Employees or Payments — and draws rows from it at once, still yours to edit. File name names every download, the Excel one included (mock-data when left empty). The row count, the format and the data language ride in the address, so a reload keeps them; the fields and the table name are your own work and stay in the page. Data language draws the names, cities and the rest in English or Korean whatever the page’s own language, and Show as switches the result between Text and a Table with one column per field.
Frequently asked questions
What output formats are supported?
JSON (pretty-printed), CSV with a header row, SQL INSERT statements for a table name you choose, XML (a rows element holding one row element per row, with the XML declaration) and YAML (a list of maps). Switch formats without regenerating the data. The Excel (.xlsx) button downloads the same rows as a one-sheet workbook.
Can I control which columns are generated?
Yes. Add a field for each column, give it a name, and pick its type. There are 24: Sequence (1, 2, 3…), First name, Last name, Full name, Email, Integer, Float, Boolean, Date, UUID, City, Phone, Address, Country, Company, Job title, Sentence, Price, Credit card, IBAN, SSN, Latitude, Longitude and MAC address. The first column starts as a Sequence, which simply numbers the rows and is what an id usually wants — a random integer would repeat itself. Remove any field you do not need.
Can I get the same rows again, or shape what a column produces?
Yes to both. After each Generate the page says Seed used: and the number; press Use this seed, or type it into the Seed (empty = random) box, and Generate gives the same rows again. Each field’s ⚙ Field options take Only these values (comma-separated) — active, trial, cancelled — or a Pattern where # is a digit, A a capital letter, a a small letter and X a hex digit, so INV-2024-#### gives invoice numbers. Lowest and Highest bound an Integer, Float, Price or Date field, and Blank % leaves that share of cells empty: NULL in SQL, blank in CSV and XML, null in JSON and YAML.
Can I generate data in another language, keep my settings, or see the rows as a table?
Yes. Data language, after the Seed box, draws names, cities and the rest in English or Korean whatever the page’s own language, and Generate and Sample use it. The row count, the format and the data language ride in the address, so a reload keeps them; the fields with all their options and the table name are your own work and stay in the page, out of the address. A link that carries a schema still opens on it, and a schema the page did not write is dropped rather than guessed at. Once there are rows, Show as switches between Text and Table — one column per field, the first rows drawn, with a note that Copy and Download take them all.
Is there a ready-made schema to start from, and are the card numbers and IBANs safe to use?
Yes to both. The Choose a schema… menu beside + Add field replaces the fields with Users, Orders, Products, Employees or Payments and draws rows from it at the count in the box; order statuses and product names come in the page’s language, and every field stays yours to edit. The Credit card, IBAN, SSN and MAC address types cannot be anybody’s real details: a card is one of the test numbers payment processors publish, which passes the Luhn check and charges nobody; an IBAN is a German one with valid check digits over random digits; an SSN comes from the range the Social Security Administration never issues; and a MAC address has the locally administered bit set, so no manufacturer’s prefix matches it.