Skip to main content
92 Nodes
All resources
Free tool

Free Mock Data Generator for CSV, JSON & SQL

Generate realistic test data and download CSV, JSON, SQL, Excel, and more.

Generate realistic test data for apps, APIs, databases, demos, and QA. Customize your schema, preview the results, and download CSV, JSON, SQL, Excel, Laravel seeders, and more—free and without signup.

Loading Mock Data Generator…
Basics

What is a mock data generator?

A mock data generator builds fictional rows that look and behave like real records — names, emails, addresses, prices, dates, IDs — without belonging to any real person or system. Instead of manually typing sample rows or copying production data into a test environment (which risks leaking real customer information), you describe a schema once and generate as many rows as you need, in the format your app, database, or test suite actually expects.

This tool separates that process into three steps: pick a ready-made template or build your own schema, choose how many rows and which format you want, then preview, copy, or download the result. Everything — from the first random name to the final SQL statement — runs in your browser.

CSV

Generate sample CSV files for testing

CSV is still the fastest way to get sample data into a spreadsheet, a bulk-import tool, or a lightweight script. The CSV exporter here handles the details that break naive CSV writers: values containing commas or quotes are quoted correctly, embedded newlines are preserved, and an optional UTF-8 byte-order mark and Windows-style CRLF line endings are available for tools that expect them.

If you don't need a custom schema at all, the Quick Sample Data Downloads section above generates a ready-made CSV of users, products, orders, or employees — including a 1,000-row test dataset — with one click and a deterministic seed, so the same download always produces the same file.

APIs

Create JSON mock data for APIs

JSON and NDJSON exports are built for API work: a pretty-printed JSON array drops straight into a mock server, a fixture file, or a frontend prototype, while newline-delimited JSON suits streaming pipelines and log-style ingestion. The schema builder's enum, nested-friendly field types, and derived fields (an email built from a generated name, a slug built from a product name) make the output look closer to what a real endpoint would actually return than flat random values would.

It also works well for generating fake profile data for UI testing — populating a user list, avatar grid, or admin table with realistic-looking names and emails without touching anyone's real information.

Databases

Generate MySQL and PostgreSQL seed data

SQL output is generated to actually run, not just to look right. Each dialect — MySQL, PostgreSQL, SQLite, and SQL Server — gets its own identifier quoting, string escaping, NULL handling, boolean literals, and ISO-formatted dates, so a generated INSERT statement doesn't need hand-fixing before it works against that database. Apostrophes, Unicode text, and right-to-left scripts like Arabic and Urdu are escaped correctly rather than silently corrupted.

You can optionally include a matching CREATE TABLE statement, wrap the inserts in a transaction, and control how many rows land in each INSERT batch — useful for seeding a large local development database without a single multi-megabyte statement.

Always review generated SQL — especially table and column names — before running it against a real database.

Laravel

Laravel factories and seeders

The Laravel Factory export writes a modern definition() array using current FakerPHP methods — nullable fields wrap in optional(), unique fields use unique(), and enums render as a real PHP array — with your model and factory class names filled in.

The Laravel Seeder export goes further and bakes in your actual generated rows: a DB::table()->insert() (or model insert) call, chunked to avoid one giant query, with optional created_at/updated_at timestamps and properly escaped PHP string literals.

Why synthetic data

When should you use synthetic test data?

Reach for generated data whenever real data would be risky, unavailable, or simply overkill: local development environments that shouldn't contain real customer records, QA and staging databases shared across a team, demo environments shown to prospects, load-testing a new endpoint before it has real traffic, or writing automated tests that need predictable, repeatable input.

A deterministic seed makes this repeatable — the same schema, row count, and seed always produce the same rows, so a test suite or bug report built against generated data stays reproducible.

Privacy

Why browser-based generation protects privacy

Every schema you build and every row generated here stays on your device — there's no API call that sends your field names, row counts, or generated values anywhere, because there's no backend involved in generating them at all. That also means the tool never has real data to leak: generated emails and URLs use the reserved example.com, example.net, and example.org domains, and the generator never produces real identity numbers, payment credentials, or login credentials.

Your schemas and generated data stay in your browser. Nothing is uploaded or stored by 92 Nodes.

Formats

