africaAPI

Reference

Countries

Get all 54 African countries as reference records, detailed country objects, curated profiles, and current country signals through one API.

African Countries API

Use this page when you need one dependable country layer for onboarding flows, profile pages, search, analytics filters, and country snapshots across all 54 African countries.

This page covers:

  • country discovery and filtering
  • detailed country records
  • curated country profiles
  • current country signals

Choosing The Country Routes

  • Use /v1/countries for country discovery and reference records.
  • Use /v1/countries/{country_code} for the full country detail record.
  • Use /v1/countries/{country_code}/profile for a curated summary that blends multiple domains.
  • Use /v1/countries/{country_code}/signals for the latest practical country snapshot.

List Countries

GET/v1/countries

Returns country metadata for Africa.

Authentication required.

paginateboolean
Set true to enable paginated results
pageinteger
Page number when pagination is enabled
per_pageinteger
Items per page (1-100)
regionstring
Filter by region alias such as west, east, north, south, central
sortstring
Sort by name, area, or region; prefix with - for descending
Request
curl "https://api.africa-api.com/v1/countries" \
  -G \
  -d "paginate=true" \
  -d "page=1" \
  -d "per_page=5" \
  -d "region=west" \
  -d "sort=name" \
  -H "Authorization: Bearer $AFRICA_API_KEY"
Response
{
  "data": [
    {
      "id": "gh",
      "name": "Ghana",
      "official_name": "Republic of Ghana",
      "capital": "Accra",
      "region": "West Africa",
      "subregion": "Western Africa",
      "area_km2": 238533,
      "currencies": ["GHS"],
      "languages": ["eng"],
      "flag": "GH"
    }
  ],
  "meta": {
    "total": 16,
    "page": 1,
    "per_page": 5,
    "total_pages": 4
  }
}

Get Country By Code

GET/v1/countries/{country_code}

Returns a detailed country record by ISO 3166-1 alpha-2 code.

country_codestringrequired
ISO alpha-2 code such as ng, ke, za
Request
curl "https://api.africa-api.com/v1/countries/ng" \
  -H "Authorization: Bearer $AFRICA_API_KEY"
Response
{
  "data": {
    "id": "ng",
    "name": "Nigeria",
    "official_name": "Federal Republic of Nigeria",
    "capital": "Abuja",
    "region": "West Africa",
    "subregion": "Western Africa",
    "area_km2": 923768,
    "iso3": "NGA",
    "timezone": "Africa/Lagos",
    "calling_code": "+234",
    "flag": "NG",
    "coordinates": {
      "latitude": 9.082,
      "longitude": 8.6753
    },
    "borders": ["bj", "cm", "ne", "td"],
    "currencies": [
      {
        "code": "NGN",
        "name": "Nigerian naira",
        "symbol": "NGN"
      }
    ],
    "languages": [
      {
        "code": "eng",
        "name": "English"
      }
    ]
  }
}

Get Country Profile

GET/v1/countries/{country_code}/profile

Returns a curated summary of selected indicators for one country.

This endpoint is a convenience layer on top of /v1/data. It also includes a focused trade summary sourced from the dedicated /v1/trade/overview/{country_code} domain. It also includes a compact government-history block when current leadership data is available. It also includes current cabinet members when cabinet data is available. It now also includes the latest election summary when election data is available. It also exposes selected transport and connectivity highlights when those observations are available.

Request
curl "https://api.africa-api.com/v1/countries/ke/profile" \
  -H "Authorization: Bearer $AFRICA_API_KEY"
