# Random Identity Generator
A **fake data API** that generates realistic, ready-to-use **test identities** — full profiles or single data types — in two locales (`en_US`, `fil_PH`). Built for developers who need mock users, sample addresses, and realistic-but-fake personal data for testing, prototyping, and QA — without ever touching real PII.
**Try it:** paste the call below into your terminal — no SDK needed.
```bash
curl --request GET \
--url 'https://identitygen.jojapi.net/api/v1/identity?locale=en_US' \
--header 'X-JoJAPI-Key: YOUR_API_KEY'
```
## Why use this API?
- **Complete or modular** — one call returns a full profile (name, demographics, address, contact, company, credit card, internet data), or grab just names, addresses, emails, or demographics.
- **Two locales** — `en_US` and **`fil_PH`** (Philippines) — the hardest locale to find good fake data for.
- **Bulk generation** — up to **1,000 full profiles** in a single request (PRO plan).
- **Fast** — pure in-memory generation, typical responses under 10 ms.
- **Safe by design** — all data is synthetic. SSNs are format-only, card numbers pass Luhn but are not valid cards. No real PII, ever.
## Quickstart
1. Grab an API key from the pricing tab (the free plan gives you 500K requests/month).
2. Call any endpoint below.
3. Done — it's test data you can safely commit to repos and throw at any environment.
```python
import requests
url = "https://identitygen.jojapi.net"
headers = {"X-JoJAPI-Key": "YOUR_API_KEY"}
params = {"locale": "en_US", "min_age": 18, "max_age": 65}
print(requests.get(url, headers=headers, params=params).json())
```
## Endpoints
| Endpoint | Returns | Params |
|---|---|---|
| `GET /identity` | Full profile (all fields below) | `locale`, `gender`, `min_age`, `max_age` |
| `GET /identity/bulk` 🚀 PRO | 1–1,000 full profiles | above + `count` |
| `GET /names` | First / last / full name | `locale`, `gender`, `count` |
| `GET /addresses` | Street, city, state, zip, country | `locale`, `count` |
| `GET /contact` | Email, phone, username | `locale`, `gender`, `count` |
| `GET /demographics` | Gender, DOB, age, occupation, company | `locale`, `gender`, `min_age`, `max_age`, `count` |
| `GET /financial` | Card, bank account, routing number | `count` |
| `GET /internet` | IPv4/IPv6, MAC, user-agent, password, UUID | `count` |
> Modular endpoints return up to 100 records per call. `count` defaults to 1.
### Sample response — `GET api/v1/identity`
```json
{
"first_name": "Sarah",
"last_name": "Johnson",
"full_name": "Sarah Johnson",
"gender": "female",
"date_of_birth": "1985-03-15",
"age": 41,
"email": "[email protected]",
"phone": "+1-555-0123",
"address": {
"street": "742 Evergreen Terrace",
"city": "Springfield",
"state": "Illinois",
"state_abbr": "IL",
"zip_code": "62701",
"country": "United States"
},
"company": "Acme Corporation",
"occupation": "Software Engineer",
"credit_card": { "number": "4532-1234-5678-9012", "expiry": "12/28", "cvv": "123", "type": "Visa" }
}
```
## Use cases
- **Seeding test & staging databases** with believable user data.
- **UI/UX prototyping** — realistic profiles for mockups and demos.
- **Load & performance testing** — feed your app varied, valid-shaped data at scale.
- **CI/CD test suites** — generate fresh input on every run.
- **Localization testing** — realistic Filipino names, cities, and addresses for the PH market.
- **Privacy-safe development** — replace real user data with synthetic lookalikes.
## Plans & limits
| | **BASIC (free)** | **PRO** |
|---|---|---|
| Price | $0 | **$25/mo** |
| Requests | 500,000 / month | 1,300,000 / month |
| Rate | 1,000 / hour | ~10 / second |
| `/identity/bulk` | — | ✔ up to 1,000 |
## Errors
| Code | Meaning |
|---|---|
| `400` | Invalid parameter (e.g. `count` out of range) |
| `401` | Missing/expired key, or endpoint not enabled for your plan |
| `429` | Rate or monthly quota exceeded |
| `500` | Unexpected server error |
## Data safety
Every field is randomly generated synthetic data. No SSN is real, no card number is chargeable, no address belongs to a real person. You can use this data freely in tests, demos, and prototypes — just don't store it as real user data.
**Questions or feedback?** Reach out — this API is actively maintained and new locales are on the roadmap.