Exchange rates API

We provide programmatic access to currency exchange rates of Ukraine and the world through a REST API: real-time interbank data, the cash market, fixing, NBU rates, bank cash desk rates, online bank rates, card rates and Forex.

To get an extended version of the API for ERP systems (SAP), online stores, contracts or other purposes, contact us through the feedback form. Tell us which rates you need and what for — we will offer the best cooperation option for your needs.

Contact us

We provide:

  • Real-time interbank rates based on large buy/sell deals
  • Commercial rate (cash market monitoring)
  • Cash and cashless fixing for contracts (the rate is fixed every day at the same time)
  • NBU rates
  • Cash desk rates of Ukrainian banks
  • Online bank rates of Ukraine
  • Card rates of Ukrainian banks
  • Exchange office rates
  • Forex rates
  • Cryptocurrency rates

General information

Base URL

All methods are available at:

https://kurs.com.ua/api/{method}

Parameters can be passed either as a query string (?key=...&format=json) or as URL segments (/key/.../format/json) — both notations are equivalent.

Authorization

Every request must contain the key parameter — your personal access key. To get a key, contact us through the feedback form.

Contact us

Response format

By default the response is returned in XML. Add the format=json parameter to get JSON.

Rate limits

The hourly number of requests is limited per method and depends on the terms of your key. When the limit is reached, error 401 is returned.

Errors

On error, the response contains the fields status: false and error with the reason.

400 invalid request parameters (unknown currency, city, etc.)
401 hourly request limit reached, key expired or insufficient permissions
403 invalid API key

Response fields

bid buy rate — the organization buys currency at this rate
ask sell rate — the organization sells currency at this rate
bid_change, ask_change, change change of the value against the previous day
value official rate (NBU, international market)
rate currency pair rate (Forex)
updated date and time of the last value update
date date the data is returned for
new / old fresh data updated today / data not updated today
total, banks_total number of organizations in the selection
avg / best average and best rate among the selected organizations
trusted trust level of the data source
translit transliterated key used in request parameters
nal / beznal cash / cashless fixing
CURRENT / PREVIOUS chart points for the current and previous trading day

The key and format parameters are common to all methods and are not repeated in the tables.

Summary rates

GET /api/summary_info

A summary of current rates for the selected city or region in one request: average and best bank rates, cash market, interbank, NBU, Visa/Mastercard, Forex and fixing.

Parameter Description
city City or region — transliterated key (see the cities and regions methods). Default — all (whole Ukraine).
currencies Comma-separated list of currencies — transliterated keys, e.g. usd,eur (see the currencies method). Default — all available currencies.
basic_currency Base currency the rates are calculated against. Default — uah.
date Date for which the rates are requested, e.g. 13.07.2026 or 2026-07-13. Default — today.
type Organization type: MAJOR (largest), BIG (large), BANK (all banks), POV (exchange offices). Default — BANK.
source Comma-separated data sources. Default — all. Possible values: organizations — average and best bank rates, commercial — commercial cash market rate, actual — actual cash market rate, blackmarket — cash market, mezhbank — interbank, nbu — NBU rates, international — international market, visa — Visa rates, mastercard — Mastercard rates, fixing — fixing.
Example request
https://kurs.com.ua/api/summary_info?key=YOUR_API_KEY&city=kiev&currencies=usd,eur&format=json
Example response
{
  "basic_currency": { "id": "491", "iso": "980", "symbol": "UAH", "name": "гривна" },
  "date": "Mon, 13 Jul 2026 00:00:00 +0300",
  "city": { "id": "908", "name": "Киев", "translit": "kiev" },
  "currencies": [
    {
      "id": "1", "iso": "840", "symbol": "USD", "name": "доллар",
      "rates": [
        {
          "type": "organizations",
          "updated": "Mon, 13 Jul 2026 12:48:52 +0300",
          "banks_total": 43,
          "avg": { "bid": 44.3398, "bid_change": 0.0666, "ask": 44.7893, "ask_change": 0.0673 },
          "best": { "bid": 44.6, "bid_change": 0.2, "ask": 44.6, "ask_change": 0.05 }
        },
        {
          "type": "commercial",
          "updated": "Mon, 13 Jul 2026 12:30:00 +0300",
          "bid": 44.4552, "bid_change": 0.0235,
          "ask": 44.6187, "ask_change": 0.0022
        },
        {
          "type": "nbu",
          "updated": "Mon, 13 Jul 2026 00:00:00 +0300",
          "value": 44.3564, "change": 0.0421
        }
      ]
    }
  ]
}

Currencies directory

GET /api/currencies

Directory of currencies and bank metals: identifiers, symbols, names and transliterated keys used in the currencies parameter of other methods.

