Exchange Rate API

Our REST API provides programmatic access to exchange-rate data for Ukraine and international markets, including real-time interbank quotes, the cash market, benchmark fixings, official NBU rates, bank cash-desk rates, online banking rates, card rates and Forex data.

For an extended API package for ERP systems such as SAP, online stores, contract pricing or other business use cases, contact us through the feedback form. Tell us which rate you need and how it will be used, and we will suggest an appropriate data package.

Request API access

Available data:

  • Real-time interbank exchange rates based on large buy and sell transactions
  • Cash market benchmark based on cash-market monitoring
  • Cash and non-cash benchmark fixings for contracts, recorded at the same time each business day
  • Official National Bank of Ukraine exchange rates
  • Cash-desk exchange rates from Ukrainian banks
  • Online banking exchange rates from Ukrainian banks
  • Bank card conversion rates
  • Rates from currency exchange offices
  • Forex rates
  • Cryptocurrency prices

General information

Base URL

All methods are available at:

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

Parameters can be passed either in the query string (?key=...&format=json) or as URL path segments (/key/.../format/json). Both forms are equivalent.

Authentication

Every request must contain the key parameter with your personal API key. To obtain a key, submit a request through the feedback form.

Request API access

Response format

Responses are returned as XML by default. Add format=json to receive JSON.

Rate limits

Hourly request limits are set separately for each method and depend on the terms of your API key. When a limit is exhausted, the API returns error 401.

Errors

When an error occurs, the response contains status: false and an error field describing the problem.

400 invalid parameters, such as an unknown currency or city
401 hourly request limit exhausted, API key expired or insufficient access rights
403 invalid API key

Response fields

bid buy rate — the rate at which the organization buys the currency
ask sell rate — the rate at which the organization sells the currency
bid_change, ask_change, change change compared with the previous day’s value
value official or reference value, such as an NBU or international market rate
rate exchange rate for a Forex currency pair
updated date and time when the value was last updated
date date for which the data is returned
new / old fresh data updated today / older data not updated today
total, banks_total number of organizations in the result set
avg / best average and best rate among the selected organizations
trusted source confidence level
translit transliterated identifier used in request parameters
nal / beznal cash / non-cash fixing
CURRENT / PREVIOUS chart points for the current and previous trading day

The key and format parameters apply to every method and are not repeated in the tables below.

Rate summary

GET /api/summary_info

Returns current rates for a selected city or region in one request: average and best bank rates, cash-market data, interbank rates, NBU rates, Visa and Mastercard data, Forex rates and fixings.

Parameter Description
city City or region specified by its transliterated identifier. See the cities and regions methods. The default is all for all of Ukraine.
currencies Comma-separated currency identifiers, for example usd,eur. See the currencies method. The default is all available currencies.
basic_currency Base currency used to calculate the rates. The default is uah.
date Date for which data is required, for example 13.07.2026 or 2026-07-13. The default is today.
type Organization type: MAJOR for the largest institutions, BIG for large institutions, BANK for all banks, or POV for currency exchange offices. The default is BANK.
source Comma-separated data sources. The default is all sources. Supported values: organizations for average and best bank rates; commercial for the cash-market benchmark; actual for the current cash-market rate; blackmarket for cash-market data; mezhbank for interbank data; nbu; international; visa; mastercard; and 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
        }
      ]
    }
  ]
}

Currency directory

GET /api/currencies

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

Parameter Description
type Directory type: currency_and_metal (default) for currencies and bank metals; currency for currencies only; metal for metals only; nbu for currencies with NBU rates; cash for cash-market currencies; cash_cards for card-rate currencies; cards for payment-card currencies; mejbank for interbank currencies; commercial for the cash-market benchmark; actual for the current cash-market rate; visa; mastercard; forex for Forex instruments; forex_currency; forex_metal; or bank_metal.
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 and their transliterated identifiers for the region and city parameters.

Parameter Description
type Region filter: commercial for regions with cash-market data.
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 geographic coordinates. The translit field is used as the city parameter in other methods.

Parameter Description
type City filter: commercial, bank, bank_big or big.
region Region specified by its transliterated identifier. 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 and organizations

GET /api/organizations

List of banks and currency exchange offices, including names, types, telephone numbers and icons.

Parameter Description
type Organization type: MAJOR, BIG, BANK, POV or 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"
      }
    }
  ]
}

Branches

GET /api/organizations_departments

Branches of a selected organization, including addresses, telephone numbers and geographic coordinates.

Parameter Description
organization Organization ID. See the organizations method.
city City specified by its transliterated identifier. 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" }
    }
  ]
}

Cash-desk exchange rates

GET /api/organizations_rates

Cash exchange rates at bank branches and currency exchange offices in a selected city. Results are separated into fresh data (new) and older data (old).

Parameter Description
city City or region specified by its transliterated identifier. See the cities and regions methods.
currencies Comma-separated currency identifiers, for example usd,eur. See the currencies method. The default is all available currencies.
date Date for which data is required, for example 13.07.2026 or 2026-07-13. The default is today.
type Organization type: MAJOR, BIG, BANK, POV, BANK_ALL, or a comma-separated list of types.
wholesale Wholesale rates: set to 1 to include 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

Card conversion rates from Ukrainian banks. The response structure is the same as for organizations_rates.

Parameter Description
currencies Comma-separated currency identifiers, for example usd,eur. See the currencies method. The default is all available currencies.
date Date for which data is required, for example 13.07.2026 or 2026-07-13. The default is 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 banking rates

GET /api/organizations_online_rates

Online banking exchange rates from Ukrainian banks. The response structure is the same as for organizations_rates.

Parameter Description
currencies Comma-separated currency identifiers, for example usd,eur. See the currencies method. The default is all available currencies.
date Date for which data is required, for example 13.07.2026 or 2026-07-13. The default is 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 foreign exchange market rates by currency pair.

Parameter Description
currencies Comma-separated currency pairs in from_to format, for example eur_usd,gbp_usd. If omitted, the API returns the main Forex pairs against the US dollar.
date Date for which data is required, for example 13.07.2026 or 2026-07-13. The default is 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 cash (nal) and non-cash (beznal) benchmark fixings. The rate is recorded at the same time each business day, making it suitable as a reference in contracts.

Parameter Description
currencies Comma-separated currencies: usd, eur, rub. The default is all available currencies.
date Date for which data is required, for example 13.07.2026 or 2026-07-13. The default is 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
      }
    }
  ]
}