# Frankfurter

> Fetch foreign-exchange rates and currency data through Frankfurter's keyless API: latest and historical rates, time series, single-pair lookups, currency conversion, date coverage, the list of currencies, and the central-bank providers behind the rates, including each provider's own unblended rates. Over 220 currencies are tracked from more than 100 central banks and official sources, back to 1948. No account or API key required.

App · Accounting & Finance · 12 actions. Web page: https://docs.lodol.com/docs/integrations/frankfurter

## Actions

### Convert amount

Convert an amount from one currency to another using the latest rate, or the rate as of a past date.

**Inputs**

- From currency (`base`, text, required): Currency to convert from, as a 3-letter ISO code.
- To currency (`quote`, text, required): Currency to convert to, as a 3-letter ISO code.
- Amount (`amount`, number, required): The amount, in the base currency, to convert.
- Date (`date`, date): Optional date whose rate to use, in YYYY-MM-DD format. Defaults to the latest rate.
- Providers (`providers`, text): Comma-separated provider keys to source the rate from (for example, ECB). Leave blank for the default blended rate.

**Outputs**

- `conversion` (object)

**Example output**

```json
{
  "conversion": {
    "amount": 10.0,
    "base": "EUR",
    "date": "2026-07-24",
    "quote": "USD",
    "rate": 1.1403,
    "result": 11.403
  }
}
```

### Get coverage

Find the first and last dates for which rates exist for a base currency, optionally narrowed to particular quote currencies or providers. Use it to pick a valid date range before fetching a time series or historical rates.

**Inputs**

- Base (`base`, text): Base currency as a 3-letter ISO code (for example, EUR). Defaults to USD when omitted. Default: `USD`.
- Quotes (`quotes`, text): Comma-separated quote currencies the coverage must include (for example, GBP,JPY). Leave blank for the base currency's overall coverage.
- Providers (`providers`, text): Comma-separated provider keys to restrict the coverage to (for example, ECB). Leave blank for all providers.

**Outputs**

- `coverage` (object)

**Example output**

```json
{
  "coverage": {
    "base": "USD",
    "end_date": "2026-10-08",
    "providers": null,
    "quotes": [
      "EUR",
      "GBP"
    ],
    "start_date": "1949-12-21"
  }
}
```

### Get currency

Get the details and provider coverage for a single currency by its ISO code.

**Inputs**

- Currency code (`code`, text, required): The currency's 3-letter ISO code (for example, EUR).

**Outputs**

- `currency` (object)

**Example output**

```json
{
  "currency": {
    "iso_code": "EUR",
    "iso_numeric": "978",
    "name": "Euro",
    "start_date": "1999-01-04",
    "symbol": "\u20ac"
  }
}
```

### Get historical rates

Look up exchange rates for a specific past date (rates are available back to 1948).

**Inputs**

- Date (`date`, date, required): The date to look up, in YYYY-MM-DD format.
- Base (`base`, text): Base currency as a 3-letter ISO code (for example, EUR). Defaults to USD when omitted. Default: `USD`.
- Quotes (`quotes`, text): Comma-separated target currencies to return (for example, USD,GBP). Leave blank for every available currency.
- Providers (`providers`, text): Comma-separated provider keys to source rates from (for example, ECB). Leave blank to use the default blended rates.
- Expand providers (`expand_providers`, true/false): Set to true to include, on each rate, the list of providers that contributed to the blended value. Default: `false`.

**Outputs**

- `rates` (list)

**Example output**

```json
{
  "rates": [
    {
      "base": "EUR",
      "date": "1999-01-04",
      "quote": "USD",
      "rate": 1.1789
    },
    {
      "base": "EUR",
      "date": "1999-01-04",
      "quote": "GBP",
      "rate": 0.7111
    }
  ]
}
```

### Get latest rates

Fetch the most recent exchange rates. Optionally change the base currency, filter the target currencies, or scope to specific providers.

**Inputs**

- Base (`base`, text): Base currency as a 3-letter ISO code (for example, EUR). Defaults to USD when omitted. Default: `USD`.
- Quotes (`quotes`, text): Comma-separated target currencies to return (for example, USD,GBP). Leave blank for every available currency.
- Providers (`providers`, text): Comma-separated provider keys to source rates from (for example, ECB). Leave blank to use the default blended rates.
- Expand providers (`expand_providers`, true/false): Set to true to include, on each rate, the list of providers that contributed to the blended value. Default: `false`.

**Outputs**

- `rates` (list)

**Example output**

```json
{
  "rates": [
    {
      "base": "EUR",
      "date": "2026-07-24",
      "quote": "GBP",
      "rate": 0.85445
    },
    {
      "base": "EUR",
      "date": "2026-07-24",
      "quote": "USD",
      "rate": 1.1403
    }
  ]
}
```

### Get provider

Get one central bank or official source by its key: its name, country, rate type, pivot currency, publishing cadence, the dates it covers, and every currency it publishes.

**Inputs**

- Provider key (`key`, text, required): The provider's key as listed by List providers (for example, ECB for the European Central Bank or UST for the U.S. Treasury).

**Outputs**

- `provider` (object)

**Example output**

```json
{
  "provider": {
    "country_code": "EU",
    "currencies": [
      "AUD",
      "CAD",
      "CHF",
      "EUR",
      "GBP",
      "JPY",
      "USD"
    ],
    "data_url": "https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html",
    "end_date": "2026-10-08",
    "frequency": "daily",
    "key": "ECB",
    "name": "European Central Bank",
    "pivot_currency": "EUR",
    "publish_cadence": "daily",
    "rate_type": "reference rate",
    "start_date": "1999-01-04"
  }
}
```

### Get provider rates

