Generate realistic fake test data - names, emails, addresses, Luhn-valid cards, UUIDs - and export as JSON, CSV or SQL. Seeded, in-browser, free.
This mock data generator builds realistic but entirely fake records — names, email addresses, phone numbers, postal addresses, companies, job titles, financial values, network identifiers and Lorem ipsum text — and exports them as JSON, CSV or ready-to-run SQL INSERT statements. Pick the fields you want, choose how many rows to generate, optionally set a seed for reproducible output, and download the result. Everything runs in your browser: no signup, no upload, and no real personal data anywhere in the process.
Realistic test data is what makes a staging environment behave like production. Empty tables hide pagination bugs, off-by-one errors, layout breakage from long names, and sort issues. Copying real customer records into a test database is a privacy and compliance risk. Generated fake data solves both problems: it looks and sorts like the real thing without exposing anyone, and it is safe to commit to a fixtures file or share with a teammate.
Fields are grouped into categories so you can toggle a whole set at once. Available fields include:
A locale selector (US, UK, Australia, Canada) changes the shape of names, cities, states, street suffixes and phone-number formats so the output matches the region you are testing for.
INSERT statements (with a table name you specify) for seeding a database directly.The generator uses a seeded pseudo-random number generator. Given the same seed, the same fields and the same row count, it produces byte-for-byte identical output. That is the difference between throwaway data and a test fixture. If a test fails on row 47, a colleague can regenerate the exact same 47th row from the same seed and see the same failure. Leave the seed blank and you get fresh random data each time, which is better for smoke-testing input handling.
The credit-card numbers pass the Luhn checksum — the same mod-10 algorithm real card networks use — so they will satisfy client-side validation in a checkout form. They use standard issuer prefixes (Visa, Mastercard, Amex) but are otherwise random and are not connected to any real account. The SSNs and bank details are formatted to look plausible but are explicitly fake. Use this data for testing validation logic and UI, never as though it were real: a Luhn-valid number is not an authorised payment instrument.
Suppose you need to seed a users table. Enable Full Name, Email Address, City, Job Title and UUID; set 200 rows; set a seed of demo-2026; choose SQL export and a table name of users. The tool emits 200 INSERT INTO users (...) VALUES (...); statements you can paste straight into a migration or a psql session. Switch the export to JSON and the same 200 records become an array of objects suitable for an API mock or a Jest fixture — identical data, different serialisation.
No. Every value is fabricated. Names come from curated lists, and cards, SSNs and bank numbers are formatted to look valid but correspond to no real person or account.
No. They pass the Luhn checksum so they satisfy format validation, but they are random and unlinked to any account. They exist to test validation and UI, not to make transactions.
Enter a seed. The same seed with the same fields and row count always produces the same output, which makes it ideal for committed test fixtures.
JSON, CSV and SQL INSERT statements. For SQL you can set the target table name.
Between 1 and 1,000 rows per generation. Run it again for more.
Yes. The locale selector supports the United States, United Kingdom, Australia and Canada, which changes names, cities, states, street suffixes and phone formats.
No. Generation and export happen entirely in your browser, so the data and your field choices never leave your device.
Pair this with the UUID generator when you need standalone identifiers, the data format converter to reshape the output into YAML or XML, and the SQL formatter to tidy the generated INSERT statements before committing them.
A mock data generator creates realistic but fictional data for software development, testing, and demonstrations. Instead of using real customer information—which raises privacy and compliance concerns—developers generate synthetic datasets that mimic production data patterns, including names, addresses, emails, phone numbers, dates, and domain-specific fields.
Mock data is essential throughout the software development lifecycle. During prototyping, it populates interfaces so designers can evaluate layouts with realistic content. During testing, it feeds automated test suites with diverse inputs to catch edge cases. During demos, it provides believable sample data without exposing actual business information.
Modern mock data generators use several techniques to produce realistic output:
Template-based generation uses predefined patterns with random substitution. For example, a phone number template like (###) ###-#### replaces each # with a random digit. This ensures correct formatting while producing unique values.
Locale-aware generation produces data appropriate for specific regions. A US address includes state abbreviations and ZIP codes, while a UK address uses postcodes and counties. Names follow cultural naming conventions for the selected locale.
Relational generation maintains consistency within a record. If a generated person lives in Texas, their phone area code, city, and ZIP code are all consistent with that state. This referential integrity makes the data useful for testing relational databases and APIs.
| Data Type | Example Output | Variations |
|---|---|---|
| Full name | Jane Martinez | Locale, gender, format |
| j.martinez@example.com | Domain, format pattern | |
| Address | 742 Oak St, Austin, TX 78701 | Country, urban/rural |
| Phone | (512) 555-0147 | Country code, format |
| Date | 1988-03-15 | Range, format |
| UUID | 550e8400-e29b-41d4-a716-446655440000 | v4, v7 |
| IP address | 192.168.42.107 | IPv4, IPv6, range |
The Mock Data Generator is a free tool that creates realistic fake data for testing and development purposes. It can generate personal information (names, emails, addresses), business data (companies, job titles), financial data (credit cards, bank accounts), internet data (IPs, URLs, UUIDs), and text content across multiple locales including US, UK, Australia, and Canada.
The tool supports three export formats: JSON for API testing and JavaScript applications, CSV for spreadsheets and database imports, and SQL INSERT statements for direct database population. You can copy the generated data to your clipboard or download it as a file.
No, all generated financial data is completely fake and cannot be used for real transactions. Credit card numbers follow the Luhn algorithm format to appear valid but are not connected to any real accounts. Social Security Numbers are generated with formats that avoid real SSN patterns. This data is safe to use in test environments.
The seed option allows you to generate the same data set every time by providing a specific number. This is useful when you need consistent test data across multiple runs or when sharing test scenarios with team members. Leave it empty for random data each time, or set a specific value for reproducible results.
You can generate between 1 and 1,000 rows of data in a single batch. For datasets up to 20 rows, the tool also displays a preview table so you can visually verify the generated data before exporting. All processing happens client-side in your browser.
No, all data generation happens entirely in your browser using JavaScript. No data is sent to any server. The generated data exists only in your browser session until you export or copy it. This makes the tool safe to use even when generating sensitive-looking test data.