Africa's Borders Have Stories
Every city in East and Central Africa carries layers of names. Kinshasa was Léopoldville. Kisangani was Stanleyville. Lubumbashi was Élisabethville. Before all of those, they had indigenous names in Kikongo, Kiluba, and Lokele.
These aren't just trivia — they're essential for anyone working with historical records, genealogy data, colonial-era documents, or research datasets that reference places by names that no longer exist on any map.
I built Mipaka API to solve the modern problem of location dropdowns. But it's become something more: a timeline of how African administrative boundaries evolved through pre-colonial kingdoms, colonial occupation, and independence.
47 Eras Across 7 Countries
Every country in Mipaka has a chain of historical eras — each with a name, date range, type (pre-colonial, colonial, independence, current), and notes:
GET /api/v1/countries/CD/eras/
[
{
"name": "Kingdom of Kongo",
"era_type": "precolonial",
"started": "~1390",
"ended": "1914",
"notes": "Central African kingdom in western Congo basin..."
},
{
"name": "Congo Free State",
"era_type": "colonial",
"colonial_power": "belgian",
"started": "1885",
"ended": "1908",
"notes": "Personal property of King Leopold II..."
},
{
"name": "Belgian Congo",
"era_type": "colonial",
"started": "1908",
"ended": "1960"
},
{
"name": "Republic of the Congo (Léopoldville)",
"era_type": "independence",
"started": "1960",
"ended": "1964"
},
// ... Republic of Zaire (1971-1997) ...
{
"name": "Democratic Republic of the Congo",
"era_type": "current",
"started": "1997"
}
]
DRC alone has 11 eras — five pre-colonial kingdoms running concurrently (Kongo, Luba, Lunda, Kuba, Azande), each used to attribute city names and territories to the specific kingdom that controlled them, plus six successive administrative periods from the Congo Free State to today.
Historical Place Names
Every major city can be queried for its names across eras:
GET /api/v1/divisions/{kinshasa_id}/names/
[
{
"name": "Nshasa",
"language": "Kikongo",
"name_type": "indigenous",
"era": "Kingdom of Kongo",
"etymology": "Original Teke fishing village on the Congo River"
},
{
"name": "Léopoldville",
"language": "French",
"name_type": "colonial",
"era": "Congo Free State",
"etymology": "Stanley's trading post, 1881"
},
{
"name": "Léopoldville",
"language": "French",
"name_type": "colonial",
"era": "Belgian Congo"
}
]
Some Favorites from the Dataset
| Modern Name | Colonial Name | Pre-Colonial | Country |
|---|---|---|---|
| Kinshasa | Léopoldville | Nshasa (Kikongo) | 🇨🇩 DRC |
| Kisangani | Stanleyville | Boyoma (Lokele) | 🇨🇩 DRC |
| Lubumbashi | Élisabethville | — (Luba territory) | 🇨🇩 DRC |
| Kampala | Kampala | Kasozi k'Empala (Luganda) | 🇺🇬 Uganda |
| Jinja | Ripon Falls | Jinja — "stone" (Lusoga) | 🇺🇬 Uganda |
| Nairobi | Nairobi | Enkare Nyorobi — "cool waters" (Maasai) | 🇰🇪 Kenya |
| Mombasa | Mombasa | Mvita — "island of war" (Swahili) | 🇰🇪 Kenya |
| Dar es Salaam | Dar es Salaam | Mzizima — "healthy town" (Swahili) | 🇹🇿 Tanzania |
| Kigali | Kigali | Kigali — "hill of many" (Kinyarwanda) | 🇷🇼 Rwanda |
| Butare | Astrida | Butare (Kinyarwanda) | 🇷🇼 Rwanda |
| Bujumbura | Usumbura | Bujumbura (Kirundi) | 🇧🇮 Burundi |
Congo's Six Administrative Eras
The DRC is the most dramatic example. The country's internal borders were redrawn with almost every regime change:
1910 — Congo Free State: 12 districts under Leopold's rubber terror
GET /api/v1/divisions/?country=CD&level=100&q=district
1933 — Belgian Congo: Reorganized into 6 provinces and 16 districts
GET /api/v1/divisions/?country=CD&level=100
# Returns provinces from each historical era
1966 — Post-Independence: 9 provinces (Léopoldville renamed Kinshasa)
1988 — Zaire: 11 regions under Mobutu (Shaba, Bas-Zaïre, Haut-Zaïre...)
1997 — DRC Restored: 11 provinces reverted to pre-Mobutu names
2015 — Current: Split into 26 provinces (today's structure)
All of these are queryable. You can trace how Katanga became Shaba, then went back to being split into Haut-Katanga, Lualaba, Haut-Lomami, and Tanganyika.
Uganda's Five Kingdoms
Uganda's pre-colonial history is dominated by five kingdoms that were abolished in 1967 and (mostly) restored in the 1990s as cultural institutions:
GET /api/v1/divisions/?country=UG&level=100
[
{
"name": "Buganda",
"description": "Largest and most influential kingdom; 52 clans under the Kabaka. Capital at Mengo (Kampala). Abolished 1967, restored 1993. Current ruler: Kabaka Ronald Muwenda Mutebi II"
},
{
"name": "Bunyoro-Kitara",
"description": "One of the oldest kingdoms in East Africa, traces origins to the Bachwezi dynasty. Capital at Hoima. Abolished 1967, restored 1993."
},
{
"name": "Toro",
"description": "Founded c. 1830 when Prince Kaboyo broke away from Bunyoro. King Oyo crowned at age 3 in 1995."
},
{
"name": "Ankole",
"description": "NOT officially restored due to Bairu vs Bahima disagreements."
},
{
"name": "Busoga",
"description": "Confederation of chieftainships. Kyabazinga title rotates among clan chiefs."
}
]
Each kingdom is stored as a historical division (level 100) with is_active=false, complete with descriptions about their founding, abolition, and current status.
Who Uses Historical Border Data?
This isn't just an academic exercise. Real use cases:
- Genealogy platforms — Birth certificates from "Élisabethville" need to map to modern Lubumbashi
- Historical research — Datasets from the 1950s reference Belgian Congo districts that don't exist anymore
- Government modernization — Kenya's 2010 constitution replaced 8 provinces with 47 counties; old records still reference the provinces
- Education — Interactive tools showing how borders evolved
- Journalism — Contextualizing place references in historical documents
The Numbers
| Count | |
|---|---|
| Countries | 7 |
| Total divisions | 88,000+ |
| Historical eras | 47 |
| Historical place names | 124 |
| DRC historical divisions | 117 across 6 eras |
| Kenya historical divisions | 167 (8 provinces + 159 districts) |
| Uganda kingdoms | 5 |
Try It
Try the live explorer at mipaka.dev — pick a country and explore historical eras, name changes, and division hierarchies in real time.
Léopoldville is gone from every map. But in Mipaka, you can still find it — and trace the exact moment it became Kinshasa.
Links
- Website: mipaka.dev
- API Docs: api.mipaka.dev/api/docs/
- API on RapidAPI: rapidapi.com/ceddyville/api/mipaka — free tier available
- GitHub: github.com/ceddyville/mipaka-api — MIT license, PRs welcome
The historical data is especially thin for South Sudan and Tanzania — if you have expertise in those regions, contributions are welcome.
Next in the Series
This is Part 3 of the Mipaka API series. Missed the earlier posts? Start with Part 1: Mipaka: A Free REST API for 100K+ Administrative Divisions Across East Africa or catch up on Part 2: Mipaka API Update: 47 Historical Eras, 124 Colonial-Era Place Names, and DRC's Complete Administrative History.
Next up:
- Part 4: Building Location Dropdowns for African Apps (React + Vue tutorial)
Follow me to catch the next post!
Mipaka — every border, one API.
Top comments (0)