API usage and documentation for the ruby gem and others can be found at the official webpage: https://a0.github.io/a0-tzmigration/
All info is publicly available at the following URL: https://a0.github.io/a0-tzmigration-ruby/data/
The JSON structure is mostly self explanatory, just don’t asume anything: always use a pair of version/timezone to get the data.
There are two folders within data: Timezones and Versions.
For accessing the historical versions of a timezone, each one is saved in an individual JSON file. For example Africa/Cairo is available at https://a0.github.io/a0-tzmigration-ruby/data/timezones/Africa/Cairo.json.
Some timezones are just alias to a real timezone, like Chile/Continental is an alias for America/Santiago. Don’t assume an alias is perpetual, Africa/Asmera has switched between Africa/Asmara and Africa/Nairobi depending on the version of tzdb.
Also, not every timezone was present at all versions, for example America/Punta_Arenas has only versions 2017a onwards.
The data/timezones/00-index.json file has all known timezones, including versions.
For accessing the data from a version perspective, there is one file for every version released. For example, version 2018e is available at https://a0.github.io/a0-tzmigration-ruby/data/versions/2018e.json.
The released_at date of each version correspond to the date stamped in the NEWS file. We only have data from versions 2013c onwards, because we gather from the tzinfo-data ruby gem.
The data/versions/00-index.json file has all known versions, including timezones.