Fake Data Generator

Generate local sample records as JSON, CSV, or SQL INSERT statements for tests, demos, mock APIs, and seed files.

Last reviewed: June 2026

New to this tool? Click here for instructions

Configuration
Fields
Output
Configure fields and click Generate to create test data.

How to use the Fake Data Generator

Choose the output format first: JSON for fixtures and mock API responses, CSV for spreadsheet or import workflows, or SQL INSERT when you need paste-ready seed statements. Set the record count from 1 to 1,000, then add, rename, remove, or retarget fields in the configuration panel.

The default schema creates name, email, phone, and city. Add fields for address, country, date, number, UUID, boolean, company, URL, IP address, or color when your UI needs a richer shape. In SQL mode, the table-name input appears above the field list and defaults to users.

Click Generate to render the rows, then use Copy for the clipboard or Download for a local file. Everything in this workflow is local browser JavaScript; the generated rows are not sent to a backend service.

What the current browser tool actually supports

The generator is intentionally lightweight. It does not expose locale switching, seeded reproducibility, linked address tuples, or payment-card test numbers. Names, addresses, companies, and domains come from small built-in word lists, which makes the output useful for UI testing, placeholder records, QA fixtures, and examples but not for statistical simulation.

JSON output is created with JSON.stringify, CSV output includes a header row and quotes values that contain commas, quotes, or newlines, and SQL output escapes single quotes before building one INSERT statement per row. UUID values follow the browser-side version 4 pattern used by common development fixtures.

Practical workflows

Frontend state checks: generate 20 to 50 rows with name, email, company, and city fields to preview table density, empty-state transitions, pagination, and search filters.

API mock responses: generate JSON, paste it into a mock service worker fixture, and keep the field names aligned with your actual API contract before styling around it.

Database seed drafts: switch to SQL INSERT, set the table name, and use the generated statements as a starting point for local development seed files. Review column names and constraints before running the SQL against a real database.

Tips and limitations

  • The row-count cap is 1,000 to keep generation, DOM rendering, copy, and download responsive in one browser tab.
  • Generated phone numbers and addresses are synthetic examples, not validated deliverable contact data.
  • CSV consumers vary; RFC 4180 remains the useful baseline for comma, quote, and line-break handling.
  • Do not paste real customer data into fixture builders. Use synthetic values for demos, tests, screenshots, and public examples.

Useful references: RFC 4180 CSV format, RFC 9562 UUIDs, and MDN JSON.stringify.

Frequently Asked Questions

The current field selector supports name, email, phone, address, city, country, date, number, UUID, boolean, company, URL, IP address, and color fields.
No. The rows are generated, formatted, copied, and downloaded in the browser. There is no backend call for the generated output.
Not with the current UI. There is no seed field, so each Generate click creates fresh ad hoc values.
SQL mode emits one INSERT statement per generated row. The table-name box controls the identifier used after INSERT INTO; check the output before pasting it into any local database.
No. This page does not generate payment-card test numbers. Use your payment processor's official sandbox values when testing checkout flows.