Skip to content

Exchange Rates (CBK) ​

The engine's exchange rates come from the Central Bank of Kenya — the daily "Trade Weighted Average Indicative Rates" published at centralbank.go.ke/forex. The engine checks for a new publication every 15 minutes; when CBK publishes new rates, everything priced from them (IMM rates, IMC's KES value, the fiat quote endpoint and these endpoints) moves with it.

These endpoints are read-only market data. Any authenticated caller can use them, including a tenant's own X-API-Key/X-API-Secret, so you can build CBK rates into your own system.

  • Rates are KES per 1 unit of each currency (CBK's KES / USHS-style quotes and the per-100 JPY quote are normalised to that).
  • USD-pegged tokens (USDT, USDC, IMC) are priced at 1 USD. IMC is $1, backed by airtime, so its KES value follows CBK's USD rate.
  • buy/sell are what the engine itself pays/charges around CBK's mid, using the engine's FX spread (spreadBps).
▸API ConfigurationNot configured

All Rates ​

All Rates
curl -X GET "http://localhost:8100/api/v1/rates" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET"
Response200
{
  "source": "CBK",
  "sourceName": "Central Bank of Kenya",
  "date": "2026-09-24",
  "fetchedAt": "2026-09-24T18:42:17Z",
  "base": "KES",
  "fiat": {
    "USD": {
      "kesPerUnit": 129.48,
      "unitsPerKes": 0.0077232
    },
    "EUR": {
      "kesPerUnit": 147.62,
      "unitsPerKes": 0.0067741
    },
    "UGX": {
      "kesPerUnit": 0.033179,
      "unitsPerKes": 30.14
    }
  },
  "stablecoins": {
    "USDT": {
      "usd": 1,
      "kesPerUnit": 129.48,
      "unitsPerKes": 0.0077232
    },
    "IMC": {
      "usd": 1,
      "kesPerUnit": 129.48,
      "unitsPerKes": 0.0077232
    }
  },
  "spreadBps": 150,
  "usdKes": {
    "mid": 129.48,
    "buy": 127.5378,
    "sell": 131.4222
  }
}

Currencies CBK publishes: USD, GBP, EUR, ZAR, UGX, TZS, RWF, BIF, AED, CAD, CHF, JPY, SEK, NOK, DKK, INR, HKD, SGD, SAR, CNY, AUD.

Convert ​

Converts between any two CBK currencies or engine stablecoins, crossing through KES.

QueryRequiredDescription
fromyesCurrency or token code, e.g. USDT, EUR
toyesCurrency or token code, e.g. KES, UGX
amountnoAmount of from (default 1)
Convert
curl -X GET "http://localhost:8100/api/v1/rates/convert?from=USDT&to=KES&amount=100" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET"
Response200
{
  "from": "USDT",
  "to": "KES",
  "amount": 100,
  "rate": 129.48,
  "result": 12948,
  "buy": 127.5378,
  "sell": 131.4222,
  "spreadBps": 150,
  "source": "CBK",
  "sourceName": "Central Bank of Kenya",
  "date": "2026-09-24"
}

A pair CBK doesn't publish returns 400; if CBK can't be reached and the engine has no stored publication yet, 502.

Released under the MIT License.