Guide · 6 Verified sources
Compare central bank exchange rates every business day
Monitor exchange rates published by the ECB, Danmarks Nationalbank, the Riksbank, the Czech National Bank, the National Bank of Ukraine and the U.S. Treasury, with an alert for each new day's rates and each correction.
Start with Euro foreign exchange reference rates, last 90 daysREST API, CLI and MCP
The problem
Central banks publish their own exchange rates, and the tables are not interchangeable. Each quotes rates against its own currency, in its own unit, at its own time of day. The ECB gives units of each currency per 1 euro; Danmarks Nationalbank gives Danish kroner per 100 units of foreign currency; the Riksbank gives kronor per unit or per 100 units, as each series defines; the Czech National Bank gives koruna per a stated amount of 1, 100 or 1,000 units; the National Bank of Ukraine gives hryvnias per one unit; and the U.S. Treasury gives euros per U.S. dollar.
Publication times differ too. The ECB publishes around 16:00 CET each TARGET business day, from a concertation procedure between central banks normally held at 14:10 CET. The Riksbank publishes at 16:15 on each Swedish banking day, and since 27 November 2023 its rates are the ECB's reference rates converted to kronor. The Czech National Bank declares its fixing at around 2.30 p.m. each working day, valid also for any following weekend or public holiday. After 3:30 p.m. Kyiv time, the National Bank of Ukraine's service returns the rates set for the next business day. The Treasury's reporting rates are quarterly, amended during the quarter when a rate moves by 10% or more.
This guide sets up one monitor per publisher from Verified recipes that read each publisher's own file or keyless API, so every rate arrives with the exact response it was read from.
What the source contains
Euro foreign exchange reference rates, last 90 days · European Central Bank
The European Central Bank's daily euro reference rates against about 30 currencies for the last 90 days, one record per business day with each currency's rate in units per euro.
30 typed fields · 64 records in SourceFinch's latest run on October 12, 2026 · publisher updates: each TARGET business day, around 16:00 CET · full source page
| Field | Type | Description | Sample value |
|---|---|---|---|
datekey | date | Reference date the rates were set (YYYY-MM-DD), one record per TARGET business day. The record key. | 2026-10-12 |
usd | number, nullable | Euro reference rate for the U.S. dollar: units of USD per 1 euro. | 1.1181 |
jpy | number, nullable | Euro reference rate for the Japanese yen: units of JPY per 1 euro. | 177.33 |
czk | number, nullable | Euro reference rate for the Czech koruna: units of CZK per 1 euro. | 24.391 |
dkk | number, nullable | Euro reference rate for the Danish krone: units of DKK per 1 euro. | 7.4748 |
gbp | number, nullable | Euro reference rate for the pound sterling: units of GBP per 1 euro. | 0.84478 |
huf | number, nullable | Euro reference rate for the Hungarian forint: units of HUF per 1 euro. | 365.13 |
pln | number, nullable | Euro reference rate for the Polish zloty: units of PLN per 1 euro. | 4.385 |
ron | number, nullable | Euro reference rate for the Romanian leu: units of RON per 1 euro. | 5.337 |
sek | number, nullable | Euro reference rate for the Swedish krona: units of SEK per 1 euro. | 11.1965 |
chf | number, nullable | Euro reference rate for the Swiss franc: units of CHF per 1 euro. | 0.9312 |
isk | number, nullable | Euro reference rate for the Icelandic krona: units of ISK per 1 euro. | 136.4 |
nok | number, nullable | Euro reference rate for the Norwegian krone: units of NOK per 1 euro. | 10.6955 |
try | number, nullable | Euro reference rate for the Turkish lira: units of TRY per 1 euro. | 55.1635 |
aud | number, nullable | Euro reference rate for the Australian dollar: units of AUD per 1 euro. | 1.6032 |
brl | number, nullable | Euro reference rate for the Brazilian real: units of BRL per 1 euro. | 5.5819 |
cad | number, nullable | Euro reference rate for the Canadian dollar: units of CAD per 1 euro. | 1.5946 |
cny | number, nullable | Euro reference rate for the Chinese yuan renminbi: units of CNY per 1 euro. | 7.4832 |
hkd | number, nullable | Euro reference rate for the Hong Kong dollar: units of HKD per 1 euro. | 8.7743 |
idr | number, nullable | Euro reference rate for the Indonesian rupiah: units of IDR per 1 euro. | 20036.18 |
ils | number, nullable | Euro reference rate for the Israeli shekel: units of ILS per 1 euro. | 3.432 |
inr | number, nullable | Euro reference rate for the Indian rupee: units of INR per 1 euro. | 107.086 |
krw | number, nullable | Euro reference rate for the South Korean won: units of KRW per 1 euro. | 1490.53 |
mxn | number, nullable | Euro reference rate for the Mexican peso: units of MXN per 1 euro. | 20.5081 |
myr | number, nullable | Euro reference rate for the Malaysian ringgit: units of MYR per 1 euro. | 4.5663 |
nzd | number, nullable | Euro reference rate for the New Zealand dollar: units of NZD per 1 euro. | 1.9968 |
php | number, nullable | Euro reference rate for the Philippine peso: units of PHP per 1 euro. | 70.169 |
sgd | number, nullable | Euro reference rate for the Singapore dollar: units of SGD per 1 euro. | 1.4314 |
thb | number, nullable | Euro reference rate for the Thai baht: units of THB per 1 euro. | 37.585 |
zar | number, nullable | Euro reference rate for the South African rand: units of ZAR per 1 euro. | 18.4945 |
Danish krone exchange rates, last five business days · Danmarks Nationalbank
Danmarks Nationalbank's daily exchange rates of the Danish krone against about 30 currencies and the SDR for the last five business days, in kroner per 100 units, one record per day.
31 typed fields · 5 records in SourceFinch's latest run on October 12, 2026 · publisher updates: each Danish banking day · full source page
Fields and a sample record
| Field | Type | Description | Sample value |
|---|---|---|---|
datekey | date | Business day the rates were fixed (YYYY-MM-DD), one record per day. The record key. | 2026-10-06 |
aud | number, nullable | Danish kroner per 100 units of the Australian dollar (AUD). | 463.12 |
brl | number, nullable | Danish kroner per 100 units of the Brazilian real (BRL). | 133.5 |
cad | number, nullable | Danish kroner per 100 units of the Canadian dollar (CAD). | 465.48 |
cny | number, nullable | Danish kroner per 100 units of the Chinese yuan renminbi (CNY). | 98.93 |
czk | number, nullable | Danish kroner per 100 units of the Czech koruna (CZK). | 30.63 |
eur | number, nullable | Danish kroner per 100 units of the euro (EUR). | 747.47 |
hkd | number, nullable | Danish kroner per 100 units of the Hong Kong dollar (HKD). | 84.52 |
huf | number, nullable | Danish kroner per 100 units of the Hungarian forint (HUF). | 2.048 |
isk | number, nullable | Danish kroner per 100 units of the Icelandic krona (ISK). | 5.448 |
inr | number, nullable | Danish kroner per 100 units of the Indian rupee (INR). | 6.88 |
idr | number, nullable | Danish kroner per 100 units of the Indonesian rupiah (IDR). | 0.0372 |
ils | number, nullable | Danish kroner per 100 units of the Israeli shekel (ILS). | 217.62 |
jpy | number, nullable | Danish kroner per 100 units of the Japanese yen (JPY). | 4.1957 |
myr | number, nullable | Danish kroner per 100 units of the Malaysian ringgit (MYR). | 162.37 |
mxn | number, nullable | Danish kroner per 100 units of the Mexican peso (MXN). | 36.96 |
nzd | number, nullable | Danish kroner per 100 units of the New Zealand dollar (NZD). | 372.6 |
nok | number, nullable | Danish kroner per 100 units of the Norwegian krone (NOK). | 69.35 |
php | number, nullable | Danish kroner per 100 units of the Philippine peso (PHP). | 10.57 |
pln | number, nullable | Danish kroner per 100 units of the Polish zloty (PLN). | 171.24 |
gbp | number, nullable | Danish kroner per 100 units of the pound sterling (GBP). | 880.62 |
ron | number, nullable | Danish kroner per 100 units of the Romanian leu (RON). | 139.69 |
xdr | number, nullable | Danish kroner per 100 units of the IMF special drawing right (SDR) (XDR). | 899.35 |
sgd | number, nullable | Danish kroner per 100 units of the Singapore dollar (SGD). | 519.36 |
zar | number, nullable | Danish kroner per 100 units of the South African rand (ZAR). | 40.22 |
krw | number, nullable | Danish kroner per 100 units of the South Korean won (KRW). | 0.4954 |
sek | number, nullable | Danish kroner per 100 units of the Swedish krona (SEK). | 66.49 |
chf | number, nullable | Danish kroner per 100 units of the Swiss franc (CHF). | 798.66 |
thb | number, nullable | Danish kroner per 100 units of the Thai baht (THB). | 19.76 |
try | number, nullable | Danish kroner per 100 units of the Turkish lira (TRY). | 13.49 |
usd | number, nullable | Danish kroner per 100 units of the U.S. dollar (USD). | 663.3 |
Swedish krona exchange rates, latest by currency · Sveriges Riksbank
Sveriges Riksbank's latest published exchange rate of the Swedish krona for each currency series, one record per series with its date and value in kronor per unit.
3 typed fields · 53 records in SourceFinch's latest run on October 12, 2026 · publisher updates: each Swedish banking day at 16:15 CET · full source page
Fields and a sample record
| Field | Type | Description | Sample value |
|---|---|---|---|
series_idkey | string | Riksbank series id, for example SEKUSDPMI (kronor per U.S. dollar) or SEKEURPMI (kronor per euro). The record key. | SEKATSPMI |
date | date, nullable | Date of the series' latest published observation (YYYY-MM-DD). | 2002-02-28 |
value | number | Exchange rate in Swedish kronor per unit (or per 100 units, as the series defines) of the foreign currency. | 0.66033 |
Czech koruna exchange rate fixing, daily · Czech National Bank
The Czech National Bank's daily exchange rates of the Czech koruna against about 30 commonly traded currencies, one record per currency with the date, amount and rate in koruna.
7 typed fields · 30 records in SourceFinch's latest run on October 12, 2026 · publisher updates: each working day at around 2.30 p.m. CET · full source page
Fields and a sample record
| Field | Type | Description | Sample value |
|---|---|---|---|
currency_codekey | string | ISO 4217 code of the foreign currency. The record key. | AUD |
valid_for | date, nullable | Date the declared rate is valid for (YYYY-MM-DD); it also applies to any following weekend or public holiday. | 2026-10-12 |
fixing_number | integer, nullable | The CNB's running number of the fixing within the year. | 196 |
country | string, nullable | Country or area of the currency, as the CNB names it (for example EMU for the euro). | Australia |
currency | string, nullable | Name of the currency in English. | dollar |
amount | integer, nullable | Number of currency units the rate refers to (1, 100 or 1,000). | 1 |
rate | number | Czech koruna per the stated amount of the foreign currency. | 15.212 |
Ukrainian hryvnia exchange rates set by the National Bank of Ukraine, daily · National Bank of Ukraine
The National Bank of Ukraine's daily hryvnia exchange rates against about 45 foreign currencies, one record per currency with the rate in hryvnias per unit and the date it applies to.
6 typed fields · 45 records in SourceFinch's latest run on October 12, 2026 · publisher updates: each business day; the next day's rates appear after 3:30 p.m. Kyiv time · full source page
Fields and a sample record
| Field | Type | Description | Sample value |
|---|---|---|---|
currency_codekey | string | ISO 4217 alphabetic code of the foreign currency. The record key. | DZD |
numeric_code | integer, nullable | ISO 4217 numeric code of the currency (r030). | 12 |
name_uk | string, nullable | Name of the currency in Ukrainian, as published. | Алжирський динар |
rate | number | Hryvnias per one unit of the foreign currency. | 0.33417 |
exchange_date | string, nullable | Date the rate applies to, as published (DD.MM.YYYY). | 13.10.2026 |
special | string, nullable | The NBU's flag for a rate calculated under special conditions (null when not flagged). | — |
U.S. Treasury reporting rate of exchange for the euro, quarterly · Bureau of the Fiscal Service (U.S. Department of the Treasury)
The U.S. Treasury's reporting rate of exchange for the euro (euros per U.S. dollar) for the last 40 quarters and mid-quarter amendments, one record per effective date.
6 typed fields · 40 records in SourceFinch's latest run on October 12, 2026 · publisher updates: quarterly, with amendments during the quarter · full source page
Fields and a sample record
| Field | Type | Description | Sample value |
|---|---|---|---|
effective_datekey | date | Date the rate takes effect (YYYY-MM-DD); a mid-quarter amendment has its own date. The record key. | 2026-09-30 |
record_date | date, nullable | Quarter-end date of the report the rate belongs to (YYYY-MM-DD). | 2026-09-30 |
exchange_rate | number | Treasury reporting rate: euros per U.S. dollar. | 0.881 |
country | string, nullable | Country or area as published (Euro Zone). | Euro Zone |
currency | string, nullable | Currency name as published (Euro). | Euro |
country_currency | string, nullable | Treasury's combined country and currency label (Euro Zone-Euro). | Euro Zone-Euro |
What a change means
- ECB and Danmarks Nationalbank: one record per business day. A new
dateis another day's rates; a changed currency field, such asusdoreur, on a date you already have is a correction of a published day. - Riksbank: one record per currency series. A new
dateandvalueon aseries_idis that currency's latest rate. Discontinued series, such as the pre-euro currencies, do not change. - Czech National Bank and National Bank of Ukraine: one record per
currency_code. A changedratewith a newvalid_fororexchange_dateis the next fixing. A non-nullspecialmarks an NBU rate calculated under special conditions. - Treasury: a new
effective_dateis a new quarter's rate or a mid-quarter amendment.exchange_rateis in euros per U.S. dollar, the inverse of the ECB'susdfield.
Set it up in the console
- Open the Verified recipe. Open the Euro foreign exchange reference rates, last 90 days recipe in the console. It keeps the reviewed URL, fields and record key (date), and shows the latest captured sample. Open in the console
- Create the monitor. Name the monitor, keep the daily schedule or pick another (the console shows the monthly run cost), confirm that you have the right to monitor the source, and choose Create monitor.
- Run the baseline. The first run is the baseline: every record is new. From the second run on, the monitor reports what was added, changed or removed, field by field, with the evidence behind each value.
- Choose how you hear about changes. In Alerts, choose immediate change emails or a daily or weekly digest; each monitor can override that on its own page. For your own systems, add a signed webhook in Destinations. Alerts and team
- Add the other publishers. Open the Danmarks Nationalbank, Riksbank, Czech National Bank, National Bank of Ukraine and Treasury recipes the same way. Each publisher is its own monitor, so you can keep only the base currencies you need.
The other recipes: Danish krone exchange rates, last five business days, Swedish krona exchange rates, latest by currency, Czech koruna exchange rate fixing, daily, Ukrainian hryvnia exchange rates set by the National Bank of Ukraine, daily, U.S. Treasury reporting rate of exchange for the euro, quarterly.
The same through the REST API, CLI or MCP
Every surface creates the same monitor from the same Verified recipe. You confirm you have the right to collect the source (rights: true).
Euro foreign exchange reference rates, last 90 days
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/ecb-euro-foreign-exchange-reference-rates -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get ecb-euro-foreign-exchange-reference-rates --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor Euro foreign exchange reference rates, last 90 days: get_catalog_source ecb-euro-foreign-exchange-reference-rates,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "Euro foreign exchange reference rates, last 90 days",
"url": "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml",
"recipe": {
"mode": "http",
"format": "xml",
"items": "Cube[time]",
"fields": {
"aud": "Cube[currency=\"AUD\"]@rate",
"brl": "Cube[currency=\"BRL\"]@rate",
"cad": "Cube[currency=\"CAD\"]@rate",
"chf": "Cube[currency=\"CHF\"]@rate",
"cny": "Cube[currency=\"CNY\"]@rate",
"czk": "Cube[currency=\"CZK\"]@rate",
"dkk": "Cube[currency=\"DKK\"]@rate",
"gbp": "Cube[currency=\"GBP\"]@rate",
"hkd": "Cube[currency=\"HKD\"]@rate",
"huf": "Cube[currency=\"HUF\"]@rate",
"idr": "Cube[currency=\"IDR\"]@rate",
"ils": "Cube[currency=\"ILS\"]@rate",
"inr": "Cube[currency=\"INR\"]@rate",
"isk": "Cube[currency=\"ISK\"]@rate",
"jpy": "Cube[currency=\"JPY\"]@rate",
"krw": "Cube[currency=\"KRW\"]@rate",
"mxn": "Cube[currency=\"MXN\"]@rate",
"myr": "Cube[currency=\"MYR\"]@rate",
"nok": "Cube[currency=\"NOK\"]@rate",
"nzd": "Cube[currency=\"NZD\"]@rate",
"php": "Cube[currency=\"PHP\"]@rate",
"pln": "Cube[currency=\"PLN\"]@rate",
"ron": "Cube[currency=\"RON\"]@rate",
"sek": "Cube[currency=\"SEK\"]@rate",
"sgd": "Cube[currency=\"SGD\"]@rate",
"thb": "Cube[currency=\"THB\"]@rate",
"try": "Cube[currency=\"TRY\"]@rate",
"usd": "Cube[currency=\"USD\"]@rate",
"zar": "Cube[currency=\"ZAR\"]@rate",
"date": "@time"
},
"required": [
"date"
],
"types": {
"aud": "number",
"brl": "number",
"cad": "number",
"chf": "number",
"cny": "number",
"czk": "number",
"dkk": "number",
"gbp": "number",
"hkd": "number",
"huf": "number",
"idr": "number",
"ils": "number",
"inr": "number",
"isk": "number",
"jpy": "number",
"krw": "number",
"mxn": "number",
"myr": "number",
"nok": "number",
"nzd": "number",
"php": "number",
"pln": "number",
"ron": "number",
"sek": "number",
"sgd": "number",
"thb": "number",
"try": "number",
"usd": "number",
"zar": "number",
"date": "date"
}
},
"key_field": "date",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "ecb-euro-foreign-exchange-reference-rates",
"version_id": "8aac4f83-4b68-4a87-898e-d3438c33b043"
}
}Danish krone exchange rates, last five business days
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/danmarks-nationalbank-krone-exchange-rates -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get danmarks-nationalbank-krone-exchange-rates --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor Danish krone exchange rates, last five business days: get_catalog_source danmarks-nationalbank-krone-exchange-rates,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "Danish krone exchange rates, last five business days",
"url": "https://www.nationalbanken.dk/api/currencyratesxmlhistory?lang=en",
"recipe": {
"mode": "http",
"format": "xml",
"items": "Cube[time]",
"fields": {
"aud": "Cube[currency=\"AUD\"]@rate",
"brl": "Cube[currency=\"BRL\"]@rate",
"cad": "Cube[currency=\"CAD\"]@rate",
"chf": "Cube[currency=\"CHF\"]@rate",
"cny": "Cube[currency=\"CNY\"]@rate",
"czk": "Cube[currency=\"CZK\"]@rate",
"eur": "Cube[currency=\"EUR\"]@rate",
"gbp": "Cube[currency=\"GBP\"]@rate",
"hkd": "Cube[currency=\"HKD\"]@rate",
"huf": "Cube[currency=\"HUF\"]@rate",
"idr": "Cube[currency=\"IDR\"]@rate",
"ils": "Cube[currency=\"ILS\"]@rate",
"inr": "Cube[currency=\"INR\"]@rate",
"isk": "Cube[currency=\"ISK\"]@rate",
"jpy": "Cube[currency=\"JPY\"]@rate",
"krw": "Cube[currency=\"KRW\"]@rate",
"mxn": "Cube[currency=\"MXN\"]@rate",
"myr": "Cube[currency=\"MYR\"]@rate",
"nok": "Cube[currency=\"NOK\"]@rate",
"nzd": "Cube[currency=\"NZD\"]@rate",
"php": "Cube[currency=\"PHP\"]@rate",
"pln": "Cube[currency=\"PLN\"]@rate",
"ron": "Cube[currency=\"RON\"]@rate",
"sek": "Cube[currency=\"SEK\"]@rate",
"sgd": "Cube[currency=\"SGD\"]@rate",
"thb": "Cube[currency=\"THB\"]@rate",
"try": "Cube[currency=\"TRY\"]@rate",
"usd": "Cube[currency=\"USD\"]@rate",
"xdr": "Cube[currency=\"XDR\"]@rate",
"zar": "Cube[currency=\"ZAR\"]@rate",
"date": "@time"
},
"required": [
"date"
],
"types": {
"aud": "number",
"brl": "number",
"cad": "number",
"chf": "number",
"cny": "number",
"czk": "number",
"eur": "number",
"gbp": "number",
"hkd": "number",
"huf": "number",
"idr": "number",
"ils": "number",
"inr": "number",
"isk": "number",
"jpy": "number",
"krw": "number",
"mxn": "number",
"myr": "number",
"nok": "number",
"nzd": "number",
"php": "number",
"pln": "number",
"ron": "number",
"sek": "number",
"sgd": "number",
"thb": "number",
"try": "number",
"usd": "number",
"xdr": "number",
"zar": "number",
"date": "date"
}
},
"key_field": "date",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "danmarks-nationalbank-krone-exchange-rates",
"version_id": "0f09d4f9-f61b-4e65-b58e-a120ae1c734d"
}
}Swedish krona exchange rates, latest by currency
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/riksbank-krona-exchange-rates -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get riksbank-krona-exchange-rates --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor Swedish krona exchange rates, latest by currency: get_catalog_source riksbank-krona-exchange-rates,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "Swedish krona exchange rates, latest by currency",
"url": "https://api.riksbank.se/swea/v1/Observations/Latest/ByGroup/130",
"recipe": {
"mode": "http",
"format": "json",
"items": "[*]",
"fields": {
"date": "date",
"value": "value",
"series_id": "seriesId"
},
"required": [
"series_id",
"value"
],
"types": {
"date": "date",
"value": "number"
}
},
"key_field": "series_id",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "riksbank-krona-exchange-rates",
"version_id": "de61d8c2-f7cc-456e-831f-bbfb67ee73f2"
}
}Czech koruna exchange rate fixing, daily
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/czech-national-bank-koruna-exchange-rates -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get czech-national-bank-koruna-exchange-rates --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor Czech koruna exchange rate fixing, daily: get_catalog_source czech-national-bank-koruna-exchange-rates,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "Czech koruna exchange rate fixing, daily",
"url": "https://api.cnb.cz/cnbapi/exrates/daily?lang=EN",
"recipe": {
"mode": "http",
"format": "json",
"items": "rates[*]",
"fields": {
"rate": "rate",
"amount": "amount",
"country": "country",
"currency": "currency",
"valid_for": "validFor",
"currency_code": "currencyCode",
"fixing_number": "order"
},
"required": [
"currency_code",
"rate"
],
"types": {
"rate": "number",
"amount": "integer",
"valid_for": "date",
"fixing_number": "integer"
}
},
"key_field": "currency_code",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "czech-national-bank-koruna-exchange-rates",
"version_id": "f27dd921-460c-4ea0-878e-0893ba42ccea"
}
}Ukrainian hryvnia exchange rates set by the National Bank of Ukraine, daily
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/national-bank-of-ukraine-hryvnia-exchange-rates -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get national-bank-of-ukraine-hryvnia-exchange-rates --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor Ukrainian hryvnia exchange rates set by the National Bank of Ukraine, daily: get_catalog_source national-bank-of-ukraine-hryvnia-exchange-rates,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "Ukrainian hryvnia exchange rates set by the National Bank of Ukraine, daily",
"url": "https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json",
"recipe": {
"mode": "http",
"format": "json",
"items": "[*]",
"fields": {
"rate": "rate",
"name_uk": "txt",
"special": "special",
"numeric_code": "r030",
"currency_code": "cc",
"exchange_date": "exchangedate"
},
"required": [
"currency_code",
"rate"
],
"types": {
"rate": "number",
"numeric_code": "integer"
}
},
"key_field": "currency_code",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "national-bank-of-ukraine-hryvnia-exchange-rates",
"version_id": "3e17a184-cbb7-4f91-ae8b-284ac969d490"
}
}U.S. Treasury reporting rate of exchange for the euro, quarterly
REST API
Create an API key under Console → API & access. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/treasury-reporting-rates-of-exchange-euro -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get treasury-reporting-rates-of-exchange-euro --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDMCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor U.S. Treasury reporting rate of exchange for the euro, quarterly: get_catalog_source treasury-reporting-rates-of-exchange-euro,
then create_source with its create_source_args (dry run first), then run_source."source.json
The request body the API and CLI examples send.
{
"name": "U.S. Treasury reporting rate of exchange for the euro, quarterly",
"url": "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v1/accounting/od/rates_of_exchange?filter=country_currency_desc:eq:Euro%20Zone-Euro&sort=-effective_date&page%5Bsize%5D=40",
"recipe": {
"mode": "http",
"format": "json",
"items": "data[*]",
"fields": {
"country": "country",
"currency": "currency",
"record_date": "record_date",
"exchange_rate": "exchange_rate",
"effective_date": "effective_date",
"country_currency": "country_currency_desc"
},
"required": [
"effective_date",
"exchange_rate"
],
"types": {
"record_date": "date",
"exchange_rate": "number",
"effective_date": "date"
}
},
"key_field": "effective_date",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "treasury-reporting-rates-of-exchange-euro",
"version_id": "5c12b95e-5d19-4d25-81a7-300e74a2cf3e"
}
}Alerts and evidence
Most of these rates change every business day, so a daily digest is quieter than an email per change. For a rates table, a webhook in Snapshot mode sends all current records after each successful run; CSV, JSON and XLSX exports carry the same records.
Every run keeps the publisher's exact response with its SHA-256 hash and a signed manifest, and every value points back to where it was read. How that works is in the docs:
Limitations
- These are reference and indicative rates published for information. The ECB strongly discourages using its rates for transactions, and Danmarks Nationalbank says its rates are indicative and not for transaction purposes. Nothing here is trading advice.
- Units differ by publisher: per 1 euro (ECB), per 100 units (Danmarks Nationalbank), per unit or per 100 units by series (Riksbank), per the stated
amount(Czech National Bank), per unit (National Bank of Ukraine) and euros per U.S. dollar (Treasury). Convert before comparing figures across publishers. - Since 27 November 2023 the Riksbank's rates are the ECB's reference rates converted to kronor, so the two are not independent observations.
- A run after 3:30 p.m. Kyiv time records the National Bank of Ukraine's rate for the next business day. Its
exchange_dateis text as published (DD.MM.YYYY), not a typed date. - A currency the ECB stops quoting shows as null; the ECB suspended its rouble rate in March 2022.
- Each run reads a window: the ECB's 90-day file, Danmarks Nationalbank's last five business days and the Treasury's 40 most recent effective dates. A day leaving the window is not a deletion; the monitor's history keeps it.
Usage rights, terms posture and reliability for each source are on its source page. They are our documented understanding of each publisher's stated terms, not legal advice.
Related
SourceFinch is independent and is not affiliated with or endorsed by European Central Bank, Danmarks Nationalbank, Sveriges Riksbank, Czech National Bank, National Bank of Ukraine, Bureau of the Fiscal Service (U.S. Department of the Treasury). This guide describes their public data as SourceFinch acquires it. It is not legal, medical or financial advice.