Generators

Sample Profile Generator

Create JSON lines of sample names, birthdates, cities, and emails for mock users.

Loading interactive tool…

Embed this tool on your site

About this tool

Every app that handles user accounts needs realistic test data before it can be properly developed, demoed, or tested. Manually inventing names, birthdates and email addresses is tedious, inconsistent, and often accidentally uses real people's information. Sample Profile Generator produces synthetic user profiles on demand as JSON Lines — one JSON object per line. Each profile includes firstName, lastName, a date of birth (YYYY-MM-DD, for an adult aged roughly 18 to 65), city, country, a combined location string, and an email address built as firstname.lastname plus three digits at a test-style domain. Names are drawn from 20 common first names and 20 surnames, and locations from ten cities in the USA, Canada, UK, Germany, Australia and Ireland. Generate 1 to 20 profiles per click, then copy the JSONL into a seed script, fixture file or API mock. Everything runs in your browser, so nothing is uploaded to a server.

Why use it

  • Ready-to-Parse JSON Lines: Each profile is a self-contained JSON object on its own line, which streams straight into jq, newline-delimited JSON importers and seed scripts.

  • Consistent Field Set: Every record has the same seven keys, so fixtures map cleanly onto a simple user model without null checks.

  • Adult Birthdates: Dates of birth fall between 18 and 65 years ago in ISO YYYY-MM-DD format, ideal for testing age displays and date parsing.

  • Test-Style Emails: Addresses follow firstname.lastname###@domain in lowercase, mostly on .test domains that are reserved and never deliver mail.

  • Completely Browser-Side: Generation runs entirely in JavaScript within your tab. No server, no API quota, no sign-up.

How to use

  1. Set Profiles (1-20) to the number of mock users you need; five are generated automatically when the page opens.
  2. Click Generate to produce a new batch in the Output (JSON lines) box.
  3. Review the output — each line is one JSON object with firstName, lastName, dob, city, country, location and email.
  4. Click Copy JSONL to copy every line to your clipboard, or edit the text box directly before copying.
  5. Paste the lines into your seed script, fixture file, or API mock; click Generate again for a fresh set.

When it helps

  • When seeding a new application's user table with realistic-looking names, birthdates and emails before the first real user signs up.
  • When building a UI prototype or design demo that needs populated profile cards or a user list.
  • When writing tests for name display, date-of-birth parsing, or email validation and you want varied but well-formed inputs.
  • When preparing a newline-delimited JSON fixture for an import job, log pipeline, or API sandbox.
  • When demonstrating a CRM, admin panel, or user management feature to a client without using any real customer data.

Examples

One profile (JSON line)

Input

Profiles: 1 → Generate

Expected result

{"firstName":"Nora","lastName":"Hall","dob":"1976-06-21","city":"Hamburg","country":"Germany","location":"Hamburg, Germany","email":"nora.hall314@examplemail.test"}

Batch of 3

Input

Profiles: 3 → Generate

Expected result

{"firstName":"Mateo","lastName":"Anderson","dob":"1983-12-16","city":"London","country":"UK","location":"London, UK","email":"mateo.anderson125@inbox.test"} {"firstName":"Logan","lastName":"Harris","dob":"1983-07-27","city":"Vancouver","country":"Canada","location":"Vancouver, Canada","email":"logan.harris985@maildrop.cc"} {"firstName":"Ava","lastName":"King","dob":"1999-02-08","city":"Sydney","country":"Australia","location":"Sydney, Australia","email":"ava.king472@tempinbox.dev"}

Tips

  • Generate the maximum of 20 profiles to populate a realistic-looking user list or admin table in one go.
  • Pipe the copied JSONL through jq -s '.' to turn it into a JSON array if your seed script expects one.
  • Treat the maildrop.cc addresses as display-only — unlike the .test domains, that service accepts real mail.
  • Commit one generated batch to your test fixtures directory so all developers use identical seed data for reproducible test results.
  • Edit the output box directly to add fields your schema needs (such as an id) before copying — it is a normal editable text area.

Frequently Asked Questions

Is any real person's data used in the generated profiles?
No. Each profile randomly combines a first name and a surname from built-in lists with a random birthdate, one of ten cities and a random three-digit email suffix. Any resemblance to a real person is coincidental.
Which fields does each profile include?
Every line has firstName, lastName, dob (YYYY-MM-DD), city, country, location ("City, Country") and email. Phone numbers, street addresses, job titles and avatars are not included — the Sample Contact Generator and Sample Address Generator cover phones and addresses.
What email format do the generated addresses use?
Emails are lowercase firstname.lastname followed by three digits, for example nora.hall314@examplemail.test. The domain is one of examplemail.test, inbox.test, tempinbox.dev or maildrop.cc. The .test domains are reserved and cannot receive mail, but maildrop.cc is a real public disposable-inbox service, so do not send real messages to these addresses.
Can I choose a country or locale?
No. There is no locale setting. Names come from one list of common English-language first names and surnames, and locations are picked from New York, Toronto, London, Berlin, Sydney, Dublin, Vancouver, Chicago, Hamburg and Manchester.
How many profiles can I generate at once?
Between 1 and 20 per click. For a larger fixture, click Generate several times and paste each batch one after another — JSON Lines files can simply be concatenated.
Can I get the output as a JSON array or CSV?
The tool only outputs JSON Lines. To get a JSON array, wrap the lines in square brackets and add commas between them, or use jq -s '.' on the file; most spreadsheet tools and the site's JSON converters can turn the result into CSV.
Does the tool store or log any of the generated data?
No. Generation runs entirely in your browser with no server communication. Nothing is stored, logged, or transmitted anywhere. Closing the tab clears everything.

Explore the category

Glossary

Synthetic data
Artificially generated information that mimics the statistical properties and format of real data without containing any real individuals' information. Used in testing, demos, and privacy-preserving machine learning.
Seed data
A fixed set of records inserted into a database at setup time, typically via a seed script, to give an application a known starting state for development, testing, or demos.
Locale
A combination of language and regional settings that governs the format of names, dates, addresses, phone numbers, and other culturally variable data. For example, the en-US locale uses 10-digit NANP phone numbers and ZIP codes.
RFC 2606
An IETF standard reserving domain names such as example.com, example.net, and example.org for documentation and testing purposes. Email addresses using these domains are safe to generate in test data without risking delivery to real inboxes.
Fixture
In software testing, a fixed data set committed alongside test code that provides a deterministic baseline for assertions. Profile generator output is commonly committed as fixtures to ensure consistent test behavior across machines.
Avatar
A small image representing a user, typically displayed next to their name in a UI. In test data, avatars are usually placeholder images keyed by initials or a hash of the username rather than real photographs.
A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.

Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.

✓ Free to use✓ No sign-up✓ 500+ possibilities