East Africa FX Rates — Official Central Bank Exchange Rates API avatar

East Africa FX Rates — Official Central Bank Exchange Rates API

Pricing

from $0.10 / full market snapshot

Go to Apify Store
East Africa FX Rates — Official Central Bank Exchange Rates API

East Africa FX Rates — Official Central Bank Exchange Rates API

The only API pulling official daily FX rates directly from East African central banks — not World Bank annual releases. Covers Kenya (KES), Tanzania (TZS), Uganda (UGX) and Rwanda (RWF). Every record source-attributed with legal basis documented.

Pricing

from $0.10 / full market snapshot

Rating

0.0

(0)

Developer

Simon M

Simon M

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

East African FX Rates — Daily Central Bank Exchange Rates

Official USD exchange rates published daily by East African central banks, normalised into one consistent schema. Covers Tanzania (BoT), Rwanda (BNR), Ethiopia (NBE), Burundi (BRB), Comoros (ECB-derived), and Djibouti (USD currency board) — 6 countries in total.

Unlike the World Bank, IMF, or ECB datasets already on Apify — which publish African macro data annually with a 6–12 month lag — this actor pulls fresh, daily rates straight from the issuing institutions.

Part of a regional family: West African FX Rates · East African FX Rates (this actor) · Southern and North African actors in the same normalised schema.


Modes

Choose a mode to match your use case:

ModeWhat you getWhen to use it
usd-core (default)One USD rate per country, latest available dateDaily monitoring, dashboards, FX baskets
all-currenciesEvery currency each central bank publishes, latest dateMulti-currency exposure, FX desks
historicalUSD rate per country, every trading day in a date rangeBacktesting, time-series analysis, academic research

Input

FieldTypeDefaultDescription
modestringusd-coreSee modes table above.
countriesarrayall 6ISO 3166-1 alpha-2 codes to include. TZ Tanzania, RW Rwanda, ET Ethiopia, BI Burundi, KM Comoros, DJ Djibouti.
dateFromstringStart date (YYYY-MM-DD). Required in historical mode.
dateTostringEnd date (YYYY-MM-DD). Required in historical mode.
maxItemsinteger5000Hard cap on output rows.

Output

One record per country per run (in usd-core), per country-currency (in all-currencies), or per country-day (in historical).

Rwanda (BNR) example:

{
"id": "RW:USD:2026-06-02:official",
"country": "RW",
"centralBank": "BNR",
"baseCurrency": "USD",
"quoteCurrency": "RWF",
"pair": "USD/RWF",
"date": "2026-06-02",
"buying": 1459.015,
"selling": 1469.015,
"mid": 1464.015,
"midMethod": "published",
"inverseMid": 0.000683,
"rateType": "official",
"warnings": [],
"source": {
"name": "National Bank of Rwanda",
"url": "https://www.bnr.rw/USD",
"retrievedAt": "2026-06-02T08:00:00.000Z",
"asOfDate": "2026-06-02",
"licenseNote": "Factual exchange rate data reproduced from the BNR public website. No redistribution prohibition found."
}
}

Read it as: 1 USD = 1464.02 RWF (buying: 1459.02, selling: 1469.02).

Comoros (KMF — ECB-derived) example:

{
"id": "KM:USD:2026-06-02:derived",
"country": "KM",
"centralBank": "BCC",
"baseCurrency": "USD",
"quoteCurrency": "KMF",
"pair": "USD/KMF",
"date": "2026-06-02",
"buying": null,
"selling": null,
"mid": 422.34,
"midMethod": "published",
"inverseMid": 0.002368,
"rateType": "derived",
"warnings": [],
"source": {
"name": "BCC / ECB (derived daily)",
"url": "https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A",
"retrievedAt": "2026-06-02T08:00:00.000Z",
"asOfDate": "2026-06-02",
"licenseNote": "EUR/USD source: ECB Statistical Data Warehouse (free reuse with attribution). USD/KMF derived using the fixed EUR/KMF peg of 491.96775.",
"derivationNote": "USD/KMF = 491.96775 ÷ ECB daily EUR/USD reference rate. The EUR/KMF peg is fixed by French Treasury / EU treaty; derivation is exact, not estimated."
}
}

Field reference