Supported formats and use cases

FormatBest for
CSVSpreadsheets, quick imports, and most database bulk-load tools
JSON / NDJSONREST API mocks, fixtures, and streaming/log-style pipelines
Excel (.xlsx)Sharing sample data with non-technical teammates or clients
XML / YAMLLegacy integrations, config-driven test fixtures, and CI pipelines
MySQL / PostgreSQL / SQLite / SQL ServerSeeding a real database schema for local development or QA
MongoDBSeeding a document collection with insertMany()-ready documents
Laravel Factory / SeederWiring generated data straight into a Laravel project's database layer
Prisma / JS / TS mock arrayFrontend mocks, Prisma seed scripts, and typed fixtures in a TypeScript codebase
Walkthrough

How to use the generator

  1. 1. Choose a template or build a schema. Pick Users, Products, Orders, or one of the other presets to prefill the field list, or start from scratch and add fields yourself — every preset field can still be renamed, retyped, or removed.
  2. 2. Set rows, locale, and format. Pick a row count (up to 10,000), a locale for names and addresses, a deterministic seed if you need reproducible output, and the export format you actually need.
  3. 3. Generate, preview, copy, or download. Review the first 100 rows in the table or code view, then copy the output or download the complete file — the download always contains every row you asked for, not just the preview.
Keep going

More developer tools

Generated an API response and want to inspect or type it? The API Response & JSON Inspector turns a JSON payload into TypeScript, Zod, and more. Once you have sample data, the Test Case Generator can turn it into real test code, and the Base64 Encoder & Decoder is handy for encoding sample file attachments. If your QA process needs more than a single tool, our Software Quality Assurance and Software Development teams can help, and our Data Management service covers real production data pipelines. For more free tools like this one, browse the full Developer Resources Directory.

FAQ

Common questions

Is this mock data generator free?+

Yes. Every field type, template, export format, and the quick sample downloads are free to use with no signup, account, or usage limit beyond the 10,000-row-per-generation cap.

Is my data uploaded or stored?+

No. Schemas and generated rows are built entirely in your browser using JavaScript running on your device. Nothing you configure or generate is sent to 92 Nodes or any third party.

Can I download sample data as CSV?+

Yes — build a schema and export CSV, or use one of the Quick Sample Data Downloads for an instant CSV of users, products, orders, or employees with no configuration.

Can it generate MySQL and PostgreSQL inserts?+

Yes. Choose the MySQL, PostgreSQL, SQLite, or SQL Server format to get dialect-correct CREATE TABLE and batched INSERT statements, with proper identifier quoting, string escaping, NULL handling, and boolean literals for that database.

Does it create Laravel factories and seeders?+

Yes. The Laravel Factory format maps each field to a modern FakerPHP method inside a definition() array, and the Laravel Seeder format produces a chunked DB::table()->insert() (or model insert) with your generated rows, ready to paste into a Laravel project.

How many rows can I generate?+

Between 1 and 10,000 rows per generation. Larger jobs are generated in chunks so the page stays responsive, and the table preview only renders the first 100 rows — the download always contains the complete dataset.

Is the generated data safe to use?+

Yes — it's entirely fictional. Emails and URLs use the reserved example.com, example.net, and example.org domains, and the generator never produces real identity numbers, payment details, or credentials. It's also a convenient way to generate fake profile data for UI testing without using anyone's real information.

Can I import a JSON or SQL schema?+

Yes. The Import Schema tab accepts a pasted JSON object or array, a common CREATE TABLE statement (MySQL, PostgreSQL, or SQLite syntax), or a CSV header row, and infers column names and likely field types automatically. Unsupported or overly complex SQL shows a warning instead of failing silently.

Is this a free alternative to Mockaroo?+

It covers the same core job — schema-driven fake data with multiple export formats — while running fully client-side, with no signup and no row-export paywall. It's not a drop-in clone of every Mockaroo feature, but it's free for the formats and field types it supports.

Can I use the generated data commercially?+

Yes. The data is synthetic and generated locally on your device, so you're free to use it in commercial projects, demos, and test suites without attribution.

92 Nodes

Have a project in mind? Let's build it.

Tell us about your goals and we'll get back to you within one business day with next steps.

Book a free call