Catalog/ref-fx-timeseries

Reference

FX rate time-series + return/volatility stats (ECB) API

Fetches the daily exchange-rate series for a currency pair over a date range (ECB reference rates via Frankfurter) and DERIVES summary statistics: first/last/min/max rate with dates, mean, total return %, and annualized volatility % (stdev of daily log-returns x sqrt(252)). Answers 'how did USD/EUR move over this period', 'what was the FX volatility', 'min and max rate in this range'. Distinct from our single-date historical FX endpoint.

Price$0.01per request
MethodPOST
Route/v1/ref/fx-timeseries
StatusLive
MIME typeapplication/json
Rate limit60/minute
Cache86400s public
reffxcurrencyexchange-ratetimeseriesvolatilityforexecbfrankfurter
API URLhttps://x402.hexl.dev/v1/ref/fx-timeseries
Integration docs
Example request
{
  "start": "2024-01-01",
  "end": "2024-01-05",
  "from": "USD",
  "to": "EUR"
}
Example response
{
  "pair": "USD/EUR",
  "from": "USD",
  "to": "EUR",
  "requestedRange": {
    "start": "2024-01-01",
    "end": "2024-01-05"
  },
  "actualRange": {
    "start": "2023-12-29",
    "end": "2024-01-05"
  },
  "stats": {
    "observations": 5,
    "first": {
      "date": "2023-12-29",
      "rate": 0.90498
    },
    "last": {
      "date": "2024-01-05",
      "rate": 0.91567
    },
    "min": {
      "date": "2023-12-29",
      "rate": 0.90498
    },
    "max": {
      "date": "2024-01-03",
      "rate": 0.91583
    },
    "mean": 0.912442,
    "totalReturnPct": 1.181242,
    "annualizedVolatilityPct": 7.562526
  },
  "series": [
    {
      "date": "2023-12-29",
      "rate": 0.90498
    },
    {
      "date": "2024-01-02",
      "rate": 0.91274
    },
    {
      "date": "2024-01-03",
      "rate": 0.91583
    },
    {
      "date": "2024-01-04",
      "rate": 0.91299
    },
    {
      "date": "2024-01-05",
      "rate": 0.91567
    }
  ]
}
Input schema
{
  "type": "object",
  "required": [
    "start",
    "end",
    "from",
    "to"
  ],
  "properties": {
    "start": {
      "type": "string",
      "description": "Range start, YYYY-MM-DD."
    },
    "end": {
      "type": "string",
      "description": "Range end, YYYY-MM-DD."
    },
    "from": {
      "type": "string",
      "description": "Base currency, 3-letter ISO 4217 (e.g. USD)."
    },
    "to": {
      "type": "string",
      "description": "Quote currency, 3-letter ISO 4217 (e.g. EUR)."
    }
  }
}
Output schema
{
  "type": "object",
  "additionalProperties": true
}