LearnGuide

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

The mid-market rate is the midpoint between a currency pair's buy and sell prices. A bank rate adds a markup, making it worse than the mid-market rate Google shows. Central bank reference rates are published daily and are not tradable. These are indicative rates for analysis and display; an executable rate is a dealer quote you can trade on.

6 Aug 2026 · 6 min read

exchangerate.dev publishes indicative rates: mid-market reference prices sourced from the ECB and live market 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.

  • 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.
  • source is live, ecb_daily, or market_daily (stored daily market-feed close for currencies without an ECB fix).
  • 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. live is an indicative spot rate that updates approximately every 60 seconds through the trading week. Both 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/USD
$ 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, live market dataBank, broker, payment processor
SpreadNone; mid-market onlyBid/ask spread reflects the dealer's cost
UpdatedECB: once per business day; live: ~60s on trading daysContinuous, varies by provider
Between fixesLive source updates intraday through the trading week; ECB frozen until next business-day fixContinuous, varies by provider
Suitable forReporting, display, analytics, accountingSettling payments, hedging, trading
Notice field"Indicative rates, not for settlement."Binding quote with expiry

Public source values

The API has three source values; market_daily is for date history and daily time series. They are all indicative, but they have different update rhythms and authorities behind them.

  • live: indicative spot rate, updated approximately every 60 seconds through the trading week. Good for dashboards that need to reflect current market conditions rather than a prior-day fix.
  • 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.
  • market_daily: stored daily market-feed close for currencies without an ECB fix.

The source depends on the route, currency pair, and available observations. Check source before deciding how to present a rate. data_updated_at tells you when the observation was 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.

Questions

What does "indicative rate" mean?

An indicative rate is a reference price published without a commitment to trade. It reflects where the market is at a point in time but carries no obligation from any party to buy or sell at that price. exchangerate.dev publishes indicative rates sourced from the ECB and live market data.

Can I use exchangerate.dev rates to settle a payment or execute a trade?

No. The rates are indicative and are not suitable for settlement. Every API response says so in its notice field. For settling payments or executing trades you need an executable quote from a bank, broker, or payment processor, who will provide their own bid/ask rate for the specific transaction.

What is the difference between the live and ecb_daily sources?

Both are indicative mid-market rates, but they come from different authorities and update at different frequencies. `ecb_daily` is the European Central Bank's official reference fix, published once per business day around 16:00 CET. `live` is an indicative spot rate that updates approximately every 60 seconds through the trading week. The source field in every response tells you which you are reading.

Why does the notice field appear in every response?

The notice field accurately describes what the data is: an indicative reference rate, not a dealing quote. Including it in every response means any application that passes the response through to end users can surface that framing without additional logic. It is also useful as a machine-readable signal for compliance or logging purposes.

Keep reading

Start with a free API key

5,000 requests a month on the free plan. No credit card.

Get a free key