Fetch the rates one provider published, unblended: the latest by default, a single past day with a date, or a series with a start date (and optional end date and weekly or monthly grouping). Use this for compliance or accounting work that must cite a specific central bank's reference rate.

**Inputs**

- Provider key (`key`, text, required): The provider's key as listed by List providers (for example, ECB for the European Central Bank or UST for the U.S. Treasury).
- Date (`date`, date): A single day to look up, in YYYY-MM-DD format. Leave blank, along with the start date, for the latest rates. Cannot be combined with a start or end date.
- Start date (`from_date`, date): The first date of a range, in YYYY-MM-DD format. Set this instead of a single date to get a time series.
- End date (`to_date`, date): The last date of the range, in YYYY-MM-DD format. Leave blank to run through the latest available date.
- Base (`base`, text): Base currency as a 3-letter ISO code (for example, EUR). Defaults to USD when omitted. Default: `USD`.
- Quotes (`quotes`, text): Comma-separated target currencies to return (for example, USD,GBP). Leave blank for every available currency.
- Group (`group`, text): Downsample a range to one row per week or per month. One of: `week`, `month`.
- Expand providers (`expand_providers`, true/false): Set to true to include, on each rate, the list of providers that contributed to the blended value. Default: `false`.

**Outputs**

- `rates` (list)

**Example output**

```json
{
  "rates": [
    {
      "base": "EUR",
      "date": "2026-10-08",
      "quote": "GBP",
      "rate": 0.84698
    },
    {
      "base": "EUR",
      "date": "2026-10-08",
      "quote": "USD",
      "rate": 1.1186
    }
  ]
}
```

### Get provider single rate

Get one provider's published rate for a single currency pair, optionally as of a past date.

**Inputs**

- Provider key (`key`, text, required): The provider's key as listed by List providers (for example, ECB for the European Central Bank or UST for the U.S. Treasury).
- From currency (`base`, text, required): Base currency as a 3-letter ISO code (for example, EUR).
- To currency (`quote`, text, required): Quote currency as a 3-letter ISO code (for example, USD).
- Date (`date`, date): Optional date to price the pair as of, in YYYY-MM-DD format. Defaults to the provider's latest rate.

**Outputs**

- `rate` (object)

**Example output**

```json
{
  "rate": {
    "base": "EUR",
    "date": "2026-09-01",
    "quote": "USD",
    "rate": 1.159
  }
}
```

### Get single rate

Get the exchange rate for a single currency pair, optionally as of a past date.

**Inputs**

- From currency (`base`, text, required): Base currency as a 3-letter ISO code (for example, EUR).
- To currency (`quote`, text, required): Quote currency as a 3-letter ISO code (for example, USD).
- Date (`date`, date): Optional date to price the pair as of, in YYYY-MM-DD format. Defaults to the latest rate.
- Providers (`providers`, text): Comma-separated provider keys to source the rate from (for example, ECB). Leave blank for the default blended rate.

**Outputs**

- `rate` (object)

**Example output**

```json
{
  "rate": {
    "base": "EUR",
    "date": "2026-07-24",
    "quote": "USD",
    "rate": 1.1403
  }
}
```

### Get time series

Fetch exchange rates across a date range. Optionally downsample to weekly or monthly buckets to keep large ranges compact.

**Inputs**

- Start date (`from_date`, date, required): The first date of the range, in YYYY-MM-DD format.
- End date (`to_date`, date): The last date of the range, in YYYY-MM-DD format. Leave blank to run through the latest available date.
- Base (`base`, text): Base currency as a 3-letter ISO code (for example, EUR). Defaults to USD when omitted. Default: `USD`.
- Quotes (`quotes`, text): Comma-separated target currencies to return (for example, USD,GBP). Leave blank for every available currency.
- Group (`group`, text): Downsample the series to one row per week or per month. One of: `week`, `month`.
- Providers (`providers`, text): Comma-separated provider keys to source rates from (for example, ECB). Leave blank to use the default blended rates.
- Expand providers (`expand_providers`, true/false): Set to true to include, on each rate, the list of providers that contributed to the blended value. Default: `false`.

**Outputs**

- `rates` (list)

**Example output**

```json
{
  "rates": [
    {
      "base": "EUR",
      "date": "2026-01-01",
      "quote": "USD",
      "rate": 1.175
    },
    {
      "base": "EUR",
      "date": "2026-01-02",
      "quote": "USD",
      "rate": 1.1741
    }
  ]
}
```

### List currencies

List the available currencies with their ISO codes, names, and symbols. Optionally include legacy currencies.

**Inputs**

- Scope (`scope`, text): Whether to return only active currencies (default) or to also include legacy ones. One of: `default` (Active currencies), `all` (Include legacy currencies).
- Providers (`providers`, text): Comma-separated provider keys (for example, ECB). When set, only currencies those providers publish are returned.

**Outputs**

- `currencies` (list)

**Example output**

```json
{
  "currencies": [
    {
      "iso_code": "EUR",
      "iso_numeric": "978",
      "name": "Euro",
      "start_date": "1999-01-04",
      "symbol": "\u20ac"
    },
    {
      "iso_code": "USD",
      "iso_numeric": "840",
      "name": "United States Dollar",
      "start_date": "1999-01-04",
      "symbol": "$"
    }
  ]
}
```

### List providers

List the central-bank data sources behind the API, with their keys, names, and rate types.

**Inputs**: None.

**Outputs**

- `providers` (list)

**Example output**

```json
{
  "providers": [
    {
      "country_code": "EU",
      "key": "ECB",
      "name": "European Central Bank",
      "pivot_currency": "EUR",
      "rate_type": "reference rate"
    },
    {
      "country_code": "MX",
      "key": "BANXICO",
      "name": "Banco de M\u00e9xico",
      "pivot_currency": "MXN",
      "rate_type": "FIX"
    }
  ]
}
```
