Change Log

API changes, newest first

Version 1.4.37

2026-09-25

Ask for users from a particular region, city or postcode.

Added

Version 1.4.36

2026-09-23

Every address now names a street that exists in its city, and its coordinates fall inside that city - for all 22 nationalities.

Added

Changed

Version 1.4.35

2026-09-23

Changed

Fixed

Version 1.4.34

2026-09-22

Singapore joins as the 22nd nationality, built from the map rather than by hand, and new nationalities no longer shift the seeds of old ones.

Added

Changed

Version 1.4.33

2026-09-22

The API can now say which nationalities it offers.

Added

Version 1.4.32

2026-09-14

The street import no longer queries the public Overpass API. It reads Geofabrik's extract of the Philippines from a local file, and a full run takes two minutes instead of two hours.

Changed

Fixed

Version 1.4.31

2026-09-13

The import was reporting the wrong cause, and half the country has no municipal boundary to find.

Fixed

Added

Version 1.4.30

2026-09-13

Making the street import survive a full run against a public endpoint.

Changed

Added

Version 1.4.29

2026-09-13

Three defects the first full run exposed.

Fixed

Version 1.4.28

2026-09-13

Changed

Version 1.4.27

2026-09-13

Two bugs that would have filed streets under the wrong town.

Fixed

Added

Version 1.4.26

2026-09-13

The city lookup asked Overpass to scan the planet.

Fixed

Version 1.4.25

2026-09-13

Spelling variants no longer cost a city its real barangays.

Fixed

Changed

Version 1.4.24

2026-09-13

Barangay names are now checked against the official list.

Fixed

Changed

Version 1.4.23

2026-09-13

The Philippine street import asked OSM the wrong questions and got nothing back.

Fixed

Added

Version 1.4.22

2026-09-13

Philippine addresses can now carry a real street and the barangay it runs through.

Added

Compatibility

Noted, not changed

Version 1.4.15

2026-09-05

The timezone had nothing to do with the address.

Fixed

Added

Compatibility

Known, not fixed

Version 1.4.14

2026-09-05

Complete real postcodes for the six nationalities that were inventing the tail.

Added

Not changed

Compatibility

Version 1.4.13

2026-09-05

Kosovo's five districts now carry Kosovo's own postal codes.

Changed

Compatibility

Version 1.4.11

2026-09-04

The last six nationalities. Every nationality the API offers now generates a geographically coherent address.

Added

Fixed

Changed

Compatibility

Still outstanding

Nothing on the original list. Every nationality has a locations.txt, every region in every states.txt has at least one city, and every postcode format on the brief's table is fixed.

Version 1.4.10

2026-09-04

Iran removed, and a latent spec flaw fixed that removing it would have made worse.

Removed

Fixed

Compatibility

Still outstanding

Five nationalities still draw city and region independently: CH, DK, FI, NO, RS. All five have sourceable postcodes and dialling codes.

Version 1.4.9

2026-09-04

Matched locations for Brazil, India, Mexico and Turkey, and the Philippines added as a new nationality.

Actual output from the previous build:

BR Porto Velho | Rondônia | 11910 | (46) 5909-6383 IN Amritsar | Punjab | 10813 | 7656670656 MX Coatzacoalcos | Veracruz | 70937 | (650) 731 0329 TR Nevşehir | Nevşehir | 59958 | (757)-224-7229

Every postcode there is the generator's range(10000, 99999) default. Brazil uses an eight-digit CEP, India a six-digit PIN, and neither (46) for Rondônia nor (650) for Veracruz nor (757) for Nevşehir is a real dialling code.

Added

Fixed

Changed

Compatibility

Measured rather than assumed, across all 21 existing nationalities:

Still outstanding

Version 1.4.8

2026-09-04

Three standalone data and generation defects, none of which needed a locations.txt to fix. Ahead of the next batch of matched locations so they land on their own rather than buried in a large data diff.

Fixed

Compatibility

Noted, not changed

NO/lists/states.txt has two further oddities that are vocabulary decisions rather than clear bugs, so they are left alone until Norway gets its matched locations:

Version 1.4.7

2026-09-04

A failed first MongoDB connection no longer disables the process permanently.

