Random Addresses for Form Validation Testing

Generate addresses whose city, region and postal code genuinely agree, from dozens of countries, and find out which of them your address form refuses to accept.

Updated

Random addresses for form validation are fictional postal addresses used to check that an address form accepts the shapes real addresses take. The useful ones are region-consistent: a real city, a postal code genuinely issued for it, and the field structure that country actually uses — including countries that have no postal code at all, which is where a form built around the United States tends to fail first.

In short

Address forms break internationally because they hardcode one country's shape — street, city, state, postal code, all required, five digits. Hong Kong has no postal code system at all, Ireland only introduced postcodes in 2015, and the Dutch format is four digits and two letters.

  • Every address here pairs a real city with a postal code genuinely issued for that place; the street name and the house number are both invented, so the record is region-valid and points at no building.
  • Hong Kong records come back with an empty postal code, because Hong Kong genuinely has none — the underlying library throws rather than inventing one, and this generator reports the gap instead of filling it.
  • The UK, Canada, the Netherlands and Ireland get the real geographic half of the postcode and a generated delivery half, which is the same split as a real US ZIP beside an invented street.
  • Nine countries are not geographically pinned, so their city, region and postal code need not agree with each other; they are listed by name on the methodology page rather than quietly shipped.

Custom generate

Pick a state for a matching address, choose how many you need, or leave Random. Need a specific city? Use the city links below.

Generated address

3417 South Avenue

West Jordan, UT 84088

United States

Fictional address — valid format, no real occupant

Approx. area · 40.62037, -112.00889

Address

Street3417 South Avenue
CityWest Jordan
StateUtah
State codeUT
ZIP / postal code84088
CountryUnited States

Location & contact

Geo coordinates40.62037, -112.00889
Phone385-555-0165
One-line address3417 South Avenue, West Jordan, UT 84088, United States

This is randomly generated fictional data for software testing, QA, and privacy. It does not describe a real person. Any resemblance to a real individual is coincidental.

Most address forms are a United States address form wearing a country dropdown. Street, city, state, ZIP; the state is a required select, the postal code is validated as five digits, and the labels stay in place when the country changes. It works for one country and degrades from there, and the degradation is invisible in testing because the fixtures were American too.

The honest way to find those failures is to feed the form addresses from countries that are shaped differently. A Dutch postal code is four digits, a space and two letters. A Japanese one is three digits, a hyphen and four more, conventionally printed after a postal mark. Ireland had no postcodes at all until Eircode arrived in 2015, and Hong Kong still has none — there is no field to fill, and a form that requires one cannot be completed by anyone who lives there.

The random address generator behind this page produces addresses for 38 countries, and it pins them: a real city is chosen first, and the region, postal code and coordinates are all derived from that choice rather than drawn independently. That is what makes a record usable as a validation fixture — the fields agree with each other in the way a real address's fields agree, so when your form rejects one, the rejection is about your rules.

What the generator will not do is invent a postal code for a country that has none, or dress a partial code up as a complete one. Where only the geographic half of a code is published, that half is real and the rest is generated, and where a country has no system at all the field comes back empty with the reason attached. Those two behaviours are the point of the page: a fixture that lies about what is real is worse than no fixture.

The assumptions a US-shaped form makes

Five assumptions account for most international address failures, and each one is easy to test once you have fixtures that violate it. That the postal code is required and numeric. That a state or province is required and comes from a fixed list. That the postal code is a fixed length. That the address can be uppercased, ASCII-folded or split on commas without loss. And that the field order on screen matches the order the address is written in.

The postal code assumption is the expensive one. A pattern of five digits rejects the United Kingdom, Canada, the Netherlands, Ireland, Japan and Brazil outright, and quietly mis-accepts Brazil's eight-character CEP by matching only its first five characters. Making the field optional is not the fix either, because the same form then accepts a US order with no ZIP. The rule has to be per country, which means the form needs a country-aware validator and the test suite needs a fixture per shape.

The required-region assumption fails differently: many countries have administrative divisions that are simply not part of a postal address, so a required dropdown forces the user to pick something arbitrary, and whatever they pick is then stored and shipped to a carrier. Hong Kong is the clean example, and it is also the clean test — if your form can complete a Hong Kong address with no postal code and no state, it has probably stopped hardcoding the United States.

The formatting assumptions are the ones that survive review and fail in production. USPS Publication 28 defines a complete address as one that has all the elements needed to match against the Postal Service's own ZIP+4 and city-state files, which is a lookup rather than a pattern — a well-formed address can still be an address that does not exist. Meanwhile the Universal Postal Union publishes each member country's addressing format, and the line order in those documents varies more than a form designer would guess.

Which countries break which assumption

The table below is the shortest useful tour. Every shape in it is one this generator produces, so each row is a fixture you can pull in a couple of seconds rather than a hypothetical.

Two rows deserve a note. Ireland's Eircode is a seven-character code in two parts, a three-character routing key and a four-character unique identifier, and it was introduced in 2015 — so historical data from Irish customers legitimately has no postcode, and a validator that requires one will reject records that were correct when they were captured. And Hong Kong has no postal code system whatsoever: the correct value is nothing, not a placeholder, not 00000, and certainly not a number invented to satisfy a required field.

The United Kingdom, Canada, the Netherlands and Ireland share a property worth understanding before you build assertions on their codes here: published reference data covers the geographic half of the code — the part that ties it to a place — while the remaining characters identify a specific delivery point. This generator emits the real geographic half and generates the rest, which keeps the code format-valid and tied to the right city while making sure it does not name a real doorstep.

Postal-code shapes, and what a five-digit rule does to them

CountryShapeExampleWhat a US-shaped form does
United States5 digits43215Accepts — this is the shape it was built for
Germany, France, Spain, Italy, Mexico5 digits80331Accepts, and often mislabels the field as ZIP
Australia4 digits3000Rejects: one digit short of the hardcoded length
Japan3 digits, hyphen, 4 digits100-0001Rejects: the hyphen fails a digits-only rule
Brazil5 digits, hyphen, 3 digits01310-100Silently mis-accepts the first five characters as if they were the whole code
United KingdomVariable alphanumeric, internal spaceEC1A 1BBRejects: letters, variable length and a space
CanadaAlternating letter and digit, 6 charactersM4B 1B4Rejects, and case-folding the value loses nothing but often breaks the pattern anyway
Netherlands4 digits, space, 2 letters1011 ABRejects: the trailing letters are part of the code
Ireland3-character routing key, 4-character identifierA65 F4E2Rejects — and pre-2015 Irish records have no code at all
Hong KongNo postal code system(empty)Cannot be completed: the field is required and there is nothing to enter

Every shape here is one this generator produces. The pattern column is the format, not a validator you should copy — a real validator does a lookup, because a well-formed code can still be a code that was never issued.

Building a fixture set that covers the shapes

You do not need one fixture per country. You need one per shape, plus the countries you actually operate in. A defensible minimum is: the United States for five digits, the Netherlands for digits-plus-letters, the United Kingdom for a variable-length alphanumeric code with an internal space, Japan for a hyphenated numeric code, Brazil for an eight-character code whose first five look like a US ZIP, Ireland for a code that only exists after 2015, and Hong Kong for no code at all.

Pull them from the JSON API in one pass and commit the result. A seeded call returns byte-identical records, so the fixture file is stable, and the country parameter accepts either a slug or an ISO 3166-1 alpha-2 code — for example https://fakenamely.com/api/v1/address?country=nl&count=5&seed=address-form-v2, with format=csv if you would rather have columns. The bulk exporter handles the larger sets, up to 100,000 rows.

Then test the rejections as carefully as the acceptances. A validator that accepts every fixture is not obviously correct — it may be accepting everything. Pair each valid fixture with a deliberately broken sibling: a Dutch code with the letters missing, a UK code with the space in the wrong place, a five-digit number where an eight-character CEP belongs. The generator gives you the valid half; the invalid half is a hand-written list, and it is short.

How these addresses are generated

Generation starts from a place rather than from fields. The generator picks a real city, and the region, postal code, telephone area code and coordinates are all derived from that single choice — which is why the fields agree. Before that change the United States path drew city, state and ZIP independently, and the result was records like an invented town in California carrying a Michigan ZIP: measured over 400 records, 19% of those postal codes were real and 1% agreed with the state printed beside them.

For the United States the postal codes come from the GeoNames postal dataset, published under CC BY 4.0, filtered to codes that take ordinary residential street mail — so PO-Box-only, military and single-facility codes are excluded from the pools. Telephone area codes come from the North American plan's rate-centre data for that same city, not from its state's wider list. Twenty-eight of the other countries are pinned the same way against their own city data; nine are not, and those nine are named on the methodology page rather than left for you to discover.

What stays invented is the delivery point. The street name comes from a generic street-name pool rather than that city's real streets, and the house number is a random value between 1 and 9989. So a generated address is a real city, a genuinely valid postal code for it, and a street that is not expected to exist there — format-valid and region-consistent, deliberately not deliverable.

These rules are enforced as tests rather than asserted in prose: every postal code a city page emits has to appear in that city's real published list, every state-page code has to fall inside that state's documented ranges, and a code that takes no ordinary street mail may not appear in any pool — with two dozen individually verified examples pinned by name so the rule cannot quietly stop catching them.

What one generated address record actually contains

FieldReal or inventedNote
CityRealChosen first; everything else is derived from it
Region, state or provinceRealThe region that city is actually in, for the pinned countries
Postal codeRealGenuinely issued for that place, filtered to codes that take ordinary street mail
Street nameInventedFrom a generic street-name pool, not that city's real streets
House numberInventedA random number between 1 and 9989
Telephone area codeRealDrawn from that city's own rate centre in the United States and Canada
CoordinatesApproximateA random point near the city centre — it locates the region, not the address
Country and country codeRealISO 3166-1 alpha-2

The split is deliberate: the parts a validator checks are real, and the part that would identify a household is not.

What this data is for, and what it must never be used for

These addresses exist to be submitted to your own forms and rejected or accepted by your own rules. They are format-valid and region-consistent by design, and undeliverable by design.

Appropriate uses

  • Testing address forms, country-aware validators and postal-code rules
  • Seeding staging environments and demo accounts with plausible addresses
  • Checking that an address survives storage, display, printing and export unchanged
  • Filling an address field on a service that does not need your home address and where the terms permit it

Never acceptable

  • Anything that has to arrive: deliveries, returns, card statements, verification letters
  • Identity verification, KYC, proof of address, tax residency or any regulated onboarding
  • Opening accounts to obtain pricing, catalogue availability, trials or promotions restricted to a region you are not in
  • Billing or customs declarations, where a false address is fraud rather than a fixture

A generated address names a real city and no real building. That is what makes it a good fixture and a bad address. The full boundary is on the terms of use page. Terms of use · Data and methodology

Frequently asked questions

Why does my form reject an address that is obviously valid?+

Usually because a rule written for one country is being applied to all of them. A five-digit postal-code pattern rejects the UK, Canada, the Netherlands, Ireland, Japan and Brazil; a required state dropdown cannot be satisfied where the address has no such element; and a required postal code cannot be satisfied in Hong Kong, which has no postal code system. The fix is a per-country validator, and the test for it is a fixture per shape.

Do all countries have postal codes?+

No. Hong Kong has no postal code system at all — mail is routed by district and building — and several other places either have no system or do not use one in everyday addressing. Ireland is the other instructive case: Eircode was only introduced in 2015, so genuine Irish address records captured before then have no postcode. A form that treats the field as universally required is wrong in both directions.

Will a generated address pass a real address-verification service?+

The postal code will verify and the city and region will agree with it, because those parts are real. The full address will not, because the street name and house number are invented and no verification service will find that delivery point. That is the intended boundary: use these to exercise your own form rules and your storage and display path, and use a real address, with permission, when you need to test a real lookup.

Can I use generated addresses instead of copying production data?+

For lower environments that is exactly the trade this data is for. A copy of production carries real personal data into a system with weaker controls and more people looking at it, while generated addresses carry none and can be shared freely across a team. What they do not reproduce is the messiness of your real data — the misspelled cities, the addresses entered in the wrong fields — so keep a small hand-written set for those.

Do you produce postal-code suffixes like ZIP+4?+

No. United States output is five digits only, with no ZIP+4 add-on, because the four-digit add-on identifies a specific delivery segment and an invented one would be a fabricated delivery point rather than a fixture. If you need to exercise ZIP+4 handling, drive it from a stubbed value in your own test rather than from generated data.

How do I get one address per postal-code shape?+

Call the JSON API once per country and commit the result: it takes a seed, so the same call always returns the same records, and the country parameter accepts a slug or an ISO 3166-1 alpha-2 code. A minimum set that covers the shapes is the United States, the Netherlands, the United Kingdom, Japan, Brazil, Ireland and Hong Kong. No key or sign-up is needed, and the response can come back as CSV if you prefer columns.

Can I have a parcel sent to one of these addresses?+

No. The street name and house number are invented, so at best the parcel is undeliverable and at worst the invented number lands on a real street and reaches a household that did not order anything. Generated addresses are for forms, storage and display. Anything that has to physically arrive needs a real address.

More address use cases

Related pages

More generators

Sources

  1. USPS Publication 28 — Postal Addressing StandardsUnited States Postal Service
  2. Universal Postal Union — addressing solutions and per-country address formatsUniversal Postal Union
  3. Eircode — Ireland's postcode system, introduced in 2015Eircode
  4. GeoNames postal-code dataset (CC BY 4.0) — the source of our real US ZIP listsGeoNames
  5. Faker — the locale name, street and place datasets this site generates fromFaker (MIT)
  6. FakeName — Data and Methodology: sources, real-versus-invented fields, known limitsFakeName

We use cookies for analytics and ads to keep this generator free. See our Privacy Policy.