EN

Theme

Accent colour

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

Dashboard Choose a plan

Your first call, in three steps.

The base is https://api.satelit.md/v1. HTTPS, JSON, UTF-8. The API is read-only.

  1. Choose a plan and get a key

    You request a plan in the dashboard with your Satelit account. Once it is on, you create a key. You see it only once. It looks like this: sat_live_….

    Choose a planAPI keys

  2. Make the call

    Send the key in the Authorization header.

    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"]);
  3. Read the response

    data holds the answer, meta holds the credits, the date and the sources. The headers tell you how much you have left.

    api.satelit.md/v1/rates
    {
      "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."
      }
    }

Without a key

GET /v1/sample works without a key: rate, cap, news and the day's digest. This is how you see the shape of the data before you sign in.

Try it in the console

Conventions

  • Language: ?lang=ro|ru|en|uk, default ro.
  • Dates: YYYY-MM-DD. Times are ISO 8601, with a time zone.
  • Money: in lei (MDL), as numbers.
  • Methods: GET, HEAD and OPTIONS. The API only reads.
  • CORS: *, no cookies. You can call the API straight from the browser, but do not put a paid key in a public page.

The response envelope

All routes answer the same way. meta.attribution is the line your plan requires you to show on the page. meta.page appears only on lists.

meta
{
  "data": "…",
  "meta": {
    "credits": 2,
    "updated_at": "2026-11-02T13:05:00+02:00",
    "sources": [
      {
        "name": "ANRE",
        "url": "https://anre.md/",
        "license": "Public data of ANRE"
      }
    ],
    "attribution": "Date: Satelit (satelit.md)",
    "page": {
      "page": 1,
      "per": 20,
      "total": 240,
      "pages": 12
    }
  }
}

Guides