SourceFinch Verified · Exchange rates
Ukrainian hryvnia exchange rates set by the National Bank of Ukraine, daily
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.
- Healthy · 100% of observed runs successful
- Exchange rates
- National Bank of Ukraine
- Ukraine
- Publisher's public API
- 6 typed fields
Monitor this sourceAPI, CLI, SDK and MCP
Part of: Exchange-rate desk
At a glance
- Publisher
- National Bank of Ukraine · homepage
- Category
- Exchange rates
- Jurisdiction
- Ukraine
- Publisher updates
- Each business day; the next day's rates appear after 3:30 p.m. Kyiv time
- SourceFinch checks
- Daily by default
- Records per run
- 45 in the latest run
- Record key
currency_code- Acquired from
- Publisher's public API:
https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json - Recipe
- v1.0.0, approved October 12, 2026
- Verified since
- October 12, 2026
- Last green run
- October 12, 2026
What the data contains
The National Bank of Ukraine sets the hryvnia exchange rate against foreign currencies each business day and publishes it as open data through its keyless statistics service. Before 3:30 p.m. Kyiv time the service returns the rate for the current business day; after that, the rate set for the next business day. This source reads the current rates on each daily run and makes one record per currency, keyed by the ISO currency code, with the numeric ISO code, the currency name in Ukrainian as published, the rate in hryvnias per unit, the date the rate applies to (DD.MM.YYYY, as published) and the NBU's flag for rates calculated under special conditions. A monitor reports each new day's rate per currency. The data describes exchange rates and contains no personal data. SourceFinch is independent of the National Bank of Ukraine.
Fields and types
Every record has these fields. The key field currency_code identifies a record across runs, so changes are reported field by field.
| Field | Type | Description |
|---|---|---|
currency_codekey | string | ISO 4217 alphabetic code of the foreign currency. The record key. |
numeric_code | integer, nullable | ISO 4217 numeric code of the currency (r030). |
name_uk | string, nullable | Name of the currency in Ukrainian, as published. |
rate | number | Hryvnias per one unit of the foreign currency. |
exchange_date | string, nullable | Date the rate applies to, as published (DD.MM.YYYY). |
special | string, nullable | The NBU's flag for a rate calculated under special conditions (null when not flagged). |
Sample output
The first 5 of 45 records from SourceFinch's own run on October 12, 2026, exactly as delivered.
| Field | Record 1 | Record 2 | Record 3 | Record 4 | Record 5 |
|---|---|---|---|---|---|
currency_code | DZD | AUD | BDT | CAD | CNY |
numeric_code | 12 | 36 | 50 | 124 | 156 |
name_uk | Алжирський динар | Австралійський долар | Така | Канадський долар | Юань Женьміньбі |
rate | 0.33417 | 31.3429 | 0.36507 | 31.5141 | 6.716 |
exchange_date | 13.10.2026 | 13.10.2026 | 13.10.2026 | 13.10.2026 | 13.10.2026 |
special | — | — | — | — | — |
Sample as JSON
[
{
"rate": 0.33417,
"name_uk": "Алжирський динар",
"special": null,
"numeric_code": 12,
"currency_code": "DZD",
"exchange_date": "13.10.2026"
},
{
"rate": 31.3429,
"name_uk": "Австралійський долар",
"special": null,
"numeric_code": 36,
"currency_code": "AUD",
"exchange_date": "13.10.2026"
},
{
"rate": 0.36507,
"name_uk": "Така",
"special": null,
"numeric_code": 50,
"currency_code": "BDT",
"exchange_date": "13.10.2026"
},
{
"rate": 31.5141,
"name_uk": "Канадський долар",
"special": null,
"numeric_code": 124,
"currency_code": "CAD",
"exchange_date": "13.10.2026"
},
{
"rate": 6.716,
"name_uk": "Юань Женьміньбі",
"special": null,
"numeric_code": 156,
"currency_code": "CNY",
"exchange_date": "13.10.2026"
}
]Evidence behind every value
- Each run keeps the publisher's exact response, hashed with SHA-256. This sample came from a response with hash
e8ea5d4d161f1416921097c732956ef5ff3a78379ab3935d86997f873fe3ad1f. - Every value records where it came from in that response: a JSON Pointer into the retained capture.
- Each run gets a signed manifest (Ed25519) timestamped by an RFC 3161 authority: this run's manifest hash is
f2c3e62efb1b05180d2aa627f88015124fcb7eb43ba5ef8205638c5a823c32a3, timestamped October 12, 2026. - The compliance state at capture is recorded with the evidence: robots.txt hash and verdict, AI-preference signals, crawler identity and the usage rights below.
- Download any run as an evidence bundle (WACZ) and check it offline, without trusting SourceFinch:
sourcefinch verify-bundle run.wacz.
Terms posture and usage rights
- Terms
- Automated access permitted · publisher's terms
- robots.txt
- Allows this path · SHA-256
45cc4eba45a6aadb… - AI-preference signals
- None observed at review
- Public record
- Yes. Hryvnia exchange rates published by the National Bank of Ukraine as open data under Article 10-1 of the Law of Ukraine On Access to Public Information.
- Reviewed
- October 12, 2026; next review April 12, 2027
- Licence basis
- Publisher's terms of use
- Commercial use
- Allowed
- Redistribution
- Allowed
- Attribution
- Required (text below)
The National Bank of Ukraine's open data page states that, under Article 10-1 of the Law of Ukraine On Access to Public Information, open data is published for unrestricted, free-of-charge access and may be freely copied, published, distributed and used, including for commercial purposes and in combination with other information or in the user's own products, provided the source is referenced, including a hyperlink to the NBU's open data page. bank.gov.ua/robots.txt allows all paths, and the exchange rate service needs no key.
Source: National Bank of Ukraine open data (https://bank.gov.ua/en/open-data), reformatted by SourceFinch. SourceFinch is independent of and not endorsed by the National Bank of Ukraine.
Usage rights travel with every record SourceFinch delivers (API, exports, webhooks and evidence bundles). They are our documented understanding of the publisher's stated terms, not legal advice.
Reliability
- Runs, last 30 days
- 1
- Green
- 100%
- Failed
- 0
- Median run time
- 2.1 s
- Latest run
- success, October 12, 2026
Measured on completed runs of this recipe version across SourceFinch, anonymized, within a rolling 30-day window. First successful observation: October 12, 2026. A new recipe has only the history collected since that date; this is not a 30-day uptime guarantee.
Use it
Every surface creates the same monitor from this Verified recipe. Monitors keep record history, report field-level changes and deliver by webhook, export or email. You confirm you have the right to collect the source (rights: true).
Console
Open this recipe in the console: it preserves the reviewed URL, fields and record key. Review the latest captured sample, confirm source rights, and choose a schedule before creating your monitor.
Portable recipe
Copy into the console's Import or share a recipe panel to customize fields, types and schedules. This configuration contains no captured records or workspace IDs.
{
"schema": "sourcefinch/source@1",
"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": {
"numeric_code": "integer",
"rate": "number"
}
},
"schedule": "daily",
"key_field": "currency_code"
}source.json
The request body used by the API, CLI and SDK examples.
{
"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"
}
}REST API
Create an API key under Console → API keys. 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_IDTypeScript SDK
The SDK is not on npm yet; see /docs/sdk.
import { SourceFinch } from "@sourcefinch/sdk";
const sf = new SourceFinch({ apiKey: process.env.SOURCEFINCH_API_KEY });
const entry = await sf.catalog.get("national-bank-of-ukraine-hryvnia-exchange-rates");
const source = await sf.sources.create({
catalog: { slug: entry.slug, version_id: entry.recipe.version_id },
name: entry.name.slice(0, 100),
url: entry.acquisition_path.endpoint,
recipe: entry.recipe.definition,
key_field: entry.recipe.key_field,
schedule: entry.recipe.schedule,
rights: true, // you confirm you have the right to collect this source
});
const run = await sf.runs.wait((await sf.runs.create(source.id)).id);
console.log(run.status);MCP
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."Pricing
Each check is one run, whatever the number of records, and failed runs are free. On its default daily schedule this source uses about 30 runs a month, which fits the Free plan's 300 runs. It uses HTTP acquisition, so no browser runs are needed. See plans.
Guides using this source
Related sources
More from National Bank of Ukraine and in exchange rates.
SourceFinch is independent and is not affiliated with or endorsed by National Bank of Ukraine. This page describes ukrainian hryvnia exchange rates set by the national bank of ukraine, daily as SourceFinch acquires it.