The official BNM rate, as JSON.
5 currencies, with history since 6 August 2026. The value, the nominal, the date and the change over 7 and 30 days.
Numbers as of 6 November 2026
- EUR20.0905−0.6%
- USD17.9476−0.6%
- RON3.7628−0.5%
- UAH0.39580.0%
- RUB0.2228−0.5%
The same information is free at bnm.md
The official rate is public and free at bnm.md, under CC BY 4.0, by Law 109/2025. We say so before you pay. What we add: one key, one format, history and webhooks, together with the other data.
What it contains
- Euro, US dollar, Romanian leu, hryvnia and ruble, exactly as BNM publishes them.
- The percentage change over 7 and 30 days, already calculated.
- Daily history for each currency, with the
daysparameter.
Who uses it
- Online shops that show prices in euro and lei.
- Accounting and invoicing apps.
- Bots and widgets with the rate of the day.
How often it changes
Once a day, after BNM publishes the rate, at 13:00.
Source and licence
National Bank of Moldova. Public data under CC BY 4.0, by Law 109/2025. The source is named in every answer.
What it costs
/v1/rates1per call/v1/rates/history1for every 30 days, rounded up
curl "https://api.satelit.md/v1/rates" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/rates", {
headers: { Authorization: `Bearer ${process.env.SATELIT_KEY}` },
});
const { data, meta } = await res.json();
console.log(data, meta.credits); import json, os, urllib.request
req = urllib.request.Request(
"https://api.satelit.md/v1/rates",
headers={"Authorization": f"Bearer {os.environ['SATELIT_KEY']}"},
)
with urllib.request.urlopen(req) as res:
body = json.load(res)
print(body["data"], body["meta"]["credits"]) <?php
$ch = curl_init("https://api.satelit.md/v1/rates");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("SATELIT_KEY")],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body["data"]); {
"data": [
{
"code": "EUR",
"name": "Euro",
"value": 20.0905,
"nominal": 1,
"date": "2026-11-02",
"change_7d_pct": -0.6,
"change_30d_pct": -0.1
},
{
"code": "USD",
"name": "US dollar",
"value": 17.9476,
"nominal": 1,
"date": "2026-11-02",
"change_7d_pct": -0.6,
"change_30d_pct": 0.8
},
{
"code": "RON",
"name": "Romanian leu",
"value": 3.7628,
"nominal": 1,
"date": "2026-11-02",
"change_7d_pct": -0.5,
"change_30d_pct": -1.2
},
{
"code": "UAH",
"name": "Ukrainian hryvnia",
"value": 0.3958,
"nominal": 1,
"date": "2026-11-02",
"change_7d_pct": 0,
"change_30d_pct": -0.2
},
{
"code": "RUB",
"name": "Russian ruble",
"value": 0.2228,
"nominal": 1,
"date": "2026-11-02",
"change_7d_pct": -0.5,
"change_30d_pct": 4.5
}
],
"meta": {
"credits": 1,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"name": "BNM",
"url": "https://www.bnm.md/ro/official_exchange_rates",
"license": "CC BY 4.0"
}
],
"attribution": "Sursa: Banca Națională a Moldovei, bnm.md, CC BY 4.0",
"notice": "The same data is free at bnm.md."
}
}