count int How many records to generate (1–100).
Locale-aware fake postal addresses — street, city, state, zip, country and coordinates that all agree, plus a one-line formatted form in the local layout.
Generated test data for fixtures and development
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: 10 allowed: 1 – 100 example: 3 | How many records to generate (1–100). |
seed | int | example: 42 | Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed). |
locale | enum | default: en allowed: en | da | de | fr | es | it | pt | ja example: da | Locale for the generated data (names, addresses, …). |
fields | list | example: street,city | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: formatted | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int How many records to generate (1–100).
seed int Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).
locale enum Locale for the generated data (names, addresses, …).
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
street | string | Street name + number, formatted the local way (number-first in the US, number-last in Denmark). | 883 Maple Avenue |
city | string | City name from the locale's data. | Portland |
state nullable | string | State / region / prefecture; null where the locale has no state-level data. | Oregon |
zipCode | string | Postal code in the country's format (5-digit US ZIP, 4-digit Danish postnummer, NNN-NNNN Japanese…). | 97205 |
country | string | English country name — always the locale's own country. | United States |
countryCode | string (ISO 3166-1 alpha-2) | Always matches the locale (en→US, da→DK, pt→BR…). | US |
latitude | float | 6-decimal latitude inside the country's rough bounding box (approximate — not the street's real position). | 45.515209 |
longitude | float | 6-decimal longitude inside the country's rough bounding box. | -122.678437 |
formatted | string | The parts assembled into one line in the country's postal order — always contains street and city verbatim. | 883 Maple Avenue, Portland, Oregon 97205, United States |
street string Street name + number, formatted the local way (number-first in the US, number-last in Denmark).
example: 883 Maple Avenue
city string City name from the locale's data.
example: Portland
state string nullable State / region / prefecture; null where the locale has no state-level data.
example: Oregon
zipCode string Postal code in the country's format (5-digit US ZIP, 4-digit Danish postnummer, NNN-NNNN Japanese…).
example: 97205
country string English country name — always the locale's own country.
example: United States
countryCode string (ISO 3166-1 alpha-2) Always matches the locale (en→US, da→DK, pt→BR…).
example: US
latitude float 6-decimal latitude inside the country's rough bounding box (approximate — not the street's real position).
example: 45.515209
longitude float 6-decimal longitude inside the country's rough bounding box.
example: -122.678437
formatted string The parts assembled into one line in the country's postal order — always contains street and city verbatim.
example: 883 Maple Avenue, Portland, Oregon 97205, United States
/api/addresses?count=3&seed=42 {
"data": [
{
"street": "7539 Alma Center",
"city": "Noeberg",
"state": "West Virginia",
"zipCode": "90724",
"country": "United States",
"countryCode": "US",
"latitude": 36.466762,
"longitude": -85.396296,
"formatted": "7539 Alma Center, Noeberg, West Virginia 90724, United States"
},
{
"street": "992 Hershel Loop",
"city": "Deltona",
"state": "Maryland",
"zipCode": "80738-5107",
"country": "United States",
"countryCode": "US",
"latitude": 25.949127,
"longitude": -123.669674,
"formatted": "992 Hershel Loop, Deltona, Maryland 80738-5107, United States"
},
{
"street": "648 W 11th Street",
"city": "North Sabina",
"state": "South Carolina",
"zipCode": "95574",
"country": "United States",
"countryCode": "US",
"latitude": 45.567616,
"longitude": -117.216748,
"formatted": "648 W 11th Street, North Sabina, South Carolina 95574, United States"
}
],
"meta": {
"endpoint": "addresses",
"count": 3,
"seed": 42,
…
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} /api/addresses?locale=da&count=5 {
"data": [
{
"street": "Poppelvej 63A",
"city": "Årslev",
"state": "Midtjylland",
"zipCode": "1100",
"country": "Denmark",
"countryCode": "DK",
"latitude": 56.081123,
"longitude": 11.215387,
"formatted": "Poppelvej 63A, 1100 Årslev, Denmark"
},
{
"street": "Ullevej 92B",
"city": "Hadsten",
"state": "Nordjylland",
"zipCode": "7459",
"country": "Denmark",
"countryCode": "DK",
"latitude": 54.722596,
"longitude": 8.126658,
"formatted": "Ullevej 92B, 7459 Hadsten, Denmark"
},
{
"street": "Ulvevej 488",
"city": "Taarbæk",
"state": "Midtjylland",
"zipCode": "0988",
"country": "Denmark",
"countryCode": "DK",
"latitude": 57.25665,
"longitude": 8.64742,
"formatted": "Ulvevej 488, 0988 Taarbæk, Denmark"
},
{
"street": "Rævevej 72",
"city": "Jelling",
"state": "Midtjylland",
"zipCode": "7297",
…
"generatedAt": "2026-07-30T15:14:08.000Z"
}
} /api/addresses?locale=ja&fields=formatted&format=csv&count=10 formatted
"057-9719 北海道 勝利市 6丁目7番6号, Japan"
"237-8073 鹿児島県 東拓海町 8丁目9番9号, Japan"
"887-0955 宮崎県 山下市 8丁目6番4号, Japan"
"916-9768 山口県 西啓子村 7丁目4番7号, Japan"
"931-5168 兵庫県 後藤町 7丁目7番7号, Japan"
"207-1729 香川県 柏木町 5丁目8番6号, Japan"
"935-1956 兵庫県 港高瀬市 1丁目5番6号, Japan"
"480-3179 鹿児島県 三郎村 9丁目2番5号, Japan"
"693-0462 静岡県 港上田市 3丁目7番3号, Japan"
"653-5510 宮崎県 北正二村 3丁目9番8号, Japan"
Generates standalone postal addresses that are internally consistent: country and countryCode are always the locale's own country (?locale=da ⇒ Denmark/DK, never a random country), the street, city and zipCode come from that locale's data so numbers, spellings and zip formats look local, and formatted assembles those exact values into one line using the country's own postal order:
| locale | country | code | one-line layout |
|---|---|---|---|
en |
United States | US |
street, city, state ZIP, country |
da |
Denmark | DK |
street, ZIP city, country |
de |
Germany | DE |
street, ZIP city, country |
fr |
France | FR |
street, ZIP city, country |
es |
Spain | ES |
street, ZIP city, country |
it |
Italy | IT |
street, ZIP city, country |
pt |
Brazil | BR |
street, city - state, ZIP, country |
ja |
Japan | JP |
ZIP prefecture city street (largest → smallest), country |
Because formatted is built from the record's own parts, it always contains street and city verbatim — handy for asserting your address parser round-trips. state is null for locales without state/region data.
The data is mock: streets and cities are plausible fake values (a generated address almost certainly doesn't exist), and latitude/longitude (6 decimals) are uniformly random within the country's rough bounding box — they land in the right country region but not at the street, and near coasts may fall over water. With a seed the same request returns byte-identical addresses forever.
No — every address is generated. Streets, cities, states, zip codes and coordinates are plausible and internally consistent for the chosen locale, but they don't point at real buildings.
Yes — set locale (8 supported, e.g. locale=de for Germany) and the street, city, state and zip formats plus the one-line formatted form follow that country's conventions.
They're generated to agree with the record's country so data stays coherent — but they're still fake: don't reverse-geocode them and expect the same street.
Pass seed — an identical seed and params return identical records forever; combine with count (up to 100) for a stable fixture set.
Complete fake people — name, age-consistent birth date, email, phone, job and address — with working filters for gender, age range and email domain.
Fake, correctly formatted phone numbers in E.164, international and national forms of the same number, using real country codes and lengths across 8 locales.
6,300+ world cities from a pinned GeoNames snapshot: coordinates, IANA timezone, population and capital flag — filter by country, size, name or distance.
Random geographic coordinates: uniform across the globe (no pole clustering), inside a bounding box, or within a radius of a point — with haversine distances.
Postal code masks, copy-paste validation regexes and shape checking for 178 countries — plus the 68 that have no postal code system at all.
Which fields an address needs in each of 252 countries and territories, and the order they print on the envelope — plus a live envelope renderer.