Central Africa FX Rates — Official Bank Exchange Rates API
Pricing
from $0.10 / full market snapshot
Central Africa FX Rates — Official Bank Exchange Rates API
Official daily FX rates from Central African central banks — XAF covering all 6 CEMAC nations via BEAC, plus CDF (DR Congo) and AOA (Angola). XAF is euro-pegged at 655.957 XAF/EUR, same mechanics as the West Africa actor. Every record source-attributed.
Pricing
from $0.10 / full market snapshot
Rating
0.0
(0)
Developer
Simon M
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Central African FX Rates — Daily CFA Franc (XAF) Exchange Rates
Official USD/XAF exchange rates for all 6 CEMAC member states — Cameroon, Central African Republic, Chad, Republic of Congo, Equatorial Guinea, and Gabon — derived daily from the ECB Statistical Data Warehouse using the fixed EUR/XAF peg of 655.957.
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 directly from ECB's public API, with historical depth back to 1999.
Part of a regional family: West African FX Rates · East African FX Rates · Southern African FX Rates · Central African FX Rates (this actor) · North African actor in the same normalised schema.
Modes
| Mode | What you get | When to use it |
|---|---|---|
usd-core (default) | One USD/XAF rate per country, latest available date | Daily monitoring, dashboards, FX baskets |
all-currencies | Latest USD/XAF rate per country (same as usd-core — see note) | Cross-country comparisons |
historical | USD/XAF rate per country, every trading day in a date range | Backtesting, time-series analysis, academic research |
Note on all-currencies: The XAF rate is derived solely from the ECB EUR/USD series combined with the fixed EUR/XAF peg of 655.957. Only the USD bilateral rate can be freshly computed each trading day; all-currencies therefore returns the same rows as usd-core. The EUR/XAF rate is constant at 655.957 and is not included as a separate row.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | usd-core | See modes table above. |
countries | array | all 6 | ISO 3166-1 alpha-2 codes to include. CM Cameroon, CF Central African Republic, TD Chad, CG Republic of Congo, GQ Equatorial Guinea, GA Gabon. |
dateFrom | string | — | Start date (YYYY-MM-DD). Required in historical mode. Available back to 1999-01-04. |
dateTo | string | — | End date (YYYY-MM-DD). Required in historical mode. |
maxItems | integer | 5000 | Hard cap on output rows. |
Output
One record per country per run (in usd-core / all-currencies), or per country-day (in historical).
{"id": "CM:USD:2026-06-03:derived","country": "CM","centralBank": "BEAC","baseCurrency": "USD","quoteCurrency": "XAF","pair": "USD/XAF","date": "2026-06-03","buying": null,"selling": null,"mid": 563.1016,"midMethod": "published","inverseMid": 0.001776,"rateType": "derived","sharedRate": true,"warnings": [],"source": {"name": "BEAC / ECB (derived daily)","url": "https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A","retrievedAt": "2026-06-03T08:00:00.000Z","asOfDate": "2026-06-03","licenseNote": "EUR/USD source: ECB Statistical Data Warehouse (free reuse with attribution). USD/XAF derived using the fixed EUR/XAF peg of 655.957.","derivationNote": "USD/XAF = 655.957 ÷ ECB daily EUR/USD reference rate. The EUR/XAF peg is fixed by treaty; derivation is exact, not estimated."}}
Read it as: 1 USD = 563.10 XAF (derived from ECB EUR/USD on 2026-06-03 and the fixed 655.957 peg).
Field reference
| Field | Meaning |
|---|---|
country / centralBank | ISO 3166-1 alpha-2 country code + issuing bank abbreviation (BEAC for all 6) |
baseCurrency / quoteCurrency / pair | ISO 4217 codes. pair = base/quote. Read as: "price of 1 baseCurrency in quoteCurrency." |
date | The rate's as-of date (ISO 8601, YYYY-MM-DD) |
buying / selling / mid | XAF is derived from ECB EUR/USD — no bid/ask spread. buying and selling are always null; use mid. |
midMethod | How the mid was obtained: published (ECB's own EUR/USD figure) |
inverseMid | 1/mid — units of base per 1 quote (e.g. USD per XAF) |
rateType | derived — USD/XAF is computed from the fixed EUR/XAF peg and ECB EUR/USD |
sharedRate | true — all 6 CEMAC countries share the same XAF rate; rows differ only in country and id |
warnings | Data-quality flags, e.g. mid_out_of_range, non_positive_rate |
id | Deterministic natural key (country:baseCurrency:date:rateType) — safe to use for upsert/dedup |
source | Full attribution and provenance block: bank name, ECB URL, retrieval timestamp, as-of date, licence note, derivation formula |
Coverage and source notes
| Country | Bank | Rate type | buying / selling | Historical depth |
|---|---|---|---|---|
| Cameroon (CM) | BEAC | derived — EUR/XAF peg + ECB EUR/USD | null | Back to 1999-01-04 |
| Central African Republic (CF) | BEAC | derived | null | Back to 1999-01-04 |
| Chad (TD) | BEAC | derived | null | Back to 1999-01-04 |
| Republic of Congo (CG) | BEAC | derived | null | Back to 1999-01-04 |
| Equatorial Guinea (GQ) | BEAC | derived | null | Back to 1999-01-04 |
| Gabon (GA) | BEAC | derived | null | Back to 1999-01-04 |
Why are all rows derived? All 6 CEMAC member states use the Central African CFA franc (XAF) as a common currency. XAF is pegged to EUR at the fixed rate of 655.957 under the Coopération Monétaire Franco-Africaine agreement, maintained since 1948 and guaranteed by the French Treasury. After France adopted the euro in 1999, the peg transferred to EUR. The USD/XAF rate varies daily only because EUR/USD fluctuates; the EUR/XAF peg itself never changes.
No individual country publishes a separate XAF rate — BEAC issues a single rate that applies identically across all 6 states. Per-country rows are emitted for dataset consistency with the other regional actors; sharedRate: true signals that the mid value is the same across all countries for any given date.
ECB EUR/USD series: D.USD.EUR.SP00.A — the ECB's daily reference rate published each business day at approximately 16:00 CET. History starts 1999-01-04.
Delayed data. The ECB reference rate is published at ~16:00 CET and reflects the consensus of central bank surveys, not real-time trading. Intraday and overnight moves are not captured.
Cost
Pay-per-event pricing:
| Mode | Charge | Typical cost |
|---|---|---|
usd-core | One fx-snapshot per run | $0.10 per run |
all-currencies | One fx-country-day per unique (country, date) row | $0.015 per row |
historical | One fx-country-day per unique (country, date) row | $0.015 per country-day |
Examples:
- Daily
usd-corefor all 6 countries: $0.10/day (~$2.20/month) - 1 year of
historicalfor one country (USD/XAF):252 trading days → **$3.78** - 1 year of
historicalfor all 6 countries: ~252 × 6 =1,512 events → **$22.68** - Full 25-year USD/XAF history (1999–2024):
6,500 trading days per country → **$97.50/country**
Legality & disclaimers
Is the data real-time? No — the ECB reference rate is published once per business day at approximately 16:00 CET.
Legal basis. The USD/XAF rate is derived from two public-domain sources:
- ECB Statistical Data Warehouse (
data-api.ecb.europa.eu) — the ECB explicitly provides its data for free reuse with attribution; no redistribution prohibition. - EUR/XAF peg of 655.957 — this is a treaty fact, established by the Coopération Monétaire Franco-Africaine agreement. The peg rate is a legal constant in international monetary law, not proprietary data. It is published in the Official Journal of the EU.
BEAC's own website terms (beac.int/mentions-legales) restrict redistribution of site content to non-commercial personal use. This actor does not scrape BEAC's website; it uses only the ECB API and the publicly-known treaty peg value.
Every output record carries the ECB URL, retrieval timestamp, and a derivationNote documenting the exact formula.
Why no buying / selling? The XAF rate is derived from ECB EUR/USD, which is a mid rate with no bid/ask spread. BEAC does not publish per-currency buying/selling rates via a machine-readable feed.
Resilience. The actor makes a single HTTP call to the ECB API. If ECB is unreachable, the run fails gracefully with a clear error; partial results are never silently returned.
Accuracy. The ECB EUR/USD value is reproduced as published. 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.