EN

Theme

Accent colour

Your theme and colour carry over to satelit.md and the app.

Dashboard Choose a plan

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

Euro over the last 90 days, lei
19.9420.0320.1320.226 Aug3 Nov
  • 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 days parameter.

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.

Usage rules

What it costs

Try it in the console

GET /v1/rates
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"]);
A real response
{
  "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."
  }
}