Three ways to generate
- From a preset topic: pick one of about thirty-five topics and choose the columns you want.
- From a schema: paste a CREATE TABLE statement, a CSV header row, a JSON sample, or a plain-English description, and the generator maps it to field types. An optional local model can help infer types; there is no external AI call.
- As a linked pair: generate a parent table and a child table joined by a real foreign key, so referential integrity holds in the output.
Deterministic and locale-real
Every run is seeded. The same specification and the same seed string reproduce byte-identical rows, so a fixture can be pinned across sprints and a failing test is reproducible. Data is locale-real across sixteen countries, up to five per run, with phone, currency, city, state and postal code that agree within a single row rather than a US ZIP stapled to an Indian address.
Identifiers that pass a validator but are not real
National and financial identifiers are emitted with valid checksums using the real algorithms a downstream validator checks, including Luhn, Verhoeff for Aadhaar, ISO 7064 mod-97 for IBAN, and the GSTIN and CPF check digits. Where a rule allows it, the value is made provably fictitious, for example an Aadhaar that begins with a digit the authority never issues. This is generated from rules and a seed, with no real personal data as input.
The quality report, export, templates and CI keys
- Each run returns a quality report computed by re-validating the emitted rows: uniqueness, per-identifier checksum validity, geo consistency, date rules, foreign-key integrity, distributions and null counts, plus plain statements you can quote in a review.
- Preview fifty rows, then download the full dataset regenerated server-side from the specification and seed, as JSON, CSV, Excel, SQL inserts (PostgreSQL, MySQL, SQLite or SQL Server dialects), or XML. Nothing the browser sends becomes the file.
- Save a specification as a re-runnable template, and mint a CI API key to run the same generation from a pipeline. Keys are shown once and draw on the same monthly allowance as the web app.
Limits worth knowing
- Rows per run scale by plan: Free 1,000, Solo Pro 10,000, Team and above 50,000. An over-cap request is clamped and you are told, not refused; every other capability is identical across plans.
- A run allows at most five countries, sixty custom fields and a fifty-thousand-row ceiling. A third simultaneous generation is asked to retry after a few seconds, because generation is memory-bounded on the shared host.
- Geography is cross-field verified for the United States and India; the other fourteen countries are locale-correct in format but not cross-checked, and the report labels which is which.
Questions people ask about this
- Is any of this real personal data?
- No. It is generated from rules and a seed, with no real records as input. Identifiers are checksum-valid so your validators accept them, and fictitious where a rule allows, so they do not collide with a real person.
- Can I run it from CI?
- Yes. Mint a scoped API key from a browser session and call the generate and download endpoints from a pipeline. The key is shown once and shares your monthly allowance.
Source: /documentation/test-data-factory, updated 2026-09-18. Answers are checked against the shipped product on that date.
Found something out of date? The people who build the module answer the contact form on the home page, and corrections to this guide are dated above. Tell us.