forexrateapi is the official Ruby wrapper for ForexRateAPI.com. This allows you to quickly integrate our foreign exchange rate API and currency conversion API into your application. Check https://forexrateapi.com documentation for more information.
Add to Gemfile.
gem 'forexrateapi'
api_key = 'SET_YOUR_API_KEY_HERE'
client = ForexRateAPI::Client.new(api_key: api_key)
# Or use EU server:
# client = ForexRateAPI::Client.new(api_key: api_key, server: 'eu')ForexRateAPI provides two regional endpoints. Choose the one closest to your servers for optimal performance.
| Region | Base URL |
|---|---|
| United States (default) | https://api.forexrateapi.com/v1 |
| Europe | https://api-eu.forexrateapi.com/v1 |
# Default (US)
client = ForexRateAPI::Client.new(api_key: 'SET_YOUR_API_KEY_HERE')
# Europe
client = ForexRateAPI::Client.new(api_key: 'SET_YOUR_API_KEY_HERE', server: 'eu')client.fetchSymbols()server<string> Pass'eu'to use the EU server (api-eu.forexrateapi.com), or'us'for the US server. Defaults to US if not specified.
client.setServer('eu')base<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.math<string> Optional. Pass in a math expression to apply to the rates.
client.fetchLive('USD', ['AUD', 'CAD', 'GBP', 'JPY'])date<string> Required. Pass in a string with formatYYYY-MM-DDbase<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.
client.fetchHistorical('2024-02-05', 'USD', ['AUD', 'CAD', 'GBP', 'JPY'])base<string> Optional. Pass in a base currency, defaults to USD.currency<string> Required. Specify currency you would like to get hourly rates for.start_date<string> Required. Specify the start date using the formatYYYY-MM-DD.end_date<string> Required. Specify the end date using the formatYYYY-MM-DD.math<string> Optional. Pass in a math expression to apply to the rates.date_type<string> Optional. Pass in a date type, overrides date parameters if passed in.
client.hourly('USD', 'EUR', '2024-02-05', '2024-02-05')base<string> Optional. Pass in a base currency, defaults to USD.currency<string> Required. Specify currency you would like to get OHLC for.date<string> Required. Specify date to get OHLC for specific date using formatYYYY-MM-DD.date_type<string> Optional. Pass in a date type, overrides date parameter if passed in.
client.ohlc('USD', 'EUR', '2024-02-05', nil)from_currency<string> Optional. Pass in a base currency, defaults to USD.to_currency<string> Required. Specify currency you would like to convert to.amount<number> Required. The amount to convert.date<string> Optional. Specify date to use historical midpoint value for conversion with formatYYYY-MM-DD. Otherwise, it will use live exchange rate date if value not passed in.
client.convert('USD', 'EUR', 100, '2024-02-05')start_date<string> Required. Specify the start date of your timeframe using the formatYYYY-MM-DD.end_date<string> Required. Specify the end date of your timeframe using the formatYYYY-MM-DD.base<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.
client.timeframe('2024-02-05', '2024-02-06', 'USD', ['AUD', 'CAD', 'GBP', 'JPY'])start_date<string> Required. Specify the start date of your timeframe using the formatYYYY-MM-DD.end_date<string> Required. Specify the end date of your timeframe using the formatYYYY-MM-DD.base<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.date_type<string> Optional. Pass in a date type, overrides date parameters if passed in.
client.change('2024-02-05', '2024-02-06', 'USD', ['AUD', 'CAD', 'GBP', 'JPY'])client.usage()-
How do I get an API Key?
Free API Keys are available here.
-
I want more information
Checkout our FAQs here.
For support, get in touch using this form.