← All sources
LiveLive-testedOfficial public-page backend

Economy / Retail currency exchange

NBG commercial-bank exchange-rate comparison

The National Bank's comparison service aggregates current buy and sell offers reported by 13 commercial banks. It distinguishes branch, internet-bank, and mobile-bank channels and can return different offers for natural-person/business context, transaction direction, currency, amount, selected banks, and payment time. Unlike the separate official daily reference rate, these values are presented as online, continuously updateable bank offers.

01

Provenance and access

How the data is reached

Public JSON endpoints behind NBG's currency-rates page. No authentication was required during testing. The exchange query accepts currency ID, amount, datetime, optional bank IDs, user type, operation type, and exchange channel filters.

Reuse status

Publicly displayed official comparison data; a separate data-reuse license was not found. NBG requires users to verify rates and terms directly with the selected bank before a transaction.

Method
GET with currencyId, amount, datetime, and optional filter parameters
Format
Nested JSON array
Authentication
None

A minimal USD request using currencyId=5 returned offers for 13 banks. Incorrect/inactive currency IDs can return the same structure with null values.

02

Field-level detail

What is actually returned

livereferencederivedhistoricalunknown

Bank subject

A participating commercial bank available as a comparison filter.

2 fields
Field / pathTypeNull?ExampleMeaningFreshness
idnumberNo2Internal bank/subject identifier used by filter requests.reference
namestringNoCredo BankDisplay name of the bank.reference

Currency option

Currency metadata returned for filter construction.

6 fields
Field / pathTypeNull?ExampleMeaningFreshness
idnumberNo5Internal currency identifier used by exchange queries.reference
codestringNoUSDCurrency alphabetic code.reference
namestringNoUSDDisplay name/code used by the comparison interface.reference
kCoeficientnumberNo1Quantity/scaling coefficient for the currency.Provider spelling is `kCoeficient`. Values such as 100 or 1000 occur for some currencies.reference
isActivebooleanNotrueWhether the currency is currently active in the service.reference
statusstringNoActiveText status of the currency option.Both Active and Inactive were observed.reference

Bank offer

One bank and its offers grouped by service channel.

2 fields
Field / pathTypeNull?ExampleMeaningFreshness
namestringNoCredo BankBank display name.reference
exchangesExchangeChannel[]No3 channel recordsOffers grouped by branch, internet bank, and mobile bank.live

Exchange channel

One delivery/service channel within a bank offer.

2 fields
Field / pathTypeNull?ExampleMeaningFreshness
exchangeTypeenum-like stringNoInternetBankChannel through which the exchange is offered.Observed values: Branch, InternetBank, MobileBank.reference
exchangeRatesExchangeRate[]NoBuy and Sell recordsDirectional rates available in this channel.live

Exchange rate

One directional buy or sell offer.

3 fields
Field / pathTypeNull?ExampleMeaningFreshness
operationTypeenum-like stringNoBuyWhether the bank buys or sells the selected currency.Observed values: Buy and Sell.reference
valuenumberYes2.625Reported GEL rate for the selected currency/channel/context.Null occurs when no applicable offer is returned.live
isSpecialbooleanNofalseProvider flag indicating a specially marked offer in the comparison response.The exact business rule for `true` was not documented in the inspected page code.live

NBG comparison rate

NBG rate returned alongside the commercial-bank comparison.

4 fields
Field / pathTypeNull?ExampleMeaningFreshness
codestringNoUSDCurrency code.reference
namestringNoUS DollarCurrency display name.reference
ratenumberNo2.6301Current NBG comparison/reference value.live
quantitynumberNo1Foreign-currency quantity to which the rate applies.reference
03

Representative evidence

Sample records

Current USD offer fragment

Retrieved 2026-07-22 14:02 Asia/Tbilisi

JSON
[
  {
    "name": "Credo Bank",
    "exchanges": [
      {
        "exchangeType": "Branch",
        "exchangeRates": [
          {
            "operationType": "Buy",
            "value": 2.623,
            "isSpecial": false
          },
          {
            "operationType": "Sell",
            "value": 2.637,
            "isSpecial": false
          }
        ]
      },
      {
        "exchangeType": "InternetBank",
        "exchangeRates": [
          {
            "operationType": "Buy",
            "value": 2.625,
            "isSpecial": false
          },
          {
            "operationType": "Sell",
            "value": 2.635,
            "isSpecial": false
          }
        ]
      }
    ]
  }
]

The branch and internet-bank offers differed in the live response, demonstrating why channel is a meaningful field rather than presentation metadata.

Currency option

Retrieved 2026-07-22 14:02 Asia/Tbilisi

JSON
{
  "id": 5,
  "code": "USD",
  "name": "USD",
  "kCoeficient": 1,
  "isActive": true,
  "status": "Active"
}
04

Boundaries

Reliability, caveats, and privacy

What held up

  • All four tested JSON endpoints responded without authentication.
  • The official page states the commercial-bank information is updated online in real time.
  • The live USD response contained distinct values by bank and service channel.

What can go wrong

  • Rates and terms are supplied by banks and can change at any time; NBG tells users to verify before transacting.
  • Query semantics for userType, operationTypes, exchangeTypes, and `isSpecial` were inferred from the public page implementation and not found in public API documentation.
  • An incorrect or inactive currency ID can yield structurally valid records with null prices.
  • No machine-readable data license was located.
05

Cross-source possibilities

Ideas using this source