Reference

Signals

Query selected latest observations, exchange rates, commodity benchmarks, alerts, trade summaries, and government records for one country. Coverage and reporting periods vary by source.

Country Signals

GET/v1/countries/{country_code}/signals

Returns selected latest observations and records for one country. Available fields depend on country and source coverage.

FieldContents when available
observationsSelected indicators, local prices, grid conditions, airport and port statistics, weather estimates, and displacement totals
disaster_alertsCountry-linked events reported by GDACS
fx_ratesExchange rates tied to the country
commodity_benchmarksGlobal reference prices
market_snapshotsExchange-level market observations
tradeTrade summaries
governmentSelected government records

Records can describe different reporting periods, from daily weather estimates to annual indicators. Check frequency, as_of_period, and freshness before comparing them. An as_of_period can identify a month, date, or date range. Location-specific observations include location_name.

Requires an API key.

country_codestringrequired
ISO alpha-2 code such as ng, ke, za
Request
curl "https://api.africa-api.com/v1/countries/ke/signals" \
  -H "Authorization: Bearer $AFRICA_API_KEY"

The following excerpt illustrates selected response fields. Its values and freshness labels are examples, not a current country snapshot.

Illustrative response excerpt
{
  "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",
        "frequency": "monthly",
        "source": "cbk_ke_signals",
        "freshness": "current",
        "as_of_period": "2026-01",
        "retrieved_at": "2026-03-09T18:00:00Z"
      }
    ],
    "fx_rates": [
      {
        "base_currency": "USD",
        "quote_currency": "KES",
        "rate": 129.44,
        "date": "2026-03-08",
        "source": "fx_usd_daily",
        "freshness": "current"
      }
    ],
    "generated_at": "2026-03-09T18:00:00Z"
  }
}

Country and source coverage

This table summarizes the documented source families. It does not report source health or the age of returned observations. Check the source metadata and reporting period for the data you use. See Coverage for the broader catalog.

Country or scopeMacroPricesPowerAirportsPortsClimateRisk context
KenyaYesFuel and maize--YesYesGDACS and UNHCR when present
MoroccoYes----Annual indicators where availableGDACS and UNHCR when present
NamibiaYes----Annual indicators where availableGDACS and UNHCR when present
NigeriaYes-Yes--YesGDACS and UNHCR when present
South AfricaYesFuelYesYesYesYesGDACS and UNHCR when present
TanzaniaYes----YesGDACS and UNHCR when present
TunisiaYes----YesGDACS and UNHCR when present
WAEMU countriesBCEAO policy rates----Annual indicators where availableGDACS and UNHCR when present
CEMAC countriesBEAC policy rates----Annual indicators where availableGDACS and UNHCR when present

South Africa example

South Africa Signals
curl "https://api.africa-api.com/v1/countries/za/signals" \
  -H "Authorization: Bearer $AFRICA_API_KEY"

The following example shows selected fields inside the response's data object. Its values are illustrative and describe different reporting periods.

Illustrative selected fields
{
  "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"
    }
  }
}

Choose between signals and data

Use /v1/countries/{country_code}/signals for selected observations and records in one request. Use /v1/data for time series, multi-country comparisons, specific metric queries, and source filtering.

Example for a latest monthly signal through the canonical observation endpoint:

Latest Monthly Signal Via /v1/data
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:

  • current
  • recent
  • historical

The label is derived from frequency, year, retrieval time, or the market/FX trade date. It does not mean every value describes the same reporting period.

Use the date and source fields alongside the freshness label. Retrieval time records when data was collected; it is not necessarily the source publication date.

For selected latest-signal metrics, /signals prefers an available country-specific central-bank source over a broader monthly feed. Check the returned source field to identify the dataset used.

Some price observations are local or market-specific rather than national. Kenya fuel prices 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.

Grid and transport observations have source-specific geographic scopes and publication cadences. 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. Kenya port observations come from KPA annual Port of Mombasa performance totals. See Transport for reporting-period and geographic details.

NASA POWER temperature, humidity, and rolling rainfall values are point-based estimates. They should not be presented as annual national climate indicators. Check as_of_period for the dates represented.

GDACS disaster alerts describe country-linked events, including floods, cyclones, earthquakes, wildfires, and volcanic events. Check each alert's event dates and source links. UNHCR displacement observations are annual totals and may describe an earlier year.

Commodity benchmarks are global reference prices, not local retail or domestic producer prices.

On this page