Test data that hangs together.

Seed staging, write fixtures and run load tests with people whose name, city, phone, job and income agree with each other and with the place. Ask again next month and you get the same people.

Read the API preview

Private beta. One email when your API key is ready; no newsletter. Privacy.

fixtures/people.json
[  {    "id": "borfnwhfmlfj7v5l5k7cubtt.1",    "name": "Alyssa Rogers",    "age": 29,    "city": "San Jose",    "job": "Student",    "email": "[email protected]",    "phone": "+1 408 555-0119"  },  {    "id": "zeegibk2s62nppfm57yxkmz7.0",    "name": "Lee Bates",    "age": 31,    "city": "London",    "job": "Care Worker",    "email": "[email protected]",    "phone": "07700 900640"  }]

Real output from Mockfolk engine v1 (preview). All people are fictional.

Three countries. Three sets of local rules.

Each person is generated as a whole, so a Jaipur address comes with a Jaipur name, an Indian phone format and an income band in lakh. Real output from Mockfolk engine v1 (preview). All people are fictional.

FieldIndiaUnited StatesUnited Kingdom
NameAiman SyedAlyssa RogersLee Bates
Local scriptLatin onlyLatin onlyLatin only
Age292931
CityGeorge Town, PrayagrajEvergreen, San JoseBrixton, London
RegionUttar PradeshCaliforniaLondon
JobHomemakerStudentCare Worker
EmployerIronbridge Care
Income bandunder ₹1 lakhunder $5k£15k–20k
Phone+91 54146 12903+1 408 555-011907700 900640
Email[email protected][email protected][email protected]

Phones use ranges set aside for fiction (India’s +91 5 series, which mobile numbers do not use; US 555-01xx; UK 07700 900xxx). Emails use example.com, example.net and example.org, which can never be delivered.

Built for the jobs test data actually does.

Same seed, same file.

Commit the seed, not the data. When a constraint cannot be met, you get an explicit error instead of a quiet guess.

seed-staging.sh
# Seed staging with the same 200 people on every runmockfolk new --country GB --age 25-64 --count 200 --seed 7 > fixtures/people.json # Months later, in CI: identical file, byte for bytemockfolk new --country GB --age 25-64 --count 200 --seed 7 | diff - fixtures/people.json
students aged 50–64
{  "error": {    "code": "constraint_conflict",    "message": "occupation student requires ages 18-30, outside 50-64"  }}

What is Mockfolk?

Mockfolk is a hosted API and command-line tool that generates realistic fictitious people for testing AI agents and for developer test data. Give it constraints such as a country, a city, an age range, an occupation or a latitude and longitude, and it fills in the rest consistently: name (in local script where relevant), address, contact details, job, income band, personality and a short backstory. The same request with the same seed, or the same persona id, always returns the same person.

How is Mockfolk different from a random-data library?

Random-data libraries in the Faker family draw each field on its own and often fall back to US formats. Mockfolk generates each person as a whole, so name, city, phone format, job and income band agree with each other and with the country, and the same seed returns the same people every time.

Is Mockfolk data safe for staging, demos and screenshots?

Yes. Every person is fictional and no real people’s data is used. Emails use example.com, example.net and example.org, phone numbers come from ranges set aside for fiction, and Mockfolk never generates identity documents of any kind.

Stop writing fixtures by hand.

Mockfolk is in private beta. Leave your email and we’ll write once, when your API key is ready.