apyhub
Back

ECB Currency Converter API

What it does

ECB Currency Converter API turns an amount in one currency into another, using the same European Central Bank (ECB) reference rates and fixed-parity data as the rest of this API. It converts between any of the currencies this API tracks, using either the latest published rate or a specific past day's rate.

You send the currency you're converting from, the currency you're converting to, and an amount (1 if you leave it out). The response gives back the converted amount, the rate that was used, and the date that rate was published. If you ask for a specific past day and that day had no publication (a weekend or TARGET holiday), the conversion automatically falls back to the last published day before it and tells you the date you originally asked for. The response also tells you if either currency involved is pegged, meaning its rate comes from a fixed official parity instead of an ECB rate, along with a source note and a usage notice. You can also look up the full list of tracked currencies to check which ones are currently active, retired, or pegged before converting between them.

ECB Currency Converter API is a good fit for checkout flows, invoicing, expense tools, and any application that needs to show a price or amount in a different currency without building its own FX logic.

▣ ENDPOINT 01 / 02
GET
List currencies
https://api.eu.apyhub.com/callable-labs/ecb-currency-converter/v1/currencies

QUICKSTART

GUIDE

Quickstart

Fetch the latest list of currencies supported by the API.

curl -X GET "https://api.eu.apyhub.com/callable-labs/ecb-currency-converter/v1/currencies" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with count as an integer, latest as a date string, and currencies as an array of currency objects.

Each currency object includes code, name, kind, first_date, last_date, and current, with optional parity when applicable.

{
  "count": 66,
  "latest": "2026-10-06",
  "currencies": [
    {
      "code": "AED",
      "name": "UAE dirham",
      "kind": "peg",
      "first_date": "1999-01-04",
      "last_date": "2026-10-06",
      "current": true,
      "parity": "3.6725 per USD (fixed)"
    }
  ]
}
TRY ITLIVE · 3 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the list of currencies available from the currency conversion service, along with publication metadata and per-currency details.

Response

Returns a JSON object with count as an integer, latest as a date string, and currencies as an array of currency objects. Each currency object includes the currency code, name, kind, parity, current flag, first available date, and last available date.

ParameterTypeDescription
countIntegerTotal number of currencies in the list.
latestStringLatest publication date in date format. Latest publication.
currenciesObject ArrayArray of currency records. Each item includes: code, name, kind, parity, current, first_date, last_date.
currencies[].codeStringCurrency code.
currencies[].kindStringCurrency kind. Allowed values: ecb (ECB reference rate), peg (fixed parity), euro.
currencies[].nameStringCurrency name.
currencies[].parityStringOfficial parity for pegged currencies.
currencies[].currentBooleantrue when the currency has a rate on the latest publication, otherwise false.
currencies[].last_dateStringLast day with a rate in date format. A retired currency stops here.
currencies[].first_dateStringFirst day with a rate in date format.
▣ ENDPOINT 02 / 02
GET
Convert currency
https://api.eu.apyhub.com/callable-labs/ecb-currency-converter/v1/convert

QUICKSTART

GUIDE

Quickstart

Convert 100 USD to EUR using the current exchange rate.

curl -X GET "https://api.eu.apyhub.com/callable-labs/ecb-currency-converter/v1/convert?from=USD&to=EUR&amount=100" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with source, notice, pegged, from, to, amount, rate, result, and date fields, and may also include requested_date. source and notice are strings, pegged is an array of currency codes, rate and result are numbers, and the remaining fields describe the conversion details.

{
  "source": "European Central Bank euro foreign exchange reference rates; fixed-parity currencies derived from their official pegs",
  "notice": "Reference rates for information, published around 16:00 CET on TARGET business days; not for trading.",
  "pegged": [],
  "from": "USD",
  "to": "EUR",
  "amount": 100,
  "rate": 0.88738131,
  "result": 88.738131,
  "date": "2026-10-06",
  "requested_date": null
}
TRY ITLIVE · 3 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
ISO 4217 code
ISO 4217 code
Use that day's rates; default latest
Amount in `from`

About this endpoint

What it does

Converts an amount from one currency to another using the query parameters from, to, amount, and optionally date. The response returns the conversion metadata and calculated result in a JSON object.

Query Parameter(s)

AttributeTypeMandatoryDescription
toStringYesISO 4217 code; 3 characters long.
dateStringNoUse that day's rates; default latest. Format: date.
fromStringYesISO 4217 code; 3 characters long.
amountNumberNoAmount in from; default: 1. Must be greater than 0 and no more than 1000000000000000.

Response

Returns a JSON object with the converted amount, the exchange rate applied, the rate date, source details, and any pegged currencies.

ParameterTypeDescription
sourceStringSource of the conversion data.
noticeStringNotice about the reference rates.
peggedString ArrayCurrencies in this answer derived from a fixed official parity rather than an ECB rate.
fromStringSource currency code.
toStringTarget currency code.
amountNumberAmount converted.
rateNumberConversion rate used.
resultNumberamount × rate, rounded to 6 decimal places.
dateStringRate date in date format.
requested_dateStringRequested date, or null when no date was supplied.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.