Parameter Description
type Directory type: currency_and_metal (default) — currencies and bank metals, currency — currencies only, metal — bank metals only, nbu — NBU rate currencies, cash — cash market currencies, cash_cards — card rate currencies, cards — payment card currencies, mejbank — interbank currencies, commercial — commercial rate currencies, actual — actual rate currencies, visa — Visa currencies, mastercard — Mastercard currencies, forex — Forex market instruments, forex_currency — Forex currencies, forex_metal — Forex metals, bank_metal — bank metals.
Example request
https://kurs.com.ua/api/currencies?key=YOUR_API_KEY&format=json
Example response
{
  "total": 172,
  "currencies": [
    { "id": "1", "symbol": "USD", "name": "доллар", "translit": "usd" },
    { "id": "2", "symbol": "EUR", "name": "евро", "translit": "eur" },
    { "id": "3", "symbol": "RUB", "name": "рубль", "translit": "rub" }
  ]
}

Regions

GET /api/regions

List of Ukrainian regions with transliterated keys for the region and city parameters.

Parameter Description
type Region filter: commercial — regions with cash market rates.
Example request
https://kurs.com.ua/api/regions?key=YOUR_API_KEY&format=json
Example response
{
  "total": 24,
  "regions": [
    { "id": "2", "name": "Винницкая область", "translit": "vinnickaya_oblast" },
    { "id": "3", "name": "Волынская область", "translit": "volynskaya_oblast" }
  ]
}

Cities

GET /api/cities

List of Ukrainian cities with geo-coordinates. The translit field is used in the city parameter of other methods.

Parameter Description
type City filter: commercial, bank, bank_big, big.
region Region — transliterated key (see the regions method).
Example request
https://kurs.com.ua/api/cities?key=YOUR_API_KEY&type=big&format=json
Example response
{
  "total": 58,
  "cities": [
    {
      "id": "908",
      "region_id": "11",
      "name": "Киев",
      "translit": "kiev",
      "size": "5",
      "geometry": {
        "lat": 50.4501,
        "lng": 30.5234,
        "bounds": {
          "ne": { "lat": 50.590798, "lng": 30.825941 },
          "sw": { "lat": 50.213273, "lng": 30.239440 }
        }
      }
    }
  ]
}

Banks & organizations

GET /api/organizations

List of banks and exchange offices: names, types, phones and icons.

Parameter Description
type Organization type: MAJOR, BIG, BANK, POV, BANK_ALL.
Example request
https://kurs.com.ua/api/organizations?key=YOUR_API_KEY&type=MAJOR&format=json
Example response
{
  "total": 17,
  "organizations": [
    {
      "id": "34",
      "name": "Sense bank",
      "translit": "sense-bank",
      "type": "BANK",
      "group": "1",
      "phones": "0-800-50-20-50, (044)298-80-00",
      "icon": {
        "base64": "data:image/png;base64,iVBORw0KGgoAAAANSU...",
        "url": "https://old.kurs.com.ua/static/images/banks_icon/34.png"
      }
    }
  ]
}

Departments

GET /api/organizations_departments

Departments of the selected organization: addresses, phones, geo-coordinates.

Parameter Description
organization Organization ID (see the organizations method).
city City — transliterated key (see the cities method).
Example request
https://kurs.com.ua/api/organizations_departments?key=YOUR_API_KEY&organization=10&format=json
Example response
{
  "total": 1698,
  "departments": [
    {
      "id": "154994",
      "city": "2327",
      "name": "Отделение ПриватБанка",
      "address": "г. Чернигов, ул. Ивана Мазепы, 6",
      "phones": "3700",
      "geo": { "lat": "51.4967", "lng": "31.2872" }
    }
  ]
}

Bank cash desk rates

GET /api/organizations_rates

Cash rates at bank cash desks and exchange offices of the selected city. The data is split into fresh (new) and outdated (old).

Parameter Description
city City or region — transliterated key (see the cities and regions methods).
currencies Comma-separated list of currencies — transliterated keys, e.g. usd,eur (see the currencies method). Default — all available currencies.
date Date for which the rates are requested, e.g. 13.07.2026 or 2026-07-13. Default — today.
type Organization type: MAJOR, BIG, BANK, POV, BANK_ALL, or a comma-separated list of types.
wholesale Wholesale rates: 1 — return wholesale values.
Example request
https://kurs.com.ua/api/organizations_rates?key=YOUR_API_KEY&city=kiev&currencies=usd&type=MAJOR&format=json
Example response
{
  "date": "Mon, 13 Jul 2026 00:00:00 +0300",
  "city": { "id": "908", "name": "Киев", "translit": "kiev" },
  "currencies": [
    {
      "id": "1",
      "symbol": "USD",
      "updated": "Mon, 13 Jul 2026 00:00:00 +0300",
      "total": 15,
      "rates": {
        "new": [
          {
            "organization_id": "10",
            "organization": "Приватбанк",
            "bid": "44.1000", "bid_change": "0.0000",
            "ask": "44.7000", "ask_change": "0.0000",
            "updated": "Mon, 13 Jul 2026 09:31:32 +0300",
            "trusted": "2"
          },
          {
            "organization_id": "98",
            "organization": "Райффайзен Банк",
            "bid": "44.4500", "bid_change": "0.1500",
            "ask": "44.8200", "ask_change": "0.1300",
            "updated": "Mon, 13 Jul 2026 11:50:08 +0300",
            "trusted": "1"
          }
        ],
        "old": [
          {
            "organization_id": "146",
            "organization": "Кредобанк",
            "bid": "44.3700", "bid_change": "0.0000",
            "ask": "44.6400", "ask_change": "0.0000",
            "updated": "Fri, 10 Jul 2026 12:36:16 +0300",
            "trusted": "2"
          }
        ]
      }
    }
  ]
}

Bank card rates

GET /api/organizations_card_rates

Payment card conversion rates of Ukrainian banks. Response structure is the same as in organizations_rates.

Parameter Description
currencies Comma-separated list of currencies — transliterated keys, e.g. usd,eur (see the currencies method). Default — all available currencies.
date Date for which the rates are requested, e.g. 13.07.2026 or 2026-07-13. Default — today.
Example request
https://kurs.com.ua/api/organizations_card_rates?key=YOUR_API_KEY&currencies=usd&format=json
Example response
{
  "date": "Mon, 13 Jul 2026 00:00:00 +0300",
  "currencies": [
    {
      "id": "1",
      "symbol": "USD",
      "updated": "Mon, 13 Jul 2026 00:00:00 +0300",
      "total": 38,
      "rates": {
        "new": [
          {
            "organization_id": "35",
            "organization": "Банк Альянс",
            "bid": "44.5000", "bid_change": "0.1000",
            "ask": "44.6500", "ask_change": "0.1200",
            "updated": "Mon, 13 Jul 2026 11:30:07 +0300",
            "trusted": "1"
          }
        ],
        "old": []
      }
    }
  ]
}

Online bank rates

GET /api/organizations_online_rates

Online rates of Ukrainian banks. Response structure is the same as in organizations_rates.

Parameter Description
currencies Comma-separated list of currencies — transliterated keys, e.g. usd,eur (see the currencies method). Default — all available currencies.
date Date for which the rates are requested, e.g. 13.07.2026 or 2026-07-13. Default — today.
Example request
https://kurs.com.ua/api/organizations_online_rates?key=YOUR_API_KEY&currencies=usd&format=json
Example response
{
  "date": "Mon, 13 Jul 2026 00:00:00 +0300",
  "currencies": [
    {
      "id": "1",
      "symbol": "USD",
      "updated": "Mon, 13 Jul 2026 00:00:00 +0300",
      "total": 29,
      "rates": {
        "new": [
          {
            "organization_id": "87",
            "organization": "ОТП Банк",
            "bid": "44.5540", "bid_change": "0.2080",
            "ask": "44.8500", "ask_change": "0.1500",
            "updated": "Mon, 13 Jul 2026 12:30:05 +0300",
            "trusted": "1"
          }
        ],
        "old": [
          {
            "organization_id": "146",
            "organization": "Кредобанк",
            "bid": "44.3700", "bid_change": "0.0000",
            "ask": "44.6400", "ask_change": "0.0000",
            "updated": "Fri, 10 Jul 2026 12:36:16 +0300",
            "trusted": "2"
          }
        ]
      }
    }
  ]
}

Forex rates

GET /api/forex

International Forex market rates by currency pairs.

Parameter Description
currencies Comma-separated currency pairs in the from_to format, e.g. eur_usd,gbp_usd. Without this parameter the main Forex pairs against USD are returned.
date Date for which the rates are requested, e.g. 13.07.2026 or 2026-07-13. Default — today.
Example request
https://kurs.com.ua/api/forex?key=YOUR_API_KEY&format=json
Example response
{
  "date": "Mon, 13 Jul 2026 00:00:00 +0300",
  "rates": [
    { "currency": "EUR/USD", "rate": "1.142970", "change": "0.001340", "updated": "Mon, 13 Jul 2026 12:49:39 +0300" },
    { "currency": "GBP/USD", "rate": "1.339070", "change": "0.000130", "updated": "Mon, 13 Jul 2026 12:49:39 +0300" }
  ]
}

Fixing

GET /api/fixing

Daily fixing of the cash (nal) and cashless (beznal) rate. The rate is fixed every day at the same time — convenient for contracts.

Parameter Description
currencies Comma-separated currencies: usd, eur, rub. Default — all.
date Date for which the rates are requested, e.g. 13.07.2026 or 2026-07-13. Default — today.
Example request
https://kurs.com.ua/api/fixing?key=YOUR_API_KEY&currencies=usd&format=json
Example response
{
  "date": "Mon, 13 Jul 2026 00:00:00 +0300",
  "currencies": [
    {
      "id": "1",
      "symbol": "USD",
      "updated": "Mon, 13 Jul 2026 12:00:00 +0300",
      "rates": {
        "nal": 44.50, "nal_change": 0.02,
        "nal_bid": 44.45, "nal_bid_change": 0.02,
        "nal_ask": 44.55, "nal_ask_change": 0.02,
        "beznal": 44.40, "beznal_change": 0.01,
        "beznal_bid": 44.35, "beznal_bid_change": 0.01,
        "beznal_ask": 44.45, "beznal_ask_change": 0.01
      }
    }
  ]
}