This web service allows you to programmatically query a historical exchange rate for a number of currencies, from January 1971 onwards, using exchange rates from the Federal Reserve and European Central Bank (ECB). It is currently free for use in low-volume and non-commercial settings.
The data from this service are those downloadable from the ECB's Euro foreign exchange reference rates website, and the US Federal Reserve's H.10 Foreign Exchange Rates. The ECB rates are updated every working day around 3 p.m. CET, this service should fetch updates within two hours. The Fed only releases one weekly update with daily rates for the past week.
Historical rates are available starting from 1971 and up to today. Some currencies may not be available for all dates
(such as the Euro before 1999). Each request made to
/getrate service uses the exchange rate for the day specified, or the last day before
that when no exact match is available (for instance during weekends).
This service is free for personal and non-profit use. If you use it, consider dropping me a line or leave a comment at this blog post. Donations to cover hosting costs are always welcome.
If you plan to make heavy use of this service, or want to use it for commercial purposes, please contact me in advance.
DISCLAIMER: While I try to keep the results of this service accurate, I cannot make guarantees on correctness or availability. Usage of this service is entirely at your own risk.
List of all supported currency codes, one per line.
<date> is provided, all supported currencies for that date are listed;
when date is omitted all currencies are returned for which the rate on at least one date is known.
Currently, these are: AED, AFN, ALL, AMD, ANG, AOA, ARS, ATS, AUD, AWG, AZN, BAM, BBD, BDT, BEF, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTC, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNH, CNY, COP, CRC, CUC, CUP, CVE, CYP, CZK, DEM, DJF, DKK, DOP, DZD, EEK, EGP, ERN, ESP, ETB, EUR, FIM, FJD, FKP, FRF, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GRD, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, IEP, ILS, IMP, INR, IQD, IRR, ISK, ITL, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LUF, LVL, LYD, MAD, MCF, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MTL, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NLG, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PTE, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SIT, SKK, SLL, SML, SOS, SRD, STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VAL, VEB, VEF, VND, VUV, WST, XAF, XAG, XAU, XCD, XCP, XDR, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWL
Conversion rate of one
<tocode> for today.
The latest exchange rate for 1 USD is 0.909 EUR.
Conversion rate of one
<tocode> (default EUR) on
On 2009-11-15, 1 USD equaled 7.445 ZAR.
Return a list of conversion rates of one
for dates ranging from
<todate>. At most 100 rates are returned,
spaced evenly in the requested interval. One conversion rate per line, first the date in yyyy-mm-dd format, then
the conversion rate, separated by a single space. Dates for which no rate is known are omitted.
Value of the Euro (in US Dollar) in its first year.
The HTTP status code is set according to the success of the operation:
200 success, response body contains the requested data
400 invalid request, such as an unsupported currency code, an invalid date format (must be yyyy-mm-dd), or a date for which no rates are known for the requested currency. Response body contains a textual description of the problem.
503 over quota. Since this is a free service, only a limited amount of queries are allowed per day and per IP address. If you have an application that's hitting this, please contact me.