Response
{
  "data": {
    "country": {
      "code": "ke",
      "name": "Kenya",
      "capital": "Nairobi",
      "region": "East Africa"
    },
    "highlights": {
      "population_total": {
        "value": 55100586,
        "year": 2024,
        "source": "world_bank_wdi",
        "unit": "persons"
      },
      "median_age_years": {
        "value": 20.4,
        "year": 2024,
        "source": "un_wpp",
        "unit": "years"
      },
      "unemployment_pct": {
        "value": 5.7,
        "year": 2024,
        "source": "ilo_ilostat",
        "unit": "percent"
      },
      "agricultural_land_1000ha": {
        "value": 30350,
        "year": 2023,
        "source": "faostat_agriculture",
        "unit": "thousand_hectares"
      },
      "access_to_clean_fuels_pct": {
        "value": 30.8,
        "year": 2023,
        "source": "world_bank_wdi",
        "unit": "percent"
      },
      "mobile_subscriptions_per_100": {
        "value": 118.6,
        "year": 2024,
        "source": "world_bank_wdi",
        "unit": "subscriptions_per_100_people"
      },
      "paved_roads_pct": {
        "value": 14.2,
        "year": 2022,
        "source": "world_bank_wdi",
        "unit": "percent"
      },
      "pm25_air_pollution_ug_per_m3": {
        "value": 18.4,
        "year": 2023,
        "source": "world_bank_wdi",
        "unit": "micrograms_per_cubic_meter"
      },
      "government_effectiveness_estimate": {
        "value": -0.41,
        "year": 2024,
        "source": "world_bank_wdi",
        "unit": "estimate"
      }
    },
    "trade": {
      "latest_year": 2024,
      "granular_latest_year": 2024,
      "granular_years": [2023, 2024],
      "latest_snapshot": {
        "year": 2024,
        "exports_goods_services_usd": 15420000000,
        "imports_goods_services_usd": 18610000000,
        "trade_balance_usd": -3190000000,
        "exports_goods_services_pct_gdp": 12.1,
        "imports_goods_services_pct_gdp": 14.6,
        "current_account_balance_pct_gdp": -3.4,
        "sources": {
          "exports_goods_services_usd": "world_bank_wdi",
          "imports_goods_services_usd": "world_bank_wdi",
          "trade_balance_usd": "world_bank_wdi"
        }
      },
      "top_export_partners": [
        {
          "partner_country_code": "ug",
          "partner_country_name": "Uganda",
          "flow_type": "export",
          "total_value_usd": 1210000000
        }
      ],
      "top_import_partners": [
        {
          "partner_country_code": "cn",
          "partner_country_name": "China",
          "flow_type": "import",
          "total_value_usd": 3180000000
        }
      ],
      "top_export_products": [
        {
          "product_code": "09",
          "product_name": "Coffee, tea, mate and spices",
          "classification": "HS",
          "flow_type": "export",
          "total_value_usd": 730000000
        }
      ],
      "top_import_products": [
        {
          "product_code": "84",
          "product_name": "Machinery and mechanical appliances",
          "classification": "HS",
          "flow_type": "import",
          "total_value_usd": 1110000000
        }
      ]
    },
    "government": {
      "current_head_of_state": {
        "wikidata_id": "Q2",
        "name": "William Ruto",
        "office_name": "President of Kenya",
        "role_type": "head_of_state",
        "start_date": "2022-09-13",
        "source": "wikidata_government_history"
      },
      "current_head_of_government": {
        "wikidata_id": "Q2",
        "name": "William Ruto",
        "office_name": "President of Kenya",
        "role_type": "head_of_government",
        "start_date": "2022-09-13",
        "source": "wikidata_government_history"
      },
      "cabinet_member_count": 2,
      "current_cabinet_members": [
        {
          "wikidata_id": "Q1234",
          "name": "John Mbadi",
          "office_name": "Cabinet Secretary for National Treasury",
          "role_category": "minister",
          "party_name": "ODM",
          "start_date": "2024-08-08",
          "source": "wikidata_current_governments"
        }
      ],
      "latest_election": {
        "wikidata_id": "Q123",
        "name": "2022 Kenyan general election",
        "election_scope": "general",
        "election_date": "2022-08-09",
        "office_name": "President of Kenya",
        "election_status": "completed",
        "successful_candidate_name": "William Ruto",
        "source": "wikidata_elections"
      },
      "active_policy_count": 14,
      "latest_policy": {
        "wikidata_id": "Q456",
        "title": "Kenya Climate Change Act",
        "document_type": "law",
        "policy_status": "active",
        "published_at": "2016-05-27",
        "source": "wikidata_policies"
      },
      "latest_policy_event": {
        "event_key": "Q456:implemented:2016-06-01",
        "policy_wikidata_id": "Q456",
        "title": "Kenya Climate Change Act",
        "document_type": "law",
        "event_type": "implemented",
        "event_date": "2016-06-01",
        "summary": "Kenya Climate Change Act entered into force",
        "source": "wikidata_policies"
      }
    }
  }
}

Get Country Signals

GET/v1/countries/{country_code}/signals

Returns a compact current snapshot for one country.

Use this when you want the latest practical country context without joining:

  • current macro and infrastructure observations
  • FX rates
  • exchange market snapshots
  • compact trade context
  • compact government context

Signals may include both annual and monthly observations. Monthly/latest metrics expose as_of_period so clients can distinguish the current-signal layer from the historical backbone.

This is a convenience view. For full history and broader filtering, keep using /v1/data.

Request
curl "https://api.africa-api.com/v1/countries/ke/signals" \
  -H "Authorization: Bearer $AFRICA_API_KEY"
Response
{
  "data": {
    "country": {
      "code": "ke",
      "name": "Kenya",
      "capital": "Nairobi",
      "region": "East Africa"
    },
    "observations": [
      {
        "metric_key": "inflation_cpi_latest_yoy_pct",
        "value": 4.8,
        "year": 2025,
        "source": "world_bank_gem_signals",
        "freshness": "current",
        "as_of_period": "2025-12"
      }
    ],
    "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
    },
    "government": {
      "current_head_of_state": {
        "name": "William Ruto",
        "role_type": "head_of_state"
      }
    },
    "generated_at": "2026-03-09T18:00:00Z"
  }
}

Caching

GET /v1/countries returns ETag and Cache-Control: public, max-age=300. Send If-None-Match to receive 304 Not Modified when the list is unchanged.

On this page