ECB currency exchange rates and conversion API

ECB euro foreign exchange reference rates for about 30 currencies, latest or any date since 1999-01-04: base, rate date, rates for the requested currencies, optional converted amounts, and the unmodified ECB euro rates. Rates for non-EUR bases are cross rates calculated by Kit Rx from the ECB euro rates. Daily rates published for information, not transaction quotes. Source: ECB statistics, via the Frankfurter API; the ECB publishes these rates free of charge on its website.

$0.002 per call  USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.

Endpoint

GET https://api.kit-rx.com/v1/fx/rates

Parameters

NameTypeRequiredDescription
basestringnoISO 4217 code of the base currency; must be one the ECB quotes (about 30 current, e.g. USD, EUR, GBP, JPY, CHF, CNY, INR). Default USD. e.g. USD
symbolsstringnoComma-separated ISO 4217 codes to return (up to 50). Omit for every currency the ECB quoted on that date. e.g. EUR,GBP,JPY
amountstringnoAmount in the base currency to convert into each symbol: a positive number up to 1e12 with an optional decimal point. e.g. 100
datestringnoHistorical rate date, YYYY-MM-DD, 1999-01-04 or later. Weekends and TARGET holidays return the latest earlier ECB rates. Omit for the latest rates. e.g. 2024-01-15

Example request

https://api.kit-rx.com/v1/fx/rates?base=USD&symbols=EUR%2CGBP%2CJPY&amount=100

Without payment the server answers 402 Payment Required with the price (2000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.

curl -i "https://api.kit-rx.com/v1/fx/rates?base=USD&symbols=EUR%2CGBP%2CJPY&amount=100"

Pay from an agent

AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://api.kit-rx.com/mcp. Code:

import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://api.kit-rx.com/v1/fx/rates?base=USD&symbols=EUR%2CGBP%2CJPY&amount=100");
console.log(await res.json());

Example response

{
  "query": {
    "base": "USD",
    "symbols": [
      "EUR",
      "GBP",
      "JPY"
    ],
    "amount": 100
  },
  "result": {
    "base": "USD",
    "date": "2026-11-13",
    "amount": 100,
    "rates": {
      "EUR": 0.904814,
      "GBP": 0.756053,
      "JPY": 159.998
    },
    "converted": {
      "EUR": 90.48,
      "GBP": 75.61,
      "JPY": 15999.82
    },
    "rate_type": "cross rate calculated by Kit Rx from ECB euro reference rates",
    "ecb_reference_rates": {
      "base": "EUR",
      "date": "2026-11-13",
      "rates": {
        "GBP": 0.83559,
        "JPY": 176.83,
        "USD": 1.1052
      }
    },
    "provider": {
      "name": "Frankfurter",
      "url": "https://frankfurter.dev/",
      "dataset": "ECB"
    },
    "source": {
      "name": "European Central Bank euro foreign exchange reference rates",
      "statement": "Source: ECB statistics.",
      "url": "https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html",
      "free_of_charge": "The ECB publishes these reference rates free of charge at the url above.",
      "terms_url": "https://www.ecb.europa.eu/stats/ecb_statistics/governance_and_quality_framework/html/usage_policy.en.html"
    }
  },
  "sources": [
    {
      "name": "European Central Bank euro foreign exchange reference rates",
      "url": "https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html"
    },
    {
      "name": "Frankfurter API (ECB provider endpoint)",
      "url": "https://frankfurter.dev/"
    }
  ],
  "notes": [
    "ECB euro foreign exchange reference rates are published for information purposes only; the ECB strongly discourages using them for transaction purposes. They come from a daily concertation procedure between central banks (normally around 14:10 CET) and are published around 16:00 CET on working days except TARGET closing days; they are not live market quotes.",
    "Rates are units of each currency per 1 USD.",
    "Cross rates against USD and converted amounts are calculated by Kit Rx from the ECB euro rates (rate = EUR rate of the currency / EUR rate of USD, 6 significant digits; amounts to 2 decimals, or 6 significant digits below 1); ecb_reference_rates holds the ECB figures unmodified."
  ],
  "generated_at": "2026-11-15T00:24:43.062Z"
}

Kit Rx: Pay-per-call data and safety tools for AI agents, paid in USDC over x402. No signup, no API key. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.