Toolvore

Mock Data Generator

Generate repeatable test data from a custom schema; export JSON, CSV, NDJSON or SQL.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Generates deterministic synthetic datasets from a configurable 20-column schema, with constraints, nulls and uniqueness controls across 18 field types and exports for JSON, CSV, NDJSON or batched SQL inserts.

How to use it

  1. 1Set 1–10,000 rows, a repeatable seed and JSON, CSV, NDJSON or SQL output; for SQL, enter the destination table name.
  2. 2Add, remove or reorder up to 20 columns, choosing from sequence, names, email, numbers, UUID-shaped IDs, dates, phone, place, company, enum, pattern and text types.
  3. 3Configure ranges, decimal places, enum values or pattern tokens, plus each column's null percentage and uniqueness rule.
  4. 4Generate, inspect the first ten rows, then copy or download the result; reuse the same seed and schema to reproduce it exactly.

Example

Input
1 row, seed toolvore-demo-2026, JSON, with the six default columns
Output
[ { "id": 1, "first_name": "Fatima", "last_name": "Martinez", "email": "fatima.martinez.1@example.com", "status": "trial", "created_at": "2026-12-14T21:46:49.598Z" } ]

The default sequence starts at 1, email is unique, status comes from active/trial/paused and created_at spans 2024-01-01 through 2026-12-31. SQL output quotes identifiers and values and splits inserts into batches of 250 rows.

What happens to your data

Generation uses fixed synthetic lists and a seeded browser-side pseudo-random generator; there is no upload, fetch or real-person lookup. Output is capped at 10,000 rows and 8 MB, and uniqueness gets 2,000 attempts before returning an honest error. It is reproducible test data, not cryptographically random, globally unique, locale-complete or suitable for secrets and security tokens.

Last updated September 2026

Create reproducible synthetic rows from an editable schema instead of accepting a different random result on every run. This seeded fake data is useful when a test fixture or bug report must regenerate exactly. Name and reorder columns, choose from 18 useful data types, add constraints, and preview the first rows before copying or downloading JSON, CSV, NDJSON, or batched SQL INSERT statements.

Generation is local-only. The same seed and valid schema produce byte-for-byte identical output, which makes fixtures easier to review, share, and regenerate.

How it works

Available types include sequence, UUID v4, names, email, integer, decimal, boolean, date, datetime, phone, city, country, company, enum, pattern, and text. Constraints include nullable percentage, unique non-null values, numeric or date ranges, decimal precision, enum choices, text length, and simple pattern tokens.

Pattern uses # for a digit, ? for an uppercase letter, and * for an alphanumeric character; a backslash escapes the next character. Unique generation retries deterministically and returns an honest error when the requested domain cannot supply enough distinct non-null values. Null itself may repeat.

The safety limits are 10,000 rows, 20 columns, and 8 MiB of generated output. CSV quotes fields and uses CRLF rows; NDJSON emits one object per line; SQL quotes identifiers and values and groups rows into batches of 250. Review generated SQL against the target database dialect before running it.

Common use cases

  • Create stable fixtures for tests and demos
  • Generate boundary data from numeric or date ranges
  • Produce enum- and pattern-constrained identifiers
  • Share the seed and schema for reproducible bug reports
  • Export the same rows as JSON, CSV, NDJSON, or SQL

Frequently asked questions

Will the same mock-data seed always reproduce the same file?+

Yes, when the seed, row count, schema, constraints, column order, and output format are unchanged. The generated bytes are deterministic for the current implementation.

How do unique values interact with nullable fields?+

Uniqueness applies to non-null values. Null may appear more than once according to the nullable percentage. If a small domain cannot provide enough unique values, generation stops with an error.

What do the pattern characters mean?+

# inserts a digit, ? inserts an uppercase letter, and * inserts an alphanumeric character. Use a backslash before a token to keep that character literally.

Is the SQL output ready to execute unchanged?+

It safely quotes generated identifiers and literal values and uses batches of 250 rows, but SQL dialects and table constraints differ. Review the table name, column types, reserved words, and transaction needs before execution.

Is synthetic data guaranteed to be realistic or production-safe?+

No. Names, places, companies, phones, and other values come from finite synthetic rules and lists. Use the generator for fixtures and examples, then validate distributions and business rules for the real test.

Can the generator create relationships between tables?+

No. This version creates one flat schema at a time. You can use sequence or pattern columns as stable keys, but foreign-key relationships are not generated automatically.

What limits prevent the browser from being overwhelmed?+

A run is limited to 10,000 rows, 20 columns, and 8 MiB of output. The preview shows the first 10 rows while copy and download use the complete generated result.

Does generated mock data leave the device?+

No. Schema editing, seeded generation, preview, copy, and download all run locally in your browser.