Fake address generator
Street addresses, cities, states, postcodes, countries and coordinates β generated in bulk and kept consistent within each row, so a city never lands in the wrong country.
Row coherence is the whole trick
Most address generators draw each column independently, which produces rows like "Paris, United States, 90210". It looks fine in a database and absurd the moment it reaches a UI, a shipping-label mock or a map pin.
Here the location fields agree with each other within a row. Put City, Country and Country Code in one schema and the city genuinely belongs to that country:
street_address,city,country,country_code,zip 4821 Juniper Lane,Lyon,France,FR,64183 118 Sycamore Court,Izmir,TΓΌrkiye,TR,30947 7302 Rosewood Drive,Osaka,Japan,JP,55210
Note what is not claimed: the postcode is a plausibly shaped number, not a real postcode for that city, and the street exists nowhere. That is deliberate β see below.
The fields available
- Street Address β house number plus a street name and suffix.
- City, Country, Country Code (ISO) β coherent within the row.
- State (US) and State Abbrev (US) β for US-shaped schemas.
- Zip / Postal Code β pattern-driven, default
#####. Change the format to match the country you are modelling:### ##,?? ##-###, or whatever shape your validator expects. - Full Address β the whole thing in one string, for a single-column address field.
- Latitude and Longitude β six-decimal coordinates.
Postcodes are a format test, not a lookup
The postcode field generates values matching a pattern you choose, where # is a digit, ? an uppercase letter and ~ a lowercase one. That is the right tool for testing an input mask, a column width or a regex validator β and the wrong tool for testing address verification, because a generated postcode will not resolve to the generated city.
If your application calls a real address-verification API, generated addresses will fail that call. That is correct behaviour and worth testing explicitly: the interesting question is what your checkout does when verification fails, and a fixture full of unverifiable addresses answers it.
Coordinates
Latitude and Longitude are drawn across the full valid ranges (β90 to 90, β180 to 180) at six decimal places, independently of the city column. They are ideal for exercising a map component, a bounding-box query or a distance calculation at volume; they are not the coordinates of the city in the same row. If you need points near a specific place, a Decimal field with a narrow min and max is the more honest tool.
Address shapes that break forms
Once the bulk list is generated, add the awkward cases as a Custom List. The ones that reliably find bugs: addresses with no house number, addresses where the "street" is a PO box, multi-line addresses, addresses longer than the database column, single-line addresses in countries that put the postcode before the city, and countries with no postal code at all. Set Blank % on the state field to check that a form which requires "state" does something sensible for the many countries that do not have one.
Exporting
Address columns export to every format. CSV is the usual choice for bulk-loading a customers table β note that Full Address contains commas and is therefore quoted, which makes it a good smoke test of your CSV parser. JSON suits a nested shipping-address object via dot-notation field names, and SQL gives you a seed script directly.
Common questions
Are these real addresses?
No. Street names and house numbers are synthetic and do not correspond to real buildings. City and country names are real places and stay consistent within a row, but the full address is fictional by design.
Will the postcodes validate?
They match the pattern you configure, not a real postal database. They are built for testing input masks, column widths and format validators; they will not pass a real address-verification service.
Do the city and country match?
Yes. City, Country and Country Code are coherent within each row, so you never get a city placed in the wrong country. Latitude and longitude are independent and are not the coordinates of that city.
Can I generate addresses for one country only?
The location fields draw from a mixed international pool. To constrain to one country, use a Custom List field for the city and set the postcode pattern to that country's format.
How do I get a multi-line address?
Use separate Street Address, City, State, Zip and Country fields and join them in your application, or use the single-string Full Address field if one column is enough.
Related generators
- Random name generator β the people these addresses belong to.
- Random phone number generator β national number formats to match.
- Sales sample data β orders with shipping addresses attached.
- Location field reference β every location field and its options.