Mock Data Generator
Building prototypes, stress-testing database schemas, and validating frontend UI states requires realistic test data that accurately reflects production environments without exposing sensitive customer information. This free, client-side mock data generator produces structured synthetic datasets in JSON, CSV, SQL, and NDJSON formats with customizable fields, realistic attributes, and deterministic seeded reproducibility. Everything runs securely in your browser—no data is ever transmitted or stored.
Free client-side tool · zero server transmission
Generate realistic mock datasets
Produce structured mock records in JSON, CSV, SQL, and NDJSON with customizable schemas, realistic attributes, and deterministic seeded PRNG.
- 100% Client-side
- JSON, CSV, SQL & NDJSON
- Deterministic seeded PRNG
- Instant export & download
1Schema & Field Selection
Choose a pre-configured domain template or customize fields below.
Formatted for frontend state, CSV imports, or SQL DB migrations.
Used in INSERT INTO `table` statements.
Identical seed values generate identical datasets for reliable automated CI tests.
2Dataset Output & Metrics
Generated 10 mock records across 7 schema fields.
- Records 10
- Columns 7
- Payload Size 1.9 KB
- PRNG Mode Random
No Fields Selected
Please choose at least one schema field from the left panel to generate mock data.
What Is Mock Data and Why Is Synthetic Test Data Essential?
Mock data (also known as synthetic test data or dummy data) consists of programmatically generated, structurally valid records that mimic the shape, constraints, and semantics of real production records without containing any genuine customer or proprietary information. Whether you are scaffolding a new SaaS frontend, benchmarking database query indices, building automated integration pipelines, or configuring automated demo environments, high-fidelity mock data is a foundational engineering requirement.
Modern data protection frameworks—including the European Union General Data Protection Regulation (GDPR), California Consumer Privacy Act (CCPA), and Health Insurance Portability and Accountability Act (HIPAA)—strictly prohibit using raw, un-anonymized production databases in staging, testing, or development environments. Storing unmasked customer emails, phone numbers, and physical addresses on local developer laptops introduces severe security risks and regulatory non-compliance liabilities. Synthetic mock data completely eliminates these liabilities by providing realistic schema attributes that are 100% synthetic.
Supported Data Formats: JSON, CSV, SQL & NDJSON Compared
Different development stacks, test suites, and database engines demand distinct serialization formats. This generator natively supports the four primary formats used across modern engineering workflows:
| Format | Primary Use Case | Key Structural Feature | Database & Tool Compatibility |
|---|---|---|---|
| JSON (Array of Objects) | Frontend state, REST API mocks, Postman collections | Standard hierarchical notation with key-value pairs | Node.js, React, Vue, Next.js, Python, NoSQL |
| CSV (RFC 4180) | Bulk data imports, spreadsheet modeling, analytics | Compact comma-separated rows with quoted strings | PostgreSQL COPY, MySQL LOAD DATA, Excel, Sheets |
| SQL (INSERT INTO) | Local database seeding, migration scripts, integration tests | Standard ANSI INSERT INTO `table` multi-row tuples |
PostgreSQL, MySQL, SQLite, MariaDB, CockroachDB |
| NDJSON (Newline Delimited) | Big data streaming, distributed logging, search indexing | One standalone, valid JSON object per line without wrappers | Elasticsearch, AWS Athena, BigQuery, Kafka, Apache Spark |
Deterministic Seeded Generation vs. Pseudo-Random Testing
A frequent problem in automated continuous integration (CI) environments is "flaky tests"—test suites that intermittently pass or fail due to non-deterministic random inputs. When test fixtures generate completely random strings on every build, subtle edge cases (such as name length variations or date boundaries) can cause assertions to fail unpredictably, making regressions painful to diagnose.
This generator solves that issue by integrating a 32-bit Mulberry32 pseudo-random number generator (PRNG). When the Deterministic Seed toggle is enabled and supplied with an integer seed (such as 42 or 1024), the mathematical algorithm guarantees that the exact same sequence of records, names, UUIDs, dates, and amounts is generated on every run, across any modern web browser. You can commit the resulting dataset or seed value directly into your git repository fixtures, ensuring completely reproducible test runs across your entire development team.
Realistic Field Generators & RFC 2606 Compliance
Naive dummy data generators often fill columns with lorem ipsum strings or arbitrary randomized characters that break validation regexes in frontend forms and database constraints. This tool utilizes specialized generator heuristics designed for production-level fidelity:
- RFC 4122 Version 4 UUIDs: Cryptographically compliant 36-character hexadecimal identifiers with exact version and variant bit placement (
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx). - RFC 2606 Reserved Email Domains: Generated email addresses are automatically matched to recipient names (e.g.,
[email protected]) using safe domains reserved by the Internet Assigned Numbers Authority (IANA)—such asexample.com,example.org, andtestmail.dev. If a mock dataset accidentally triggers an outbound email in a test harness, no real user will ever receive spam. - Fictional North American Telephone Numbers: Phone numbers utilize the official fictional exchange range assigned under the North American Numbering Plan (
+1 (XXX) 555-0100to555-0199), preventing accidental dialing of real private lines. - Consistent Geographic Data: Cities, administrative states, and countries are mapped as coherent entities—ensuring that Munich maps to Germany, Toronto maps to Canada, and San Francisco maps to the United States.
- Standard ISO 8601 Timestamps: Dates are output in standardized UTC representation (
YYYY-MM-DDTHH:MM:SSZ) compatible with native JavaScriptDate.parse()and SQLTIMESTAMPcolumns.
Step-by-Step Guide: Creating a Custom Test Dataset
- Select a Domain Preset: In the left panel, choose a starter template that matches your architectural domain: User Accounts, E-Commerce Orders, B2B Leads, or Employees & HR.
- Customize Schema Fields: Toggle specific attributes on or off across the four categorized fieldsets. You can remove unwanted fields or click Select All to produce comprehensive wide-table records.
- Configure Generation Parameters: Select your desired record count (from 1 to 500 rows) using the numeric input or quick-select chip buttons.
- Choose Your Output Format: Select between JSON, CSV, SQL, or NDJSON. If generating SQL, specify your target table identifier (e.g.,
usersororders). - Optionally Enable Seeded PRNG: Check the Deterministic seed option and input an integer if you require reproducible test fixtures.
- Export Your Data: Click Copy Output to place the generated dataset onto your clipboard, or click Download File to save it directly to your local file system.
Technical Limitations and In-Browser Boundaries
To preserve complete privacy and deliver instant responsiveness, this tool runs entirely on the client side using pure vanilla JavaScript. Because no records are sent to or processed by a remote server, the following boundaries apply:
- Browser Memory Threshold: Generation is optimized for datasets between 1 and 500 rows. Generating hundreds of thousands of records simultaneously inside a single browser tab can cause memory overhead and DOM rendering bottlenecks. For multi-gigabyte warehouse benchmarks, command-line synthetic generators (such as PostgreSQL's
generate_series()or specialized CLI tools) are recommended. - Synthetic Data Only: All names, addresses, and phone numbers are generated purely through synthetic combinatorial dictionaries. They do not represent real individuals, businesses, or credit facilities.
- Zero Server Storage: Your configured schema and generated output are not stored in browser cookies or server databases. Once the tab is closed or refreshed, the generated payload is cleared from memory.
Frequently Asked Questions
Is any of my schema or generated data uploaded to a remote server?
No. The entire generation engine runs locally inside your browser's JavaScript V8/SpiderMonkey runtime. No network requests are made, no third-party CDNs are contacted, and no cookies or tracking scripts are deployed. You can safely generate datasets containing proprietary schema column names without confidentiality concerns.
Can I execute the generated SQL output directly in MySQL or PostgreSQL?
Yes. The SQL export produces standard ANSI multi-row INSERT INTO `table_name` (columns...) VALUES (...) statements. Text values are escaped by doubling single quotes ('') in accordance with ANSI SQL standards, numeric amounts remain unquoted, and booleans are output as integer flags (1 or 0) compatible with MySQL, SQLite, and PostgreSQL.
How does the deterministic seed feature ensure identical results?
Standard JavaScript Math.random() does not accept a seed and produces unpredictable pseudo-random numbers based on system time and entropy. When you enable the seed option, this tool switches to a 32-bit Mulberry32 linear congruential generator initialized with your specific seed value. Every mathematical operation in the PRNG produces identical numerical output across repeated runs on any operating system.
Are the generated email addresses and phone numbers safe for testing?
Yes. All email addresses strictly use domains reserved under RFC 2606 (including example.com, example.org, and testmail.dev) which can never resolve to active public mailboxes. Phone numbers strictly utilize the 555-01XX series reserved specifically for fictional entertainment and testing purposes.
What is the difference between standard JSON and NDJSON?
Standard JSON represents multiple records as a single array enclosed in brackets ([...]) with commas separating objects. This requires parsing the entire file into memory before inspecting individual records. NDJSON (Newline Delimited JSON) places one complete, un-enclosed JSON object on each individual line. This allows stream processors, logging engines, and databases (like Elasticsearch and BigQuery) to process massive datasets line-by-line with minimal memory overhead.
How do I import the generated CSV into spreadsheet software?
The generated CSV adheres strictly to RFC 4180: all string fields are enclosed in double quotes, and internal quotes are escaped with double quotes. You can download the .csv file and open it directly in Microsoft Excel, Google Sheets, LibreOffice Calc, or import it into databases using PostgreSQL COPY or MySQL LOAD DATA INFILE.
What sibling tools are available for developer workflows?
Explore our companion developer utilities: configure dynamic HTTP payloads with the API Request Body Builder, generate random UUID tokens with the UUID Generator, transform structured files with the CSV to JSON Converter and JSON to CSV Converter, or audit datasets for sensitive information with the PII Scanner. For full-service cold outbound campaign architecture, visit our Cold Email Outreach service.