Mock Data
Test data generator: create realistic fake data for development, right in your browser.
Schema
Your schema is empty. Add the first field to start generating data.
Generation
Set up a schema and click "Generate data" to see the result here.
What the test data generator is for
The mock data generator creates fictional data for development, testing and demos: names, emails, CPF and CNPJ, addresses, dates, prices, UUIDs, test cards, and more than 120 other types. You build a schema (the list of columns), choose how many rows you want, and download the result in whatever format you need.
Everything happens in your browser: the data is generated on your own machine, never passes through any server, and you don't need to create an account. That means you can work with test datasets without exposing real customer data, which also helps keep development environments compliant with privacy regulations.
How to use it
- Start from a template (Users, E-commerce, API Response or Financial) or click Add field to build the schema from scratch.
- Pick each field's type from the picker (you can search by name) and rename the column. Drag the handle to reorder.
- Use each field's gear icon to adjust the type's options, like a number's minimum and maximum, and set the probability of the value coming out blank (useful for testing how your system handles null values).
- In the Generation card, set the quantity of rows and, next to it, the data language: Português (Brazil) or English (US).
- Click Generate data. The result shows up as JSON, CSV, SQL, or in a table.
- Copy the result or use Download to save it as JSON, CSV, SQL, JSON Lines, YAML, XML, TypeScript or JavaScript.
Example
A schema with four fields: id (UUID), name (Full Name), email (Email) and created_at (Date & Time), with two rows. Values change on every generation; this is a real output, in JSON and in SQL:
[
{
"id": "e84471bb-76f1-424d-b622-a41ced251d41",
"name": "Sarah Bennett",
"email": "sarah.bennett82@gmail.com",
"created_at": "2026-09-21T03:08:46.058Z"
},
{
"id": "fd01ed25-2151-4fce-9c2b-7e6b37dcea47",
"name": "Marcus Lee",
"email": "marcus.lee_91@outlook.com",
"created_at": "2026-09-21T10:41:39.144Z"
}
]INSERT INTO "mock_data" ("id", "name", "email", "created_at") VALUES ('e84471bb-76f1-424d-b622-a41ced251d41', 'Sarah Bennett', 'sarah.bennett82@gmail.com', '2026-09-21T03:08:46.058Z');
INSERT INTO "mock_data" ("id", "name", "email", "created_at") VALUES ('fd01ed25-2151-4fce-9c2b-7e6b37dcea47', 'Marcus Lee', 'marcus.lee_91@outlook.com', '2026-09-21T10:41:39.144Z');Use cases
- Populate a development database: download as SQL and run the INSERT statements against your local database.
- Simulate an API response: use the API Response template and download as JSON to serve as a front-end mock while the back-end isn't ready yet.
- Test pagination, filters and tables: generate thousands of rows to see how the interface behaves under volume.
- Create typed fixtures: the TypeScript export generates the interface and the
mockDataconstant, ready to import into your tests. - Build spreadsheets and demos: the CSV opens directly in Excel or Google Sheets.
- Combine fields: with the Formula type, build emails from a name, prefixed codes, and other values derived from earlier fields.
Want to test this against a real database?
TheINSERT statements generated here run as-is on Railway (partner link), which gives you $20 in credit to try a Postgres database for free.Dedicated generators
Only need one specific data type? These pages already open the generator with the right field in place — just click Generate data.
Frequently asked questions
Is the generated data real?
No. Names, emails, addresses, CPF, CNPJ and cards are randomly generated and don't belong to real people. CPF and CNPJ come out with valid check digits, and the cards pass Luhn validation, precisely so they work in forms and tests — but they should never be used in real sign-ups, purchases, or any real-world situation.
Is my data sent to any server?
No. Generation happens entirely in your browser. The schema you build is only saved in your own device's local storage, so you can pick it back up later, and it's never sent anywhere.
What's the row limit?
You can generate up to 10,000 rows at a time, and the total number of cells (rows × fields) is capped at 250,000. These limits keep the page from freezing on less powerful computers.
Can I always get the same data back?
Each generation is random, so the result changes every click. If you need fixed data, generate it once and download the file, or use the Constant Value, Sequence and Custom List types, which produce predictable values.
How do I make a field depend on another one?
Use the Formula type to combine earlier fields, for example {{first_name}}.{{last_name}}@company.com, or the Reference Field type to repeat another field's value. You can only reference fields that appear earlier in the list.
How do I use the result in SQL?
On the SQL tab, or via Download → SQL, each row becomes an INSERT INTO statement for the mock_data table. To use a different table name, find-and-replace it in your editor of choice before running it.
Can I build the schema from JSON I already have?
Yes. In the schema's options menu, choose Infer from a JSON sample, paste an object or a list of objects, and the tool suggests a type for each field, which you can adjust before generating data.
Is the tool free?
Yes, it's free and requires no sign-up or account.