Fake Data Generator
Generate realistic fake data for testing: names, emails, phones, addresses, UUIDs, dates, IPs, URLs, and more. Export as JSON or CSV. Free, browser-based.
- Runs in your browser
- Your data never leaves your browser
- Free · No Sign-Up
Scan with WeChat to share this tool
Examples, details and FAQ Worked examples, how it compares with other tools, and answers to common questions.
Use Cases
Fake data is essential at every stage of software development. Seed a dev database without polluting it with real user records. Mock an API response for frontend development. Populate a spreadsheet for QA testing or a UI demo that needs to look realistic.
All generation happens client-side with no dependencies — names, addresses, and other
values are drawn from curated word lists and combined randomly. UUID generation uses
the browser’s crypto.randomUUID() API for cryptographic quality.
Field Formats
Every value comes from a fixed English word list or a random number. The formats below match the generator code:
| Field | Format | Example |
|---|---|---|
| Full Name | first name + last name (40 × 30 names) | Susan Smith |
first.last + two digits + @ provider domain | richard.hernandez90@hotmail.com | |
| Phone | US style (NXX) NXX-XXXX | (545) 491-8460 |
| Street / City / State / Zip | house number + street name; US state code; 5-digit ZIP | 2275 Main St, Franklin, NJ, 81966 |
| UUID | version 4 from crypto.randomUUID() | 94095dcb-d3ad-42d5-8a12-f082307eeaff |
| Date | YYYY-MM-DD, 2020–2026, day 1–28 | 2022-11-19 |
| IP Address | IPv4 only | 208.157.61.111 |
| URL | https:// + name + TLD + one path segment | https://danieldavis.app/login |
| Color (Hex) | # + 6 lowercase hex digits | #69daa0 |
Limits
- Fields are independent. In one record, Email is not built from Full Name, and City, State, Zip, and Country do not form a real address. A record can have
"state": "NJ"and"country": "United Kingdom". - US and English only. The data is the same on every language version of this page: English names, US state codes, US phone numbers.
- Values repeat. In 2,000 test runs of 100 records, 98.9% of the runs had at least one repeated Full Name and 1% had a repeated Email. Use UUID when you need a unique key.
- Some values can be real. Email domains include real providers such as gmail.com, and phone numbers and IPv4 addresses are random, so a value can belong to a real person or host. Do not send mail to them or call them. For values that are reserved for documentation, use
example.com(RFC 2606) and192.0.2.0/24(RFC 5737). - 100 records per run. Larger counts are reduced to 100. There is no SQL export and no custom fields.
When to Use a Library Instead
Use @faker-js/faker in code when you need related fields, other locales, thousands of rows, or the same data on every run:
import { faker } from '@faker-js/faker';
faker.seed(42); // same output on every run
const firstName = faker.person.firstName();
const lastName = faker.person.lastName();
const user = {
name: `${firstName} ${lastName}`,
email: faker.internet.email({ firstName, lastName }),
}; FAQ
What is a fake data generator?
A fake data generator creates realistic but fictitious data for use in software testing, UI prototyping, database seeding, and demos. The values are random combinations of English word lists and numbers, not records of real people.
Is this tool safe to use?
Yes. All data is generated in your browser using JavaScript. Nothing is sent to any server. The output is random. Email domains are real providers and phone numbers are random, so a generated value can match a real one by chance; do not use them to contact anyone.
What output formats are supported?
JSON and CSV. JSON is ideal for API mocking and JavaScript testing. CSV works well for spreadsheet imports, database seeding, and data analysis tools.
How many records can I generate at once?
Up to 100 records per generation. For larger datasets, generate multiple times and combine the output.
Can I select specific fields?
Yes. Use the checkboxes to pick exactly the fields you need. Only selected fields appear in the output.