JSON Fake Data Generator
Define a JSON template with placeholders and generate any number of fake records
Generate fake JSON data online for testing, prototyping, and demos. Define a JSON template with placeholders for names, emails, addresses, dates, numbers, and more, then create as many mock records as you need. This free JSON fake data generator helps developers seed databases, mock APIs, and test front-end apps with realistic data.
Generated records will appear here.
Press Ctrl+Enter or click Generate Data.
About JSON Fake Data Generator
The JSON Fake Data Generator turns a JSON template into any number of realistic mock records. Replace
values with placeholders such as {{firstname}} or {{email}}, choose how many
records you need, and the tool returns a JSON array. Data is produced on the server with the Bogus library.
Realistic test data is needed in almost every project: front-end prototypes need something to render before an API exists, back-end teams need payloads to exercise validation and pagination, and QA engineers need large, varied datasets that do not contain real customer information. Writing such data by hand is slow and tends to produce repetitive records. This tool lets you describe the shape of one record once and then produce as many different records as you need in a single click.
Key Features
- Template validation — the input is checked as JSON and must be an object before anything is generated, so mistakes are reported immediately.
- Up to 1000 records — generate a single sample or a full dataset, returned as a formatted JSON array.
- Type-aware output — numbers and booleans are emitted as real JSON numbers and booleans, not quoted strings.
- Works with any field name — use
{{auto}}and the generator picks suitable data from the key, so you are not limited to a fixed list of fields. - Nested structures — objects inside objects and arrays of values or objects are filled recursively.
- Full Bogus access — any Bogus data set method can be called with the
{{Category.Method}}syntax.
How to Use
- Write a template — a single JSON object whose values contain placeholders.
- Set records — choose between 1 and 1000 records.
- Generate — the template is validated first; invalid JSON or unknown placeholders are reported.
- Export — copy the result or download it as a
.jsonfile.
Placeholder Rules
- A value that is exactly one placeholder keeps its type, so
"{{int}}"becomes a number and"{{bool}}"becomes a boolean. - Placeholders inside longer text are replaced in place, for example
"User {{index}}: {{fullname}}". {{index}}is the 1-based record number.{{int:min:max}}and{{float:min:max}}accept a range.- Nested objects and arrays are supported. Values without placeholders are copied unchanged.
- Any field name works. Use
{{auto}}(or{{}}) and the data is chosen from the field name itself:"published": "{{auto}}"gives a boolean,"publishDate": "{{auto}}"a date,"template": "{{auto}}"a sentence,"userId": "{{auto}}"a number. A placeholder that is not in the list below, such as{{published}}, is matched the same way, first by its own name and then by the field name. If nothing matches, a random word is used. {{pick:draft:published:archived}}picks one of the listed values.- Any Bogus method without required parameters can be used as
{{Category.Method}}, for example{{Commerce.ProductName}},{{Name.JobTitle}}or{{Lorem.Paragraphs}}.
Supported Placeholders
{{address}}
{{avatar}}
{{bool}}
{{boolean}}
{{city}}
{{color}}
{{company}}
{{country}}
{{creditcard}}
{{currency}}
{{date}}
{{datetime}}
{{decimal}}
{{domain}}
{{email}}
{{firstname}}
{{float}}
{{fullname}}
{{futuredate}}
{{guid}}
{{iban}}
{{index}}
{{int}}
{{integer}}
{{ip}}
{{ipv6}}
{{jobtitle}}
{{lastname}}
{{latitude}}
{{longitude}}
{{name}}
{{number}}
{{paragraph}}
{{password}}
{{pastdate}}
{{phone}}
{{pick}}
{{prefix}}
{{price}}
{{product}}
{{sentence}}
{{state}}
{{street}}
{{url}}
{{username}}
{{uuid}}
{{word}}
{{zipcode}}
Example
A template such as { "id": "{{int}}", "firstName": "{{firstname}}", "email": "{{email}}", "address": { "city": "{{city}}" } }
with 3 records returns an array of three objects. Each object has a numeric id, a first name, an email address and a nested
address with a city, and every record contains different values. Adding fields such as "published": "{{auto}}" or
"publishDate": "{{auto}}" extends the record without changing anything else.
Real-World Use Cases
- Populating a table, list or dashboard while the real API is still under development.
- Creating request bodies and response fixtures for unit tests, integration tests and API mocks.
- Load and pagination testing with hundreds of distinct records.
- Seeding a development database or a document store such as MongoDB with sample documents.
- Preparing demo data for screenshots, tutorials and sales demonstrations without exposing personal data.
How Field Names Are Interpreted
A placeholder is resolved in a fixed order. First, the tool checks its list of known placeholders such as
{{email}} or {{city}}. Next, a dotted name such as {{Commerce.ProductName}}
is looked up directly in the Bogus library. Finally, the name of the placeholder, and then the name of the field it
sits in, is matched against common words. A field called isActive or published becomes a
boolean, names containing date become dates, names containing price or amount
become decimal numbers, and names ending in Id become integers. When nothing matches, a random word is
used so the record is never left empty.
Tips for Best Results
- Use explicit placeholders for fields where the exact kind of data matters, and
{{auto}}for the rest. - Use
{{pick:...}}for fixed vocabularies such as statuses, roles or categories that your application expects. - Use
{{index}}when you need a predictable, sequential number instead of a random one. - Check the spelling of placeholder names. A misspelled name is not an error and falls back to a guess or a random word.
- The data is random and fictional. Do not treat generated emails, phone numbers or names as belonging to real people.
Related Developer Tools
Describe your output with the JSON Schema Generator, tidy it with the JSON Formatter, or turn it into other formats with the JSON to CSV converter and the JSON to SQL converter.
Frequently Asked Questions
What happens with an unknown placeholder?
Names are matched to a suitable generator automatically. Only a Category.Method path that does not exist in Bogus is rejected, and it is listed so you can correct it.
Can the root be an array?
No. Provide a single JSON object; the result is an array of generated objects.
How many records can I generate?
Between 1 and 1000 records per request.
Is the generated data real?
No. All values are randomly generated by the Bogus library and are fictional. They are suitable for testing and demos, not for any real-world use.
Is my template stored?
The template is sent to the server only to generate the records and is not stored.
Will two runs give the same data?
No. Every run produces new random values.