← Finance & Currency

Historical Archive (Range)

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.

Parameters

start required

Start date

end required

End date

base optional

Base currency

symbols optional

Target currencies

Example Requests

Basic usage
curl "https://nordapi.ee/api/v1/history/range?start=2020-01-01&end=2020-06-30&base=USD&symbols=EUR"
USD/EUR during first half of 2020
curl "https://nordapi.ee/api/v1/history/range?start=2020-01-01&end=2020-06-30&base=USD&symbols=EUR"
NOK rates during COVID crash period
curl "https://nordapi.ee/api/v1/history/range?start=2020-03-01&end=2020-04-30&base=NOK&symbols=EUR,USD"
GBP rates around Brexit vote
curl "https://nordapi.ee/api/v1/history/range?start=2016-06-01&end=2016-07-31&base=GBP&symbols=EUR,USD"

Live Response

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"

Example Response

{"success":true,"data":{"base":"USD","rates":{"2020-01-02":{"EUR":0.893}}}}