I found the answer to this question VERY useful, but I would like to also get exchange rates for dates in the past, not just today's exchange rates. I'm writing an iPhone app that uses the exchange rate to calculate money made from sales in different countries.
Here's the example from the answer mentioned above to get today's echange rate for GBP to EUR: http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=sl1d1t1ba&e=.csv
Does anyone know how to do this for any other dates? THANK YOU!
To retrieve historical data of currency exchange rates, you can't use Yahoo Finance. Their API only offers historical data of stocks. For example for APPLE between April the 1st 2003 and July, 30:
http://ichart.finance.yahoo.com/table.csv?s=AAPL&a=3&b=1&c=2003&d=6&e=30&f=2003&g=d&ignore=.csv
So, in your case you need to dig somewhere else. The only other main API available is OpenExchangeRate: http://openexchangerates.org/documentation#historical-data
Notice:
Important: From end August 2012, you will need an App ID to query the Open Exchange Rates API - it's free for personal use, and cheap for apps and commercial uses.
Other option:
You could use this: Free Forex Historical Data and then use Yahoo Finance (Currency Rates) each day (at your convenience) to construct an up-to-date table with all your currencies rates needed.
EDIT
The FED offers you historical data of many currencies rates. See Data Download Program to retrieve (csv, xls, xml) historical data. You can adapt it to your needs.
Actually, there is a way to get exchange rates historical data for free from Yahoo Finance.
Sample YQL console results(e.g USD/EUR exchange rate for 2015-09-03) by URL: https://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select+*+from+yahoo.finance.historicaldata+where+symbol+%3D+%22EUR%3DX%22+and+startDate+%3D+%222015-09-03%22+and+endDate+%3D+%222015-09-03%22
or via YQL query like
select * from yahoo.finance.historicaldata where symbol = "EUR=X" and startDate = "2015-09-03" and endDate = "2015-09-03"
You CAN use ichart.finance for currency as well. Use it just as Romain suggested for stocks. For US Dollar to South Korean Won, for example, use the symbol "KRW=X
" in your query, i.e., instead of s=AAPL
, use s=KRW=X
.
If you would like to use JSON API, then I would suggest using this Forex Exchange API, which is using Yahoo Finance rate.
I have implemented this for few of my customers, so far no issues have been reported from this currency exchange API though it's free currency exchange API.
来源:https://stackoverflow.com/questions/12114754/programmatically-access-currency-exchange-rates-from-yahoo-finance-by-date