Describe a schema, pick a row count, and generate realistic-looking mock data as JSON or CSV — entirely in your browser.
Name each field and pick a type, then click Generate below. Editing the schema after generating won't change existing output until you click Generate again.
Empty seed draws fresh random values on every Generate. A nonempty seed reproduces the same schema, base date and locale.
Generating… {{ genProgress.done }} / {{ genProgress.total }} rows in the background — click Cancel to stop.
Base date is invalid or empty — pick a valid date to enable Generate (an invalid date can't be used as a reproducible anchor).
Schema or settings changed since the last Generate — output below is unchanged until you click Generate again.
Click Generate to produce rows from the schema above.
Showing the first {{ PREVIEW_ROW_LIMIT }} of {{ generatedCount }} rows below — Copy and Download still use the complete dataset.
{{ previewText }}Add fields, pick a type for each — primary key, name, email, UUID, phone, city, country, company, URL, IPv4, lorem text, enum, foreign-key reference, nested object, configurable number, date and more — and this generates that many rows of plausible-looking fake data by combining random names, domains and ranges, not by calling any external API. Name/city/country/company pools come in English and Russian (Locale selector). A Reference field picks an integer within a pool size you set, so it lines up with a companion table's primary keys; a Nested object field holds a small sub-object with its own sub-fields, flattened into "field.sub" columns in CSV. Row counts above 500 run in a background Web Worker with a live progress count and a Cancel button, so the tab never freezes — the on-screen preview is capped at 200 rows but Copy/Download always use the complete dataset.
Everything is generated locally in your browser. Nothing is sent anywhere.