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-100JPYquote 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/sellare what the engine itself pays/charges around CBK's mid, using the engine's FX spread (spreadBps).
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"{
"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.
| Query | Required | Description |
|---|---|---|
from | yes | Currency or token code, e.g. USDT, EUR |
to | yes | Currency or token code, e.g. KES, UGX |
amount | no | Amount of from (default 1) |
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"{
"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.