Indian Fake Data Generator

A generator for culturally accurate, statistically consistent mock Indian demographic profiles, backed by Census 2011 data. Two native implementations, identical features and CLI.

Statistically consistent

Religion, caste, state, language, education and income are correlated. No Sikh named Mohammed Sharma from Mizoram.

Census 2011 backed

Hand-calibrated approximations from Census 2011, NFHS-5 and survey data, bundled in. No runtime downloads.

Whole families

Generate a full household from one seed: head, spouse, parents, children and siblings with consistent surnames and ages.

Seeded and reproducible

Seeds can be numbers or strings ('011'). Same seed, same person, every time.

Zero dependencies

Both packages are dependency-free. Node 18+ or Python 3.8+, works offline.

AI-training ready

Optional layers add credit scores, narratives (loan applications, Hinglish chats) and LLM agent personas.

New in 2.0.9

New in 2.1.0

Sample profile — seed = 7 (Python implementation)

Note: the TypeScript implementation is independently deterministic. The same seed is reproducible within one implementation, but the two runtimes draw RNG streams differently.
{
  "id": "d6e2a61e-e297-4eb4-9866-5fb355fbc2ea",
  "synthetic": true,
  "generator": "indian-fakedata@2.1.0",
  "firstName": "Sarwan",
  "lastName": "Das",
  "fatherName": "Shetan Das",
  "motherName": "Girijarani Kumari",
  "spouseName": "Kishan Das",
  "gender": "female",
  "age": 40,
  "state": "Andhra Pradesh",
  "district": "Guntur",
  "areaType": "urban",
  "religion": "Hindu",
  "caste": "Madiga",
  "socialCategory": "SC",
  "motherTongue": "Telugu",
  "education": "graduate",
  "occupation": "other_worker",
  "maritalStatus": "married",
  "annualIncomeINR": 1235000,
  "aadhaarNumber": "839128189565",
  "panNumber": "FMMPD7406C",
  "phoneNumber": "9444448053",
  "email": "sarwan.das645@gmail.com",
  "appearance": {"heightCm": 144.0, "build": "average", "faceShape": "round", "skinTone": "deep_brown", "noseType": "button", "eyeColor": "dark_brown", "eyeShape": "almond", "hairColor": "black", "hairTexture": "wavy", "hairLength": "medium", "facialHair": null},
  "nativeScript": {"script": "Telugu", "language": "Telugu", "firstName": "సర్వన", "lastName": "దస", "district": "గుంతుర", "addressLine": "492/గ, జయనగర, గుంతుర"},
  "geo": {"latitude": 15.7495, "longitude": 80.2038},
  "personalityTraits": {"summary": "An outgoing, people-oriented person who is open-minded, easy-going and assertive. They feel things deeply and care about those around them.", "strengths": ["creative and curious", "adapts to change quickly", "stands their ground"], "weaknesses": ["worries about small things", "needs company to feel energised", "procrastinates under pressure"], "traitLabels": ["open-minded", "easy-going", "outgoing", "assertive", "sensitive"], "communicationStyle": "expressive", "decisionStyle": "intuitive", "socialBehavior": "outgoing"},
  "educationTimeline": [
    {"level": "primary", "stageName": "Primary School", "institutionName": "Government Primary School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 1991, "endYear": 1997, "status": "completed", "score": "52.8%"},
    {"level": "middle", "stageName": "Middle School", "institutionName": "Government Middle School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 1997, "endYear": 2000, "status": "completed", "score": "56.7%"},
    {"level": "secondary", "stageName": "Secondary School", "institutionName": "Government High School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 2000, "endYear": 2002, "status": "completed", "score": "61.0%"},
    {"level": "higher_secondary", "stageName": "Higher Secondary School", "institutionName": "Government Higher Secondary School, Guntur", "institutionType": "government", "boardOrUniversity": "AP State Board", "startYear": 2002, "endYear": 2004, "status": "completed", "stream": "PCM", "score": "52.8%"},
    {"level": "graduate", "stageName": "Bachelor's Degree", "institutionName": "Government Post Graduate College, Guntur", "institutionType": "government", "boardOrUniversity": "University of Andhra Pradesh", "startYear": 2004, "endYear": 2008, "status": "completed", "fieldOfStudy": "Computer Science/IT", "score": "56.5%"}
  ],
  "employmentTimeline": [
    {"jobTitle": "Receptionist", "sector": "private", "occupation": "other_worker", "employerType": "private", "startYear": 2007, "status": "completed", "monthlyWageINR": 48000, "location": "Guntur", "endYear": 2009},
    {"jobTitle": "Sales Executive", "sector": "private", "occupation": "other_worker", "employerType": "private", "startYear": 2009, "status": "completed", "monthlyWageINR": 74200, "location": "Guntur", "endYear": 2022},
    {"jobTitle": "IT Support Executive", "sector": "private", "occupation": "other_worker", "employerType": "private", "startYear": 2022, "status": "current", "monthlyWageINR": 102900, "location": "Guntur"}
  ],
  "skills": {"technical": ["Commercial Cooking"], "soft": ["Teamwork", "Time Management"], "certifications": [], "languages": [{"language": "Telugu", "speaking": "native", "reading": "fluent", "writing": "fluent"}, {"language": "Hindi", "speaking": "intermediate", "reading": "intermediate", "writing": "intermediate"}, {"language": "English", "speaking": "intermediate", "reading": "intermediate", "writing": "intermediate"}]},
  "lifeEvents": [
    {"year": 1986, "event": "born", "detail": "Born in Guntur."},
    {"year": 2004, "event": "migrated", "detail": "Migrated from Karnataka to Andhra Pradesh."},
    {"year": 2007, "event": "job_started", "detail": "Started working as Receptionist."},
    {"year": 2009, "event": "job_changed", "detail": "Changed job to Sales Executive."},
    {"year": 2009, "event": "married", "detail": "Married Kishan Das."},
    {"year": 2010, "event": "child_born", "detail": "Birth of child 1."},
    {"year": 2022, "event": "job_changed", "detail": "Changed job to IT Support Executive."}
  ],
  "householdEconomy": {"monthlyBudget": {"food": 46324, "housing": 19007, "transport": 8691, "education": 6372, "health": 8706, "other": 0}, "loans": [], "creditHistory": {"score": 782, "activeLoans": 0, "missedPayments12m": 0, "oldestAccountYears": 0}},
  "moviePreferences": {"genres": ["Drama", "Sports drama/Biopic", "Family drama"], "favoriteLanguages": ["Telugu", "Hindi"], "anime": false, "animePreferences": null, "favoriteAnimeTitles": null, "primaryPlatform": "television", "watchFrequency": "occasional"}
}

Install

pip install indian-fakedata              # Python 3.8+
npm install @abhay557/indian-fakedata    # Node.js 18+

Both packages are on PyPI and npm, version 2.1.0, with zero runtime dependencies.

Acceptable use

Synthetic data only. All identifiers (Aadhaar, PAN, voter ID, phone, email) are fabricated and exist in no government or commercial database. This library may not be used to create fake identity documents, bypass KYC/verification systems, run bots or fake personas that interact with real people, spread disinformation, or present generated profiles as real data about real individuals. You are responsible for how you deploy the output. Full policy in the repository README.