FieldMeaning
country / centralBankISO 3166-1 alpha-2 country code + issuing bank abbreviation
baseCurrency / quoteCurrency / pairISO 4217 codes. pair = base/quote. Read as: "price of 1 baseCurrency in quoteCurrency."
dateThe rate's as-of date (ISO 8601, YYYY-MM-DD)
buying / selling / midRates as published. null where the source doesn't publish that leg. BoT, BNR, NBE, and BRB publish all three. Comoros and Djibouti rates are derived from a fixed peg — no bid/ask spread exists, so buying and selling are always null for those rows; use mid.
midMethodHow the mid was obtained: published (bank's own figure), midpoint (computed as (buy+sell)/2), or unavailable
inverseMid1/mid — units of base per 1 quote (e.g. ETB per USD)
rateTypeofficial (BNR, NBE), interbank (BoT), derived (KMF/DJF — see below). Rates of different types are not directly comparable.
warningsData-quality flags, e.g. buying_gt_selling, mid_out_of_range
idDeterministic natural key (country:baseCurrency:date:rateType) — safe to use for upsert/dedup
sourceFull attribution and provenance block: bank name, URL, retrieval timestamp, as-of date, licence note

Coverage and source notes

CountryBankRate typebuying / sellingHistorical depth
Tanzania (TZ)Bank of Tanzania (BoT)interbank — daily HTML table✓ publishedAvailable; arbitrary date range via POST form
Rwanda (RW)National Bank of Rwanda (BNR)official — JSON API, 71+ currencies✓ publishedUSD back to 2015+ via BNR's own history endpoint
Ethiopia (ET)National Bank of Ethiopia (NBE)official — JSON API, 19 currencies✓ publishedPer-date API — any date with data (~1 req/sec, long ranges take proportional time)
Burundi (BI)Banque de la République du Burundi (BRB)official — HTML table✓ publishedNone (historical mode skips BRB gracefully)
Comoros (KM)BCC / ECBderived — see notenull (EUR peg, no spread)Back to 1999-01-04 (ECB EUR/USD series start)
Djibouti (DJ)BCD (USD currency board)derived — see notenull (USD peg, no spread)Any date (constant value — 177.721 DJF/USD)

Why are Comoros and Djibouti rows derived? Both currencies have fixed pegs with no independent bid/ask spread:

  • KMF (Comoros): permanently pegged to EUR at 491.96775 by French Treasury / EU treaty. USD/KMF is derived as 491.96775 ÷ ECB daily EUR/USD. Back-history available to 1999.
  • DJF (Djibouti): USD currency board peg at 177.721 DJF/USD (confirmed on BCD homepage). The rate is constant for any date; buying and selling are always null.

BNR all-currencies note: BNR's API lists 71 currency codes, but most are legacy/inactive slots — only ~5 (USD, EUR, GBP, and a few others) typically have current data. Inactive codes silently return empty arrays and are skipped.

Delayed data. Rates are scraped from each institution's published page — not a real-time feed. Expect a few hours' lag after a central bank publishes its daily figure.


Cost

Pay-per-event pricing:

ModeChargeTypical cost
usd-coreOne fx-snapshot per run$0.10 per run
all-currenciesOne fx-country-day per unique (currency, country, date) row$0.015 per row
historicalOne fx-country-day per unique (currency, country, date) row$0.015 per country-day

Examples:

  • Daily usd-core for all 6 countries: $0.10/day (~$2.20/month)
  • 1 year of historical for Rwanda + Ethiopia: 2 × ~252 trading days = 504 events → **$7.56**
  • 1 year of historical for all 6 countries: ~252 × 6 = 1,512 chargeable events → **$22.68**

Legality & disclaimers

Is the data real-time? No — it is delayed. We scrape each bank's published web page; publishing lag varies by institution.

Legal basis. Official exchange rates are factual data. Copyright protects creative expression, not facts. These central-bank sites carry only a general copyright notice with no contractual restriction on reusing the published rate figures. Comoros and Djibouti rates are derived using publicly stated pegs; the EUR/USD component comes from the ECB Statistical Data Warehouse (free reuse with attribution). Every output record carries the issuing bank's name, URL, and a licence note — we reproduce values exactly as published without alteration.

Resilience. Each source is fetched independently. If one central bank's site is down, the run still returns data from the others and logs a per-source summary. BRB (Burundi) does not support historical mode and is gracefully skipped when historical is selected.

Accuracy. Values are reproduced as published. If a bank revises a figure, re-run to pick up the change; use asOfDate and retrievedAt to track versions.

Issues / feedback: use the Issues tab on the actor page.

This is not legal or financial advice. Verify rates against the issuing central bank before acting on them.