I've long searched for this, but only find entities that want me to pay them money. I don't have money. I can't pay money. This is for my personal, non-commercial use. I can't afford to pay for every little thing I need and which doesn't generate me a cent.
I've also found numerous broken or semi-broken webpages intended for humans to manually look up historical currency rates. These are of no use to me since I need it to be automatable, and don't want to rely on some third party for privacy and reliability reasons. They also have the problem that they frequently only go very shortly back in history, whereas I want a far longer span, at least 1900-2020. (Although if nothing else can be had, I'd settle for just 1990-2020).
It seems like the only way is for me to "do it myself" somehow. But to do this, I need some sort of raw data. Large tables for each "currency pair" and date, I imagine. Maybe something like a bunch of CSV files like this:
# Date,From,To,Ratio
1900-01-01,USD,JPY,0.5
...
While it would be a lot of annoying and hard work, I could probably do it if I had such (or similar) data. But where would I get that from? And would they also want money from me? Is there some kind of "public service" providing such data for "most" currencies/currency pairs?
Once I have imported the data into my own local database, I would probably be able to figure out how to actually make it answer questions such as:
How much in JPY was 32 USD worth in 1995-03-25?
Logically, the existing services must get this data from somewhere.