Mock Data Generator Online — Free Fake JSON, CSV & SQL Test Data
Mock Data Generator — Free Fake JSON, CSV & SQL Test Data Online
A mock data generator (also called a fake data generator or dummy data generator) creates realistic but entirely fictitious datasets for software development, API testing, database seeding, UI prototyping, and QA. Instead of writing sample records by hand or waiting for real data, you define a field schema and generate up to 1,000 rows in any format in seconds.
This free online tool runs entirely in your browser — your schema and generated data are never sent to any server. Settings are saved to localStorage so your schema is ready the next time you visit.
20 Field Types for Realistic Fake Data
Every field in the schema is independently typed. Mix and match types to build a dataset that mirrors your real database schema.
Identity & Keys
- Auto Increment — Sequential integer starting at 1. Perfect for primary keys (id, seq). Output as a number, not a string — databases and JSON parsers treat it correctly.
- UUID — Standard v4 UUID:
550e8400-e29b-41d4-a716-446655440000. Use for distributed IDs, API resource identifiers, and GUID fields.
People & Contact
- Name — Culturally appropriate full name from 12 locale pools. English:
John Smith, Korean:김민준, Japanese:田中 一郎, Arabic:محمد العلي - Username — Login-style handle:
jessica_42ormichael73. Combines a common first name with a numeric suffix. - Email — Realistic email address:
james312@gmail.com. Generated from a name pool and common domain list. - Phone — Country-formatted phone number in 12 locales. US:
+1-555-234-5678, Korea:+82-10-1234-5678, Germany:+49-151-12345678
Numbers & Dates
- Integer — Random whole number within your min/max range. Output as a JSON number (not quoted).
- Float — Random decimal within range with configurable decimal places.
3.14,99.99 - Boolean — Random
trueorfalse. Output as a JSON boolean (not a string). - Date — Random date within a From/To range:
2023-07-15. YYYY-MM-DD format. - Timestamp — Unix epoch seconds within a date range:
1718455800. Output as an integer. Multiply by 1000 for millisecond APIs.
Network & System
- URL — Plausible HTTPS URL:
https://cache.io/users - IPv4 — Random public IP address:
203.0.113.42 - IPv6 — Full 128-bit address:
2001:0db8:85a3:0000:0000:8a2e:0370:7334 - MAC Address — Network hardware address:
AA:BB:CC:DD:EE:FF
Text, Categorization & Control
- Hex Color — CSS color value:
#3a7bd5. Use for avatar color seeds, theme data, or color picker testing. - Lorem Text — N lorem ipsum words inline:
lorem ipsum dolor sit amet. Configurable word count. - Country — Random country name from a pool of 40 countries:
South Korea,Germany,Brazil - Enum — Random pick from your comma-separated list.
pending, active, suspended→ always one of those three values. - Custom (Fixed) — Same value in every record.
currency: "USD",source: "api". Distinct from Enum — never random.
Output Formats — JSON, CSV, and SQL INSERT
JSON Array Output
Example — 2 records with id (Auto Increment), name, email, active (Boolean):
[
{
"id": 1,
"name": "Jessica Garcia",
"email": "james312@gmail.com",
"active": true
},
{
"id": 2,
"name": "김민준",
"email": "linda77@example.com",
"active": false
}
]CSV Output
Same schema as CSV — ready for Excel, Google Sheets, or database import:
id,name,email,active 1,"Jessica Garcia",james312@gmail.com,true 2,김민준,linda77@example.com,false
SQL INSERT Output
SQL INSERT — paste directly into MySQL, PostgreSQL, or SQLite:
INSERT INTO users (id, name, email, active) VALUES (1, 'Jessica Garcia', 'james312@gmail.com', true); INSERT INTO users (id, name, email, active) VALUES (2, '김민준', 'linda77@example.com', false);
Strings are single-quoted and escaped; numbers and booleans are unquoted. Set the table name in Output Settings.
Multilingual Name & Phone Generation
The Name and Phone field types support 12 locale-specific pools ordered by global speaker count. Select the locale per field — each field is independent, so you can mix an English name with a Korean phone number, for example.
| Locale | Name example | Phone example |
|---|---|---|
| English | John Smith | +1-555-234-5678 |
| 中文 | 王 伟 | +86-138-1234-5678 |
| हिन्दी | Raj Sharma | +91-98765-43210 |
| Español | Carlos García | +34-612-345-678 |
| Français | Jean Dupont | +33-6-12-34-56-78 |
| العربية | محمد العلي | +966-50-1234567 |
| Português | João Silva | +55-11-91234-5678 |
| Русский | Иван Иванов | +7-912-345-67-89 |
| Indonesia | Budi Santoso | +62-812-3456-7890 |
| Deutsch | Hans Müller | +49-151-12345678 |
| 日本語 | 田中 一郎 | +81-90-1234-5678 |
| 한국어 | 김민준 | +82-10-1234-5678 |
Lorem Ipsum Generator — 13 Languages
Lorem Ipsum is placeholder text used in design and typography since the 16th century. It originates from a scrambled excerpt of Cicero's Latin philosophical work (45 BC) and has been the standard dummy text in print and digital design for over 550 years — hence the label Latin (Classic).
The Lorem Ipsum tab extends this concept to 12 modern languages, letting frontend developers test multilingual UI layouts with script-appropriate placeholder text: right-to-left rendering for Arabic, CJK character spacing for Chinese and Japanese, Devanagari script for Hindi, and Cyrillic for Russian.
Generate modes:
- Words —
lorem ipsum dolor sit amet— a flat list of N words - Sentences — Capitalized sentences ending in a period (or 。 for CJK)
- Paragraphs — Multiple sentences grouped into paragraphs, separated by blank lines
Common Use Cases
1. Frontend Development — Populate UI Before the API Exists
Generate a JSON array matching your API's response shape. Use it as a fixture file, paste it into a JSON server, or hardcode it in a component during prototyping. Fields like UUID, Timestamp, and Boolean map directly to typical REST API response fields.
2. Database Seeding — Seed a Dev or Staging Database
Set the output format to SQL INSERT, enter your table name, configure the exact column schema your table expects, and generate 500–1,000 records. Paste the output directly into a MySQL or PostgreSQL client. Auto Increment handles the primary key automatically.
3. QA & Test Automation — Generate Edge-Case Datasets
Use Enum to control allowed values (e.g., status: pending/active/banned), Integer with a tight range to test boundary conditions, and Boolean to mix true/false rows. Generate multiple batches with different configurations to cover positive, negative, and null-like scenarios.
4. Data Analysis & Reporting — Build Sample Datasets
Export as CSV and open directly in Excel, Google Sheets, or pandas. The CSV header row matches your field names exactly. Float with configurable decimals works for financial figures; Timestamp gives Unix-style date columns.
5. UI/UX Design — Realistic Figma & Storybook Data
A user list with Name (12 locales), Email, Phone, and Country covers international diversity in mockups. Hex Color works as an avatar seed. Lorem Text fills description fields without Lorem Ipsum's visual uniformity.
Frequently Asked Questions
What is the difference between Enum and Custom (Fixed)?
Enum picks a random value from your comma-separated list on every record — e.g., status could be 'pending', 'active', or 'banned' with equal probability. Custom outputs the exact same value for every record — e.g., currency is always 'USD'. Use Enum for categorical variation, Custom for constants that apply to all rows.
How does the Timestamp field differ from the Date field?
Date outputs a human-readable string (2024-03-15). Timestamp outputs a Unix epoch integer (1710460800). Timestamps are preferred by most APIs and backend systems because they are timezone-independent and arithmetically comparable. To convert to milliseconds (JavaScript's Date.now() format), multiply by 1000.
Can I generate multilingual data in the same dataset?
Yes. Each field is configured independently. Add a Name field with English locale for the full_name column, another Name field with Korean locale for the korean_name column, and a Phone field with Japanese locale — all in one schema. The generator treats each field's locale setting separately.
Is my schema saved when I leave the page?
Yes. The field definitions, record count, output format, and table name are all persisted to your browser's localStorage automatically. When you return to the page, everything is restored. Nothing is stored on any server.
How many records can I generate at once?
Up to 1,000 records per click. For large datasets, generate multiple batches and combine them. Because all computation runs in the browser with WebAssembly, 1,000 records with 10 fields generates in under 50 milliseconds on typical hardware.