๐Ÿฑ Lunchbox Hands

Fake Data Generator

Generate realistic fake/mock test data and export to JSON, CSV, or SQL

Build a custom schema with as many fields as you need, set the row count, and generate realistic-looking fake data instantly โ€” all in your browser, nothing sent to a server. Export to JSON, CSV, or SQL INSERT statements.

Schema Fields

Why fake data matters for development and testing

Every application that handles user information needs a safe, realistic dataset for development, automated testing, and staging environments. Using production data in these contexts is a serious privacy risk โ€” GDPR, CCPA, and similar regulations restrict where real personal data can flow. Fake data that looks real solves this cleanly: your UI renders properly, your database queries return plausible results, and no real person's information is ever at risk.

Beyond compliance, realistic fake data catches bugs that simple placeholder data misses. A field named "email" containing "[email protected]" for every row will not reveal layout issues caused by long addresses, special characters, or uncommon top-level domains. Varied, plausible fake data โ€” generated from curated sample arrays using a fast seeded PRNG โ€” surfaces edge cases early.

How to use this tool

  1. Define your schema. The default schema includes an id (UUID), firstName, lastName, email, and createdAt (date). Rename fields to match your database columns, change types, add fields with the + Add Field button, or remove fields you don't need with the โœ• button.
  2. Configure number bounds. When you pick the Number type, two extra inputs appear for min and max. Leave them blank for the default range of 0โ€“100, or set specific bounds โ€” useful for ages, scores, prices, and quantities.
  3. Set the row count. Enter how many rows you need, up to 1,000. For quick UI tests, 5โ€“10 rows is usually enough. For load testing or seeding a staging database, generate 1,000 rows and repeat as needed.
  4. Use a seed for reproducibility. If you want the same data every time โ€” for snapshot tests, demo environments, or shared fixtures โ€” enter any string in the seed field. The same seed + same schema always produces the same output for every field type except UUID (which is always random by design).
  5. Choose your format and export. JSON is easiest for seeding test fixtures or API mocking. CSV works for spreadsheet imports, database GUI tools, and the CSV โ†’ SQL INSERT converter if you need more control over the SQL output. SQL INSERT statements are ready to run directly against your database.

Field types reference

  • uuid โ€” Cryptographically random v4 UUID via crypto.randomUUID(). Always unique, never seed-reproducible.
  • firstName / lastName / fullName โ€” Drawn from a curated list of 60+ names covering a variety of backgrounds.
  • email โ€” Composed from a first name, last name, separator, and domain from a realistic domain list.
  • phone โ€” US-style format: (NXX) NXX-XXXX.
  • streetAddress โ€” House number + street name (e.g., "4217 Oak Ave").
  • city / country โ€” 60+ cities and 44 countries worldwide.
  • company โ€” Fictional company names for database seeding without implicating real businesses.
  • jobTitle โ€” 43 realistic job titles across engineering, product, marketing, and operations.
  • date โ€” ISO 8601 date (YYYY-MM-DD) between 2010 and 2025.
  • number โ€” Integer in [min, max] (default 0โ€“100).
  • boolean โ€” true or false with roughly even distribution.
  • loremSentence โ€” A 5โ€“12 word sentence from the lorem ipsum word pool.

Working with the exported data

The JSON output is formatted with 2-space indentation and can be pasted directly into test fixture files, used as mock API responses, or fed into tools like the JSON Formatter for further inspection. If you need to validate the structure before using it, the JSON Formatter's validation mode will catch any issues.

For database workflows, the CSV export pairs well with the CSV โ†’ SQL INSERT converter when you need a different table name or dialect. The SQL output from this tool generates standard ANSI INSERT statements with double-quoted identifiers, single-quoted strings (with embedded quotes properly escaped), NULL for missing values, and unquoted numbers and booleans โ€” compatible with PostgreSQL, MySQL, SQLite, and most other databases.

Need placeholder text for description or bio columns? Switch the field type to Lorem Sentence, or head to the Lorem Ipsum Generator for longer multi-paragraph placeholder copy.

If you need UUIDs in bulk without building a full schema, the dedicated UUID Generator generates up to 100 UUIDs at once with a single click.

Common use cases

  • Database seeding. Populate development and staging databases with enough realistic data to test queries, indexes, and pagination without touching production.
  • API mocking. Generate JSON fixtures for mock servers, Storybook stories, and frontend development before the backend is ready.
  • Automated test fixtures. Use a fixed seed to generate deterministic test data that stays stable across test runs and CI environments.
  • UI stress testing. Generate rows with long names, unusual characters, or edge-case values to check that layouts handle real-world variation.
  • Spreadsheet demos. Populate demo spreadsheets for client presentations, training materials, and documentation without using real customer data.
  • Privacy compliance. Replace production data exports with realistic fakes before sharing datasets with contractors, analytics tools, or third-party services.

Frequently asked questions

What field types are supported?

The generator supports 15 field types: firstName, lastName, fullName, email, phone, streetAddress, city, country, company, jobTitle, date (ISO 8601), number (with optional min/max), boolean, uuid (v4), and loremSentence. You can mix any combination of these into your schema.

Is the generated data reproducible with a seed?

Yes โ€” for all field types except UUID. Entering the same seed string produces identical output for names, emails, addresses, numbers, booleans, dates, and lorem sentences. UUID fields always use crypto.randomUUID() which is intentionally non-deterministic for security. Leave the seed blank for freshly random data every time.

Can I export to SQL, CSV, and JSON?

Absolutely. JSON output is pretty-printed and ready to paste into your code or a fixture file. CSV includes a header row and works in spreadsheets, databases, and import wizards. SQL generates one INSERT statement per row with properly escaped string values (single quotes doubled), NULL for missing values, and unquoted numbers and booleans.

Is any data sent to a server?

No. The generator runs entirely in your browser. No data is transmitted, logged, or stored anywhere. You can use it with confidence for generating data that resembles personal information.

How many rows can I generate at once?

Up to 1,000 rows per generation. For most testing and development purposes this is more than enough. If you need millions of rows, generate in batches and combine the output files.

Get weekly dev tools and tips