Getting Started
Two native implementations, identical features and CLI:
| Runtime | Package | Registry | Requires |
|---|---|---|---|
| Node.js / TypeScript | @abhay557/indian-fakedata | npm | Node 18+ |
| Python | indian-fakedata | PyPI | Python 3.8+ |
Both are dependency-free and work offline. Current version: 2.1.0.
Install
npm install @abhay557/indian-fakedata # TypeScript / Node.js
pip install indian-fakedata # Python
First run — CLI
# Node.js
npx @abhay557/indian-fakedata -c 1
# Python (or globally installed Node package)
indian-fakedata -c 1
You get one complete profile: identity, biometrics, appearance (face, skin tone, eyes, hair, build), Aadhaar/PAN/voter IDs, address, religion, caste, language, education, occupation, income, household assets, psychology and more.
More examples
# 1,000 profiles as CSV
indian-fakedata -c 1000 -f csv -o profiles.csv
# 50K Tamil Nadu Hindus, JSONL
indian-fakedata -c 50000 -f jsonl -o tn.jsonl --state "Tamil Nadu" --religion Hindu
# A full family from one seed
indian-fakedata --family --seed 011
Seeds accept numbers or strings — -s 7 and
-s "011" both work, and the same seed always reproduces the
same output within a runtime.
First run — API
TypeScript
import { generate } from '@abhay557/indian-fakedata';
const profiles = generate({ count: 5 });
profiles.forEach(p => {
console.log(`[${p.id}] ${p.firstName} ${p.lastName} (${p.gender}, ${p.age})`);
console.log(`Location: ${p.district}, ${p.state} | Caste: ${p.caste}`);
console.log(`Religion: ${p.religion} | Education: ${p.education}`);
});
Python
from indian_fakedata import generate
profiles = generate(count=5)
for p in profiles:
print(f"[{p['id']}] {p['firstName']} {p['lastName']} ({p['gender']}, {p['age']})")
print(f"Location: {p['district']}, {p['state']} | Caste: {p['caste']}")
print(f"Religion: {p['religion']} | Education: {p['education']}")