Reference
Signals
Use country signals for a compact current snapshot across indicators, FX, local prices, transport, grid conditions, climate, humanitarian displacement, disaster alerts, markets, trade, and government context.
Country Signals
/v1/countries/{country_code}/signalsReturns a compact current snapshot for one country.
This endpoint is the simplest way to combine:
- latest selected macro and infrastructure indicators
- latest local fuel and food price notices where official country sources exist
- latest power-system condition signals where official operators publish current status
- latest airport and port operations where official operators publish monthly traffic
- latest weather and rainfall signals where trusted current climate sources exist
- latest humanitarian displacement signals where UNHCR publishes country-of-asylum totals
- latest disaster alerts where GDACS flags an active country-linked event
- latest FX rates tied to the country
- latest commodity benchmark prices used as global reference signals
- latest exchange-level market snapshots when country-linked market coverage is available
- compact trade context
- compact government context
Signals can now mix:
- slower annual backbone metrics
- fresher monthly operational metrics
- central-bank published current rates where a country source is wired in
- central-bank published current bill or money-market rates where a country source is wired in
- central-bank published current rates where a country or currency-union source is wired in
- official local price notices where a regulator publishes current retail prices
- official local food price notices where a country source publishes current wholesale staples
- official grid and outage status signals where a national operator publishes current system conditions
- official airport and port traffic signals where operators publish monthly throughput or movement totals
- daily weather and rolling rainfall signals where a current climate source is wired in
- latest UNHCR displacement counts where official annual country totals are available
- current disaster alerts where GDACS publishes an active country-linked event
Monthly/latest observations include as_of_period so clients can tell which month the signal actually represents. Location-specific signals also include location_name.
Use it when you want a fresh operational summary without composing several endpoint families yourself.
Requires an API key.
country_codestringrequiredng, ke, zacurl "https://api.africa-api.com/v1/countries/ke/signals" \
-H "Authorization: Bearer $AFRICA_API_KEY"{
"data": {
"country": {
"code": "ke",
"name": "Kenya",
"capital": "Nairobi",
"region": "East Africa"
},
"observations": [
{
"metric_key": "inflation_cpi_latest_yoy_pct",
"name": "Inflation (Latest YoY)",
"value": 4.8,
"unit": "percent",
"year": 2025,
"frequency": "monthly",
"source": "cbk_ke_signals",
"freshness": "current",
"as_of_period": "2026-01",
"retrieved_at": "2026-03-09T18:00:00Z"
},
{
"metric_key": "policy_rate_pct",
"name": "Policy Rate (Latest)",
"value": 8.75,
"unit": "percent",
"year": 2026,
"frequency": "ad_hoc",
"source": "cbk_ke_signals",
"freshness": "recent",
"as_of_period": "2026-02-10",
"retrieved_at": "2026-03-09T18:00:00Z"
},
{
"metric_key": "petrol_price_local_per_liter",
"name": "Petrol Price (Latest)",
"value": 186.31,
"unit": "local_currency_per_liter",
"year": 2026,
"frequency": "monthly",
"source": "epra_ke_fuel_signals",
"freshness": "current",
"as_of_period": "2026-03",
"location_name": "Nairobi",
"retrieved_at": "2026-03-15T09:00:00Z"
},
{
"metric_key": "maize_wholesale_price_local_per_kg",
"name": "Maize Wholesale Price (Latest)",
"value": 70.74,
"unit": "local_currency_per_kg",
"year": 2026,
"frequency": "monthly",
"source": "world_bank_ke_food_signals",
"freshness": "current",
"as_of_period": "2026-03",
"location_name": "Market Average",
"retrieved_at": "2026-03-21T09:00:00Z"
},
{
"metric_key": "precipitation_7d_mm",
"name": "Precipitation (7 Day Total)",
"value": 16.0,
"unit": "millimeters",
"year": 2026,
"frequency": "ad_hoc",
"source": "nasa_power_climate_signals",
"freshness": "current",
"as_of_period": "2026-03-05 to 2026-03-11",
"retrieved_at": "2026-03-16T09:00:00Z"
},
{
"metric_key": "refugees_hosted_total",
"name": "Refugees Hosted",
"value": 626546,
"unit": "persons",
"year": 2025,
"frequency": "annual",
"source": "unhcr_displacement_signals",
"freshness": "recent",
"retrieved_at": "2026-03-16T09:00:00Z"
},
{
"metric_key": "load_shedding_stage",
"name": "Load Shedding Stage (Latest)",
"value": 0,
"unit": "stage",
"year": 2026,
"frequency": "ad_hoc",
"source": "eskom_za_grid_signals",
"freshness": "current",
"as_of_period": "2026-03-12",
"retrieved_at": "2026-03-12T18:00:00Z"
},
{
"metric_key": "mobile_subscriptions_per_100",
"name": "Mobile Cellular Subscriptions",
"value": 118.6,
"unit": "subscriptions_per_100_people",
"year": 2024,
"frequency": "annual",
"source": "world_bank_wdi",
"freshness": "recent",
"retrieved_at": "2026-03-09T11:39:09Z"
}
],
"disaster_alerts": [
{
"event_key": "1102919:1:fl:ke",
"event_type": "FL",
"name": "Flooding in Kenya",
"description": "Heavy rain and flooding conditions",
"alert_level": "orange",
"alert_score": 2.4,
"severity_value": 120.0,
"severity_text": "Heavy rain",
"severity_unit": "mm/24h",
"event_from_at": "2026-03-13T09:00:00Z",
"event_to_at": "2026-03-16T09:00:00Z",
"source_modified_at": "2026-03-13T10:30:00Z",
"report_url": "https://www.gdacs.org/report.aspx?eventid=1102919",
"details_url": "https://www.gdacs.org/report.aspx?eventid=1102919&episodeid=1",
"source_system": "GDACS",
"source": "gdacs_disaster_alerts",
"freshness": "current"
}
],
"commodity_benchmarks": [
{
"commodity_key": "crude_oil_benchmark_usd_per_bbl",
"commodity_name": "Crude Oil Benchmark",
"unit": "usd_per_bbl",
"currency_code": "USD",
"price_date": "2026-01-01",
"price_value": 74.8,
"source": "world_bank_pink_sheet_signals",
"freshness": "recent"
},
{
"commodity_key": "maize_benchmark_usd_per_mt",
"commodity_name": "Maize Benchmark",
"unit": "usd_per_mt",
"currency_code": "USD",
"price_date": "2026-01-01",
"price_value": 215.0,
"source": "world_bank_pink_sheet_signals",
"freshness": "recent"
}
],
"fx_rates": [
{
"base_currency": "USD",
"quote_currency": "KES",
"rate": 129.44,
"date": "2026-03-08",
"source": "fx_usd_daily",
"freshness": "current"
}
],
"market_snapshots": [],
"trade": {
"latest_year": 2024,
"granular_latest_year": 2024,
"granular_years": [2023, 2024]
},
"government": {
"current_head_of_state": {
"leader_name": "William Ruto",
"role_type": "head_of_state"
}
},
"generated_at": "2026-03-09T18:00:00Z"
}
}Current Coverage Today
Use this table as the live coverage map for the signals layer:
| Country or scope | Live signal families |
|---|---|
| Kenya | central bank, fuel prices, food prices, climate |
| Morocco | central bank |
| Namibia | central bank |
| Nigeria | central bank, grid, climate |
| South Africa | central bank, grid, fuel prices, airport traffic, airport on-time performance, port operations, climate |
| Tanzania | central bank, climate |
| Tunisia | central bank, climate |
| Countries with active GDACS alerts | disaster alerts |
| Countries with UNHCR totals | displacement context |
| All 54 countries | historical highlight observations in the same payload |
For a broader product view, see Coverage.
Service Coverage Matrix
| Country or scope | Macro | Prices | Power | Airports | Ports | Climate | Risk context |
|---|---|---|---|---|---|---|---|
| Kenya | Yes | Fuel and maize | - | - | Yes | Yes | GDACS and UNHCR when present |
| Morocco | Yes | - | - | - | - | Historical backbone | GDACS and UNHCR when present |
| Namibia | Yes | - | - | - | - | Historical backbone | GDACS and UNHCR when present |
| Nigeria | Yes | - | Yes | - | - | Yes | GDACS and UNHCR when present |
| South Africa | Yes | Fuel | Yes | Yes | Yes | Yes | GDACS and UNHCR when present |
| Tanzania | Yes | - | - | - | - | Yes | GDACS and UNHCR when present |
| Tunisia | Yes | - | - | - | - | Yes | GDACS and UNHCR when present |
| WAEMU countries | BCEAO policy rates | - | - | - | - | Historical backbone | GDACS and UNHCR when present |
| CEMAC countries | BEAC policy rates | - | - | - | - | Historical backbone | GDACS and UNHCR when present |
South Africa Full Example
curl "https://api.africa-api.com/v1/countries/za/signals" \
-H "Authorization: Bearer $AFRICA_API_KEY"{
"country": {
"code": "za",
"name": "South Africa",
"capital": "Pretoria",
"region": "Southern Africa"
},
"observations": [
{
"metric_key": "policy_rate_pct",
"value": 7.5,
"unit": "percent",
"frequency": "ad_hoc",
"source": "sarb_za_signals",
"as_of_period": "2026-01-30"
},
{
"metric_key": "petrol_price_local_per_liter",
"value": 20.3,
"unit": "local_currency_per_liter",
"frequency": "monthly",
"source": "dmre_za_fuel_signals",
"as_of_period": "2026-03",
"location_name": "Gauteng Zone 9C"
},
{
"metric_key": "load_shedding_stage",
"value": 0,
"unit": "stage",
"frequency": "ad_hoc",
"source": "eskom_za_grid_signals",
"as_of_period": "2026-03-12"
},
{
"metric_key": "airport_passengers_ytd_total",
"value": 34282784,
"unit": "passengers",
"frequency": "monthly",
"source": "acsa_za_airport_signals",
"as_of_period": "2026-01"
},
{
"metric_key": "airport_on_time_performance_latest_month_pct",
"value": 90.66,
"unit": "percent",
"frequency": "monthly",
"source": "acsa_za_on_time_performance_signals",
"as_of_period": "2026-02"
},
{
"metric_key": "port_container_throughput_latest_teu",
"value": 373644,
"unit": "teu",
"frequency": "monthly",
"source": "tnpa_za_port_signals",
"as_of_period": "2025-06"
},
{
"metric_key": "precipitation_7d_mm",
"value": 9.1,
"unit": "millimeters",
"frequency": "ad_hoc",
"source": "nasa_power_climate_signals",
"as_of_period": "2026-03-05 to 2026-03-11"
}
],
"fx_rates": [
{
"base_currency": "USD",
"quote_currency": "ZAR",
"rate": 15.58,
"date": "2026-03-14",
"source": "fx_usd_daily"
}
],
"market_snapshots": [
{
"exchange_code": "JSE",
"latest_trade_date": "2026-03-14",
"source": "jse_yahoo_eod"
}
],
"trade": {
"latest_year": 2024,
"granular_latest_year": 2024
},
"government": {
"current_head_of_state": {
"leader_name": "Cyril Ramaphosa",
"role_type": "head_of_state"
}
}
}When To Use Signals
Use /v1/countries/{country_code}/signals when you need:
- a dashboard card payload
- an agent-friendly current snapshot
- a compact country summary for operational use
- benchmark commodity context without querying another endpoint family
Use /v1/data when you need:
- full time series
- multi-country comparisons
- explicit metric/frequency filtering
- direct source pinning
Transport operations now include South Africa airport and port signals plus Kenya port signals, so /v1/countries/za/signals and /v1/countries/ke/signals both carry official live logistics context.
Example for a latest monthly signal through the canonical observation endpoint:
curl "https://api.africa-api.com/v1/data?country_code=ke&metric_key=inflation_cpi_latest_yoy_pct&latest=true" \
-H "Authorization: Bearer $AFRICA_API_KEY"Freshness Model
Each signal carries a simple freshness label:
currentrecenthistorical
That label is derived from frequency, year, retrieved timestamp, or market/FX trade date.
Signals do not replace the historical observation layer. They are a convenience view over the platform's latest useful country-level state.
Where a central-bank source is available, /signals will prefer that country-specific source over a broader monthly feed for the same latest-signal metric. Today that includes Kenya, South Africa, and Nigeria.
Some current price signals are local or market-specific rather than national. Kenya fuel prices currently reflect the official EPRA Nairobi notice, South Africa fuel prices reflect the official DMRE Gauteng reference zone and national paraffin retail cap, and Kenya food prices reflect the latest World Bank Kenya market estimates. These carry location_name and other source context so clients can label them accurately.
Some current operational signals are national system statements rather than economic statistics. South Africa power-system signals come from Eskom’s power status updates, Nigeria power-system signals come from NISO’s daily grid statement, South Africa airport traffic and on-time performance come from ACSA’s monthly operational statistics, and South Africa port operations come from TNPA’s monthly national port statistics. These are best treated as operational context rather than long-run structural indicators.
Some current climate signals are daily point-based estimates rather than annual national indicators. NASA POWER temperature, humidity, and rolling rainfall values are included as current operational context and are best interpreted as recent geospatial climate signals.
Some current risk signals are event-driven rather than periodic statistics. GDACS disaster alerts indicate active country-linked floods, cyclones, earthquakes, wildfires, volcanic events, and related emergencies when GDACS currently reports them.
Commodity benchmarks are global reference series. They are included in /signals as current context, not as country-specific observations.