Historical currency converter web service

in
on
=

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.

Data source

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 the /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).

Terms of use

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.

Supported operations

Get a list of supported currencies

http://currencies.apps.grandtrunk.net/currencies[/<date>]

List of all supported currency codes, one per line. If <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, BYN, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNH, CNY, COP, CPI, 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, MRU, 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, SSP, STD, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VAL, VEB, VEF, VES, VND, VUV, WST, XAF, XAG, XAU, XCD, XCP, XDR, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWL

Current conversion rate

http://currencies.apps.grandtrunk.net/getlatest/<fromcode>/<tocode>

Conversion rate of one <fromcode> into <tocode> for today.

Example

The latest exchange rate for 1 USD is 0.939 EUR.

http://currencies.apps.grandtrunk.net/getlatest/usd/eur = 0.9387027128508402

Historical currency conversion rate

http://currencies.apps.grandtrunk.net/getrate/<date>/<fromcode>[/<tocode>]

Conversion rate of one <fromcode> into <tocode> (default EUR) on <date>.

Example

On 2009-11-15, 1 USD equaled 7.445 ZAR.

http://currencies.apps.grandtrunk.net/getrate/2009-11-15/usd/zar = 7.44498251278

List of historical conversion rates

http://currencies.apps.grandtrunk.net/getrange/<fromdate>/<todate>/<fromcode>/<tocode>

Return a list of conversion rates of one <fromcode> into <tocode>, for dates ranging from <fromdate> to <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.

Example

Value of the Euro (in US Dollar) in its first year.

http://currencies.apps.grandtrunk.net/getrange/1999-01-01/2000-01-01/eur/usd

Errors

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.