# Schema-aware mock data — realistic test rows, no upload

> Generate synthetic rows that follow your table's column names with smart Faker mapping — up to 100k rows — exported locally. No upload.

Generate synthetic rows that follow your own table's column names, with smart Faker mapping for emails, phones, and dates — up to 100k rows, exported locally. Nothing is uploaded.

Realistic test data should look like your real data — same columns, sensible values — without exposing any actual records. Feeding the generator your schema produces rows that fit your app's shape, ideal for staging, demos, and load tests.

For ready-made datasets without a sample, use the Preset generator; for identifier columns specifically, use the ID generator.

## How to

1. **Add a sample file.** Drop a file so the tool learns your column names.
2. **Map columns.** Faker types are matched to names like email, phone, and date.
3. **Set row count.** Choose how many synthetic rows to produce.
4. **Export.** Download realistic mock data locally.

## FAQ

### How is this different from generic fake data?

It reads your file's column names and maps each to an appropriate Faker generator, so the mock data matches your real schema instead of arbitrary fields.

### How many rows can I generate?

Up to 100,000 rows, generated and exported on your device — enough to fill a realistic staging environment.

### Is my sample file uploaded?

No. Only the column names are used, and generation runs in your browser, so nothing about your data leaves the device.


## Related tools

- [Dataset presets](https://www.safepaper.app/data/generate-preset)
- [ID generator](https://www.safepaper.app/data/generate-ids)
- [Series generator](https://www.safepaper.app/data/generate-series)
- [Schema profile](https://www.safepaper.app/data/profile)

---

Canonical HTML: https://www.safepaper.app/data/mock-data
Markdown: https://www.safepaper.app/data/mock-data.md

There is no upload endpoint — your files are processed in this browser tab. Open your network tab and check.
