Fake JSON Generator
Generate realistic fake JSON datasets with custom fields — names, emails, addresses, and more.
Fields (3)
Click Generate to create fake data
Fake JSON Generator builds a JSON array of mock records from a field list you define. Each field has a name and one of 13 types (name, email, phone, company, address, UUID, numeric ID, date, URL, boolean, number, avatar URL or lorem text), and you choose how many records to generate, from 1 to 1000. The output is pretty-printed JSON you can copy or download as a .json file.
Use it to seed a local database, stub an API endpoint in a frontend before the backend exists, fill a table or list component with realistic-looking rows, or produce fixtures for tests. The data is generated with Math.random() from built-in word lists, so it is random and not reproducible between runs, and it is not suitable for anything security-sensitive. For secure random values use the Password Generator.
Records are flat objects with one key per field. If you need a different shape, generate the data here and then convert it with the JSON to CSV converter for spreadsheets and SQL imports, or inspect it in the JSON Formatter.
- Set the number of records with the slider or the number box (1-1000).
- Edit the default fields (id, name, email) or click Add Field to add more.
- For each field, type the key name and pick a data type from the dropdown; use the X button to remove a field.
- Click Generate to create the dataset. Click it again for a fresh random set.
- Copy the JSON, or click Download to save it as fake-data-<timestamp>.json.
- 13 field types: Name, Email, Phone, Company, Address, UUID, ID (Number), Date, URL, Boolean, Number, Avatar URL, Lorem Text
- Custom key names for every field
- 1 to 1000 records per run
- Output is a JSON array of objects with 2-space indentation
- Copy to clipboard or download as a .json file
- Generated entirely in the browser with no server calls
Default user fields, 2 records
[
{
"id": 482915,
"name": "Emma Garcia",
"email": "james.wilson417@outlook.com"
},
{
"id": 73108,
"name": "Michael Lee",
"email": "sarah.brown92@gmail.com"
}
]Each field is generated independently, so the email is not derived from the name in the same record.
Customer record with mixed types
Fields: customerId (UUID), company (Company), phone (Phone), address (Address), signupDate (Date), active (Boolean)
{
"customerId": "3f9c2a1e-7b4d-4e8a-9c2f-1d6b8e0a5f47",
"company": "Digital Nexus",
"phone": "415-287-6093",
"address": "2841 Maple St, Seattle, IL 98114",
"signupDate": "2022-07-19",
"active": true
}Dates are YYYY-MM-DD between 2020-01-01 and today; addresses are a single US-style string with city and state picked independently; phone numbers follow the XXX-XXX-XXXX pattern.
Generate button is disabled
All fields have been removed; at least one field is required.
Click Add Field, then set its name and type.
A field is missing from the output
Two fields share the same name, so the second value overwrote the first.
Give every field a unique key name.
Duplicate key violation when importing into a database
ID (Number) values are random, not unique, so collisions can occur, especially with hundreds of records.
Use the UUID type for primary keys, or let the database assign IDs on insert.
Avatar images do not load offline
Avatar URL values point to the external DiceBear API; the image is fetched only when your app renders the URL.
Use a local placeholder image in offline tests, or replace the URLs after generating.
What values does each field type produce?
Name: first and last name. Email: name-based address on domains like gmail.com or outlook.com. Phone: XXX-XXX-XXXX. Company: from a fixed list. Address: "street, city, state zip" as one string. UUID: version 4 format. ID (Number): random integer 1-1,000,000. Date: YYYY-MM-DD since 2020. URL: https link on example-style domains. Boolean: true or false. Number: integer 1-10,000. Avatar URL: a DiceBear avatar image URL. Lorem Text: 3-12 lorem ipsum words.
Are the ID values unique or sequential?
No. The ID (Number) type picks a random integer between 1 and 1,000,000 for each record, so duplicates are possible in larger datasets. If you need guaranteed unique keys, use the UUID type, or renumber the records after generating.
Can I generate nested objects or arrays inside a record?
No. Each record is a flat object with one primitive value per field, and addresses are a single string rather than an object. Restructure the output in your own script if you need nesting.
Could the generated emails belong to real people?
Emails combine common first and last names with real public domains such as gmail.com, so a generated address could match a real inbox. Do not send mail to generated addresses; replace the domain with example.com if your tests might send email.
What happens if two fields have the same name?
Both fields are generated, but JSON objects cannot hold duplicate keys, so the later field overwrites the earlier one and only one value appears. An empty field name is saved as "field".
Can I get the same dataset again?
No. There is no seed option, and each click of Generate produces new random values. Download the file if you need to keep a specific dataset for repeatable tests.
- JSON FormatterFormat, validate and minify JSON with syntax highlighting and error detection.
- JSON to CSV ConverterConvert a JSON array to CSV with a header row, or turn CSV back into JSON.
- UUID GeneratorGenerate random unique UUIDs (v4) in multiple formats — perfect for IDs and tokens.
- JSON CompareCompare two JSON objects side-by-side and detect added keys, removed keys, and changed values.
- JSON ExplainerPaste any JSON and get a plain-English breakdown of every key, type, and nested structure — no AI API needed.