GET /history/range
Retrieve exchange rates for every day within a historical date range from the ECB archive (back to 1999). Returns daily rates for the specified base and target currencies across the entire range. Perfect for building long-term exchange rate charts, academic datasets, economic history visualizations, and backtesting financial models across months or years of data.
start
required
Start date
end
required
End date
base
optional
Base currency
symbols
optional
Target currencies
| Name | Required | Default | Description |
|---|---|---|---|
start |
Yes | - | Start date |
end |
Yes | - | End date |
base |
No | - | Base currency |
symbols |
No | - | Target currencies |
curl "https://nordapi.ee/api/v1/history/range?start=2020-01-01&end=2020-06-30&base=USD&symbols=EUR"
curl "https://nordapi.ee/api/v1/history/range?start=2020-01-01&end=2020-06-30&base=USD&symbols=EUR"
curl "https://nordapi.ee/api/v1/history/range?start=2020-03-01&end=2020-04-30&base=NOK&symbols=EUR,USD"
curl "https://nordapi.ee/api/v1/history/range?start=2016-06-01&end=2016-07-31&base=GBP&symbols=EUR,USD"
HTTP 500: "# UndefinedFunctionError at GET /api/v1/history/range\n\nException:\n\n ** (UndefinedFunctionError) function App.ForexHistory.get_rate_range/4 is undefined (module App.ForexHistory is not available)\n (app 0.1.0) App.ForexHistory.get_rate_range(~D[2020-01-01], ~D[2020-06-30], \"USD\", [\"EUR\"])\n (app 0.1.0) lib/app_web/controllers/api/v1/forex_history_controller.ex:36: AppWeb.API.V1.ForexHistoryController.date_range/2\n (app 0.1.0) lib/app_web/controllers/api/v1/forex_history_controller.ex:1: AppWeb.API.V1.ForexHistoryController.action/2\n (app 0.1.0) lib/app_web/controllers/api/v1/forex_history_controller.ex:1: AppWeb.API.V1.ForexHistoryController.phoenix_controller_pipeline/2\n (phoenix 1.8.5) lib/phoenix/router.ex:416: Phoenix.Router.__call__/5\n (app 0.1.0) lib/app_web/endpoint.ex:1: AppWeb.Endpoint.plug_builder_call/2\n (app 0.1.0) deps/plug/lib/plug/debugger.ex:155: AppWeb.Endpoint.\"call (overridable 3)\"/2\n (app 0.1.0) lib/app_web/endpoint.ex:1: AppWeb.Endpoint.call/2\n (phoenix 1.8.5) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4\n (bandit 1.10.4) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2\n (bandit 1.10.4) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5\n (bandit 1.10.4) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3\n (bandit 1.10.4) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3\n (bandit 1.10.4) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_continue/2\n (stdlib 7.3) gen_server.erl:2424: :gen_server.try_handle_continue/3\n (stdlib 7.3) gen_server.erl:2291: :gen_server.loop/4\n (stdlib 7.3) proc_lib.erl:333: :proc_lib.init_p_do_apply/3\n \n\n## Connection details\n\n### Params\n\n %{\"base\" => \"USD\", \"end\" => \"2020-06-30\", \"start\" => \"2020-01-01\", \"symbols\" => \"EUR\"}\n\n### Request info\n\n * URI: http://localhost:4000/api/v1/history/range\n * Query string: start=2020-01-01&end=2020-06-30&base=USD&symbols=EUR\n\n### Headers\n \n * accept-encoding: gzip\n * host: localhost:4000\n * user-agent: req/0.5.17\n\n### Session\n\n %{}\n"
{"success":true,"data":{"base":"USD","rates":{"2020-01-02":{"EUR":0.893}}}}