Guide/Rates concepts
Guide

Indicative vs executable FX rates: what a rates API actually gives you

Every FX rate you read from an API is one of two things: a reference price for analysis and display, or a dealer quote you can trade on. These are not interchangeable. Knowing the difference determines whether you are building the right thing.

MMexchangerate.dev·Jun 19, 2026·6 min read

exchangerate.dev publishes indicative rates: mid-market reference prices sourced from the ECB, the Federal Reserve, and aggregated spot data. They are suitable for reporting, dashboards, invoicing, analytics, and currency display. They are not executable quotes and every response from the API says so explicitly in the notice field.

Key points
An indicative rate is a reference or mid-market price published for analytics, display, and accounting. It carries no commitment to trade.
An executable rate is a dealer quote with a bid/ask spread. You can act on it to buy or sell currency.
exchangerate.dev publishes indicative rates. Every response includes a notice field that states this.
The source field tells you which class of indicative data you are reading: live, ecb_daily, or fred_daily.
Use indicative rates for reporting, charts, invoice conversion, and monitoring. Use a bank or PSP when you need to settle a payment or execute a trade.

Two kinds of rate

FX rates serve two distinct purposes. A reference rate is a published mid-market price. Central banks, statistical agencies, and data providers publish them so developers, accountants, and analysts have a consistent number to work with. An executable rate is a price a dealer or payment processor is prepared to honour for a specific transaction. It comes with a bid and an ask, and the spread between them is how the dealer earns their margin.

Reference rates and executable rates will rarely match exactly, and they are not meant to. The reference rate reflects where the market is, in aggregate, at a point in time. The executable rate reflects what a specific counterparty will accept right now, for a specific amount, in a specific direction.

What indicative means

Indicative is the technical term for a rate published without a commitment to trade. The provider is saying: this is what the market looks like. They are not saying: we will let you buy at this price.

exchangerate.dev publishes indicative rates. The source field in every response identifies which class of indicative data you are reading. ecb_daily is the European Central Bank's published reference fix, released once per business day around 16:00 CET. fred_daily is the Federal Reserve's daily series. live is an aggregated spot consensus that updates continuously, including on weekends. All three are indicative.

The notice field
Every response from the API carries a notice field. For live data it reads: "Indicative rates, not for settlement." For reference sources it reads: "Indicative rates, not for settlement. Source: incl. ECB statistics." This is not boilerplate; it is the accurate description of what the data is.

Reading the notice field in a response

Call /v1/latest/USD and you will see the notice alongside the rate data:

bash · GET /v1/latest/USDcopy
$ curl -s https://api.exchangerate.dev/v1/latest/USD \
    -H "Authorization: Bearer exr_live_..."

{
  "result": "success",
  "base": "USD",
  "source": "ecb_daily",
  "market_session": "open",
  "timestamp": "2026-06-19T14:03:00Z",
  "data_updated_at": "2026-06-19T14:00:00Z",
  "rates": {
    "EUR": 0.87531,
    "GBP": 0.75945,
    "JPY": 161.412
  },
  "notice": "Indicative rates, not for settlement. Source: incl. ECB statistics."
}

The notice field is machine-readable. If you are displaying rates to end users, passing it through to your UI is good practice. It accurately frames what they are seeing.

Indicative vs executable: a direct comparison

DimensionIndicative (this API)Executable (dealer / PSP)
What it isReference mid-market priceBid/ask quote you can transact on
Published byECB, Federal Reserve, spot consensusBank, broker, payment processor
SpreadNone; mid-market onlyBid/ask spread reflects the dealer's cost
UpdatedECB: once per business day; live: continuousContinuous, varies by provider
WeekendsLive source continues; ECB/FRED frozenVaries by provider and currency
Suitable forReporting, display, analytics, accountingSettling payments, hedging, trading
Notice field"Indicative rates, not for settlement."Binding quote with expiry

Classes of indicative data: live vs ecb_daily vs fred_daily

The source field distinguishes three classes of indicative data. They are all reference prices, but they have different update rhythms and different authorities behind them.

  • live: aggregated spot consensus, updated continuously. Moves through the trading week and on weekends. Good for dashboards that need to reflect current market conditions.
  • ecb_daily: the European Central Bank's official reference rate, published once per business day around 16:00 CET. Carries institutional authority and is the standard for many EU accounting and legal contexts.
  • fred_daily: the US Federal Reserve's daily foreign exchange series. Published on business days. Appropriate for US-centric reporting that references Fed data.

A single API call may return any of these depending on the currency pair and the time of day. Check source before deciding how to present the rate to users. The data_updated_at field tells you when the underlying rate was last written; timestamp tells you when the response was built.

Where indicative rates belong

Indicative rates are well-suited for a wide range of applications:

  • Converting prices in an e-commerce product catalogue for display purposes
  • Showing users the approximate value of a transaction before they confirm it with a payment processor
  • Generating financial reports and dashboards that track currency exposure over time
  • Accounting entries where the rate is recorded for bookkeeping at the time of a transaction
  • Monitoring alerts that trigger when a rate crosses a threshold
  • Analytics and charts built over historical rate series back to 1999

Indicative rates answer the question "what is the rate?" Executable rates answer the question "what will you give me right now if I transact?"

When you need a dealer or PSP instead

Some use cases require an executable rate. If you are building a feature where money actually changes hands, the rate used to calculate the amount must come from the party executing the transaction. Using an indicative rate in these contexts would misrepresent the actual cost to the user.

Specifically: when a payment processor or bank converts currency on a customer's behalf, the rate they apply is their own executable quote, not the mid-market reference. When a business hedges FX exposure through a forward contract, the rate agreed is an executable rate with a counterparty. When a trader executes a spot transaction, the dealing price is the rate, not any external reference.

In these cases you may still use indicative rates alongside the executable rate, for example to show users the mid-market context or to record a benchmark rate for reporting. The boundary is whether the indicative rate is being used to calculate an amount that a real party will receive or pay.

A common pattern
Many applications use both: indicative rates (from this API) for display and analytics, and their payment processor's rate for the actual transaction. The two numbers will differ; that gap is normal and expected.
MM
exchangerate.dev
Rates concepts and practical guides for developers building with FX data.

Keep reading

ReferenceReading source and market_sessionRead BlogWhat ECB-based FX APIs miss on weekendsRead GuideECB reference rates, explainedRead