Documentation Blog Free tools [email protected]Log in

Exchange rate API

An exchange rate API that reads the European Central Bank's published reference rates through Frankfurter and returns one row per target currency: the rate from your base and the reference date. Choose the base currency, optionally the set of targets you care about, and pass a date to read a historical day instead of the latest — no key required.

$0.0002 per delivered rate · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/exchange_rates/run
$ curl $QD/exchange_rates/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"base": "USD", "max_results": 40}'
{ "status": "done", "count": 40,
  "results": [
    {
      "currency": "…",
      "rate": …,
      "base": "…",
      "date": "…" } ],
  "cost": 0.008 }
# 40 rates × $0.0002 · nothing delivered, nothing charged
$0.0002 / rate10,000 rates on the free $2 every month
Semantic inputbase, symbols, date — no URL lists
Up to 50rates per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

What an exchange rate API does

The ECB publishes one authoritative set of reference rates each working day, and this returns them row by row rather than as a single object keyed by currency code. A base and a list of symbols go in, a table of currency-and-rate comes out, which is the shape a conversion or a valuation column actually joins against.

The same call reaches back in time: pass a date and you get that day's reference rates, the basis for back-testing a conversion or valuing a historical position. Because this is ECB reference data it is a daily fixing rather than a live market tick — accurate for accounting and modelling, not for trading a spread.

What one rate looks like

Every delivered rate carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position.
currencystringTarget currency code.
ratenumberRate from base to this currency.
basestring · nullableBase currency.
datestring · nullableReference date.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
basestringnoBase currency (3-letter, default USD).
symbolsarraynoCurrencies to convert to (empty = all available).
datestringnoHistorical date YYYY-MM-DD (omit for latest).
max_resultsintegernoHow many currencies to deliver at most (1–50). You pay only for delivered currencies.

Pricing

Exchange rate API pricing

$0.0002 per delivered rate. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 10,000 rates before you spend anything.

$0.0002per delivered rate$0.2 per 1,000 delivered rates
10,000 rateson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/exchange_rates/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/exchange_rates/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"base":"USD","max_results":40}'

What people build with the exchange rate API

Three shapes of work this endpoint was designed around.

Multi-currency billing

Pull the day's rates from your base currency and convert invoices or balances with one row per target, refreshed on whatever schedule your books need.

Historical valuation

Pass a date and value a past transaction at that day's ECB reference rate, so a restated figure uses the fixing that actually applied then.

Normalising to one currency

Join the currency rows onto a table of mixed-currency amounts to express them all in a single base for comparison.

Exchange rate API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
ShapeOne object keyed by currency codeOne row per currency, ready to join
Without a keySign up and manage a tokenKeyless, straight over ECB reference data
Historical dayA separate endpoint and formatThe same call with a date passed in

FAQ

Questions we get about the exchange rate API.

Something else? Ask us →

Is this exchange rate API free and keyless?

Yes. It reads Frankfurter, a keyless service over the ECB's published reference rates, so you get currency rows back without a key or a per-call token to manage.

Can I get historical exchange rates?

Yes — pass date as YYYY-MM-DD and the rows carry that day's ECB reference rates rather than the latest, which is what a back-test or a restated figure needs.

Are these live market rates?

No. They are the ECB's daily reference rates — one authoritative fixing per working day — so they are right for billing, accounting and modelling, not for trading against a live bid-ask spread.

Is there a free exchange rate API?

Every account gets $2 of credit every month with no card, which is about 10,000 delivered rates on this endpoint at $0.0002 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.0002. A run capped at 50 rates — the maximum for this collector — costs $0.01 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the exchange rate API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key
Get my free API key