QiLing Tools

🧪Mock Data Generator Online - Fake Test Data as JSON, CSV, SQL or TypeScript

Development and testing constantly call for realistic-looking data: seeding a database, checking table pagination, demoing a UI or load-testing an API. Define fields the way you would design a table — a name and a type — and generate up to 10,000 rows at once. More than 30 types are built in: auto-increment ID, UUID v4, English and Chinese names, usernames, emails, US and Chinese phone numbers, US and Chinese addresses, cities, ZIP codes, company and product names, integer and decimal ranges, date, date-time and timestamp ranges, booleans, custom enums, words, Lorem sentences and paragraphs, Chinese sentences, IPv4, IPv6, MAC addresses, URLs, hex and HSL colors and constants, and every field can have a null percentage. Names, usernames and emails in the same row match each other for more believable data. Generation uses a seeded pseudo-random generator, so the same seed and fields always produce exactly the same data — ideal for reproducible tests. Export as JSON, JSON Lines, CSV with a choice of delimiter, SQL INSERT statements for MySQL, PostgreSQL, SQLite or SQL Server with configurable batch size, or a typed TypeScript array, and start from the Users, Orders or Products presets.

Free · No sign-up · Runs in your browserLast updated:

Loading tool...

How to use Mock Data Generator

  1. 1Pick a preset or add fields one by one and set their types and options
  2. 2Set the row count and seed, and check the preview table
  3. 3Choose an output format (JSON / CSV / SQL / TypeScript), then copy or download

FAQ

Are the generated names, phones and addresses real?
No. Names are random combinations of common first and last names, and addresses are assembled from cities, streets and random house numbers, so they are fictional. US phone numbers use the 555-01xx range reserved for fiction and emails only use reserved domains such as example.com, so nothing reaches a real inbox. Chinese mobile numbers only follow a valid prefix format and may coincide with real numbers, so never call or text them.
What is the seed for?
The seed determines the random sequence. As long as the seed and the fields stay the same, every run produces identical data, and the first N rows stay the same when you change the row count. That keeps test cases, screenshots and bug reproductions consistent. Click New seed when you want a fresh batch.
Can I import the SQL output directly?
Yes. Pick your database and identifiers are quoted the way it expects (backticks for MySQL, brackets for SQL Server, double quotes for PostgreSQL and SQLite), single quotes in strings are escaped, and booleans and NULL follow the dialect. You can choose how many rows go in each INSERT; 100–1,000 rows per statement imports much faster for large batches. You still need to write the CREATE TABLE statement yourself.
How many rows can it generate, and will it be slow?
Up to 10,000 rows per run, and generation itself usually takes a few dozen milliseconds. For large results the text box shows only the beginning to keep the page responsive, while copy and download always include everything. All data is generated locally in your browser and never uploaded.