Found while running the suite on a Windows machine with a healthy, local MongoDB 8.0 that the app could not use. mongod logged exactly one client connection, lasting 700ms, and then nothing for the next 24 minutes:

"msg":"client metadata" ... "driver":{"name":"nodejs|Mongoose","version":"6.20.0|8.24.4"} "msg":"Connection ended" ... "connectionCount":0

The database was reachable in 26ms from a standalone script. What broke it was startup order: app.js connects before loadGenerators reads every dataset for all five API versions, and on a cold or virus-scanned disk that work held the event loop past the 30-second server-selection deadline. The driver's socket got through just as the deadline expired, so the driver closed it.

Fixed

Added

Changed

Compatibility

Version 1.4.6

2026-09-04

Every county in the GB vocabulary now has a town behind it, and the spec enforces that for all ten nationalities.

1.4.1 shipped 66 GB cities against the store's 114-entry postal-county list, so 65 counties had no city that could ever be generated for them — Middlesex, Rutland, the Isle of Man, the Isles of Scilly, Fermanagh, the historic counties of Avon, Cleveland, Humberside and Borders, and 56 others. A WooCommerce customer in any of them had no address the generator could produce.

Added

Changed

Compatibility

Version 1.4.5

2026-09-04

Geographically coherent French, Dutch, Spanish, Irish and New Zealand addresses, and correct postcode formats for the three of them that were wrong.

Actual output from the previous build:

FR Orléans | Corrèze | 78948 | 04-97-76-65-33 NL Leimuiden | Zeeland | 66536 | (087)-124-9959 ES Cartagena | Aragón | 77645 | 975-968-702 IE Arklow | Galway | 71592 | 011-734-2085 NZ Greymouth | Tasman | 20684 | (104)-942-3055

Orléans is in the Loiret, Cartagena is in Murcia, Arklow is in Wicklow and Greymouth is on the West Coast. Every postcode there is a five-digit number from the generator's default range(10000, 99999): France has no 789xx, Spain has no province 77, and the Netherlands, Ireland and New Zealand do not use five-digit numeric postcodes at all. 011 and (104) are not dialling codes in their respective countries.

Added

Changed

Fixed

Compatibility

Still outstanding

Version 1.4.4

2026-09-04

Geographically coherent US, Canadian, Australian and German addresses, using the locations.txt mechanism introduced for GB in 1.4.1.

Actual output from the previous build:

US Tucson | Rhode Island | 34083 | (343) 388-7043 CA Greenwood | Saskatchewan | C5R 8M8 | N04 B03-1437 AU Darwin | New South Wales | 4161 | 00-6878-3589 AU Busselton | Queensland | 416 | 00-0490-1160 DE München | Baden-Württemberg | 51694 | 0079-6266222

Tucson is in Arizona, Darwin is in the Northern Territory and München is in Bayern. Beyond the mismatched regions: 00 is not an Australian area code, 0079 is not a German Vorwahl, 416 is not a four-digit Australian postcode, and the Canadian phone number has letters where the area code belongs.

Added

Changed

Fixed

Compatibility

Version 1.4.3

2026-09-04

Data loading fixes. Applies to every API version, 1.0 through 1.4.

Fixed

Both are fixed by a single util.splitList helper now shared by all five generator versions.

Added

Compatibility

Version 1.4.2

2026-09-04

Correctness and performance pass over the API and server. No change to the response schema or to any documented query parameter.

Fixed

Performance

Compatibility

Testing notes

Version 1.4.1

2026-09-04

Geographically coherent UK (nat=GB) address generation.

Previously a GB user's city, county, postcode and phone number were each drawn independently. Actual output from the previous build:

Cardiff | Shropshire | A1R 3PW | 01348 391746 Kingston upon Hull | County Antrim | LT48 9ZA | 016973 36959 Lisburn | Mid Glamorgan | V8I 8PU | 025 5364 5436

None of those addresses can exist: the county does not contain the city, the outward codes are not real districts (and V8I uses two letters Royal Mail excludes), and 025 is not an allocated UK dialling code. Any consumer that validates a UK address — a WooCommerce checkout, for example — rejected them.

Added

Changed

Fixed

Compatibility

Data sources