<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cedric Ongoro</title>
    <description>The latest articles on DEV Community by Cedric Ongoro (@ceddyville).</description>
    <link>https://dev.to/ceddyville</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3834630%2F9ec2c66f-e5b1-462f-946e-113c97b37ef3.jpeg</url>
      <title>DEV Community: Cedric Ongoro</title>
      <link>https://dev.to/ceddyville</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ceddyville"/>
    <language>en</language>
    <item>
      <title>From Léopoldville to Kinshasa: How Our API Tracks 500 Years of African Border Changes</title>
      <dc:creator>Cedric Ongoro</dc:creator>
      <pubDate>Mon, 06 Apr 2026 03:30:06 +0000</pubDate>
      <link>https://dev.to/ceddyville/from-leopoldville-to-kinshasa-how-our-api-tracks-500-years-of-african-border-changes-8dd</link>
      <guid>https://dev.to/ceddyville/from-leopoldville-to-kinshasa-how-our-api-tracks-500-years-of-african-border-changes-8dd</guid>
      <description>&lt;h2&gt;
  
  
  Africa's Borders Have Stories
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://mipaka.dev" rel="noopener noreferrer"&gt;Mipaka API&lt;/a&gt; to solve the modern problem of location dropdowns. But it's become something more: &lt;strong&gt;a timeline of how African administrative boundaries evolved through pre-colonial kingdoms, colonial occupation, and independence.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  47 Eras Across 7 Countries
&lt;/h2&gt;

&lt;p&gt;Every country in Mipaka has a chain of historical eras — each with a name, date range, type (pre-colonial, colonial, independence, current), and notes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/countries/CD/eras/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Kingdom of Kongo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"precolonial"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"started"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~1390"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ended"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1914"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"notes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Central African kingdom in western Congo basin..."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Congo Free State"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"colonial"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"colonial_power"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"belgian"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"started"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1885"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ended"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1908"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"notes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Personal property of King Leopold II..."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Belgian Congo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"colonial"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"started"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1908"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ended"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1960"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Republic of the Congo (Léopoldville)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"independence"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"started"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1960"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ended"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1964"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Republic&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Zaire&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1971-1997&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Democratic Republic of the Congo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"current"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"started"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1997"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;




&lt;h2&gt;
  
  
  Historical Place Names
&lt;/h2&gt;

&lt;p&gt;Every major city can be queried for its names across eras:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/divisions/&lt;span class="o"&gt;{&lt;/span&gt;kinshasa_id&lt;span class="o"&gt;}&lt;/span&gt;/names/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Nshasa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Kikongo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"indigenous"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Kingdom of Kongo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"etymology"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Original Teke fishing village on the Congo River"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Léopoldville"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"French"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"colonial"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Congo Free State"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"etymology"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Stanley's trading post, 1881"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Léopoldville"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"French"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"colonial"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Belgian Congo"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Some Favorites from the Dataset
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modern Name&lt;/th&gt;
&lt;th&gt;Colonial Name&lt;/th&gt;
&lt;th&gt;Pre-Colonial&lt;/th&gt;
&lt;th&gt;Country&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kinshasa&lt;/td&gt;
&lt;td&gt;Léopoldville&lt;/td&gt;
&lt;td&gt;Nshasa (Kikongo)&lt;/td&gt;
&lt;td&gt;🇨🇩 DRC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kisangani&lt;/td&gt;
&lt;td&gt;Stanleyville&lt;/td&gt;
&lt;td&gt;Boyoma (Lokele)&lt;/td&gt;
&lt;td&gt;🇨🇩 DRC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lubumbashi&lt;/td&gt;
&lt;td&gt;Élisabethville&lt;/td&gt;
&lt;td&gt;— (Luba territory)&lt;/td&gt;
&lt;td&gt;🇨🇩 DRC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kampala&lt;/td&gt;
&lt;td&gt;Kampala&lt;/td&gt;
&lt;td&gt;Kasozi k'Empala (Luganda)&lt;/td&gt;
&lt;td&gt;🇺🇬 Uganda&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jinja&lt;/td&gt;
&lt;td&gt;Ripon Falls&lt;/td&gt;
&lt;td&gt;Jinja — "stone" (Lusoga)&lt;/td&gt;
&lt;td&gt;🇺🇬 Uganda&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nairobi&lt;/td&gt;
&lt;td&gt;Nairobi&lt;/td&gt;
&lt;td&gt;Enkare Nyorobi — "cool waters" (Maasai)&lt;/td&gt;
&lt;td&gt;🇰🇪 Kenya&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mombasa&lt;/td&gt;
&lt;td&gt;Mombasa&lt;/td&gt;
&lt;td&gt;Mvita — "island of war" (Swahili)&lt;/td&gt;
&lt;td&gt;🇰🇪 Kenya&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dar es Salaam&lt;/td&gt;
&lt;td&gt;Dar es Salaam&lt;/td&gt;
&lt;td&gt;Mzizima — "healthy town" (Swahili)&lt;/td&gt;
&lt;td&gt;🇹🇿 Tanzania&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kigali&lt;/td&gt;
&lt;td&gt;Kigali&lt;/td&gt;
&lt;td&gt;Kigali — "hill of many" (Kinyarwanda)&lt;/td&gt;
&lt;td&gt;🇷🇼 Rwanda&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Butare&lt;/td&gt;
&lt;td&gt;Astrida&lt;/td&gt;
&lt;td&gt;Butare (Kinyarwanda)&lt;/td&gt;
&lt;td&gt;🇷🇼 Rwanda&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bujumbura&lt;/td&gt;
&lt;td&gt;Usumbura&lt;/td&gt;
&lt;td&gt;Bujumbura (Kirundi)&lt;/td&gt;
&lt;td&gt;🇧🇮 Burundi&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Congo's Six Administrative Eras
&lt;/h2&gt;

&lt;p&gt;The DRC is the most dramatic example. The country's internal borders were redrawn with almost every regime change:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1910 — Congo Free State:&lt;/strong&gt; 12 districts under Leopold's rubber terror&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;CD&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;100&amp;amp;q&lt;span class="o"&gt;=&lt;/span&gt;district
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;1933 — Belgian Congo:&lt;/strong&gt; Reorganized into 6 provinces and 16 districts&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;CD&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;100
&lt;span class="c"&gt;# Returns provinces from each historical era&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;1966 — Post-Independence:&lt;/strong&gt; 9 provinces (Léopoldville renamed Kinshasa)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1988 — Zaire:&lt;/strong&gt; 11 regions under Mobutu (Shaba, Bas-Zaïre, Haut-Zaïre...)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1997 — DRC Restored:&lt;/strong&gt; 11 provinces reverted to pre-Mobutu names&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2015 — Current:&lt;/strong&gt; Split into 26 provinces (today's structure)&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;h2&gt;
  
  
  Uganda's Five Kingdoms
&lt;/h2&gt;

&lt;p&gt;Uganda's pre-colonial history is dominated by five kingdoms that were abolished in 1967 and (mostly) restored in the 1990s as cultural institutions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;UG&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Buganda"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"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"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bunyoro-Kitara"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"One of the oldest kingdoms in East Africa, traces origins to the Bachwezi dynasty. Capital at Hoima. Abolished 1967, restored 1993."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Toro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Founded c. 1830 when Prince Kaboyo broke away from Bunyoro. King Oyo crowned at age 3 in 1995."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ankole"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NOT officially restored due to Bairu vs Bahima disagreements."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Busoga"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Confederation of chieftainships. Kyabazinga title rotates among clan chiefs."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each kingdom is stored as a historical division (level 100) with &lt;code&gt;is_active=false&lt;/code&gt;, complete with descriptions about their founding, abolition, and current status.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who Uses Historical Border Data?
&lt;/h2&gt;

&lt;p&gt;This isn't just an academic exercise. Real use cases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Genealogy platforms&lt;/strong&gt; — Birth certificates from "Élisabethville" need to map to modern Lubumbashi&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Historical research&lt;/strong&gt; — Datasets from the 1950s reference Belgian Congo districts that don't exist anymore&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Government modernization&lt;/strong&gt; — Kenya's 2010 constitution replaced 8 provinces with 47 counties; old records still reference the provinces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Education&lt;/strong&gt; — Interactive tools showing how borders evolved&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Journalism&lt;/strong&gt; — Contextualizing place references in historical documents&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Countries&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total divisions&lt;/td&gt;
&lt;td&gt;88,000+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historical eras&lt;/td&gt;
&lt;td&gt;47&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historical place names&lt;/td&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DRC historical divisions&lt;/td&gt;
&lt;td&gt;117 across 6 eras&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kenya historical divisions&lt;/td&gt;
&lt;td&gt;167 (8 provinces + 159 districts)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uganda kingdoms&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Try the live explorer at &lt;a href="https://mipaka.dev/#explorer" rel="noopener noreferrer"&gt;mipaka.dev&lt;/a&gt; — pick a country and explore historical eras, name changes, and division hierarchies in real time.&lt;/p&gt;

&lt;p&gt;Léopoldville is gone from every map. But in Mipaka, you can still find it — and trace the exact moment it became Kinshasa. &lt;/p&gt;

&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://mipaka.dev" rel="noopener noreferrer"&gt;mipaka.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Docs:&lt;/strong&gt; &lt;a href="https://api.mipaka.dev/api/docs/" rel="noopener noreferrer"&gt;api.mipaka.dev/api/docs/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API on RapidAPI:&lt;/strong&gt; &lt;a href="https://rapidapi.com/ceddyville/api/mipaka" rel="noopener noreferrer"&gt;rapidapi.com/ceddyville/api/mipaka&lt;/a&gt; — free tier available&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ceddyville/mipaka-api" rel="noopener noreferrer"&gt;github.com/ceddyville/mipaka-api&lt;/a&gt; — MIT license, PRs welcome&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The historical data is especially thin for South Sudan and Tanzania — if you have expertise in those regions, contributions are welcome.&lt;/p&gt;




&lt;h2&gt;
  
  
  Next in the Series
&lt;/h2&gt;

&lt;p&gt;This is &lt;strong&gt;Part 3&lt;/strong&gt; of the Mipaka API series. Missed the earlier posts? Start with &lt;a href="https://dev.to/ceddyville/i-built-a-free-rest-api-for-kenyas-47-counties-290-constituencies-and-1450-wards-31j7"&gt;Part 1: Mipaka: A Free REST API for 100K+ Administrative Divisions Across East Africa&lt;/a&gt; or catch up on &lt;a href="https://dev.to/ceddyville/mipaka-api-update-47-historical-eras-124-colonial-era-place-names-and-drcs-complete-139o"&gt;Part 2: Mipaka API Update: 47 Historical Eras, 124 Colonial-Era Place Names, and DRC's Complete Administrative History&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Next up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Part 4:&lt;/strong&gt; Building Location Dropdowns for African Apps (React + Vue tutorial)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow me to catch the next post!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mipaka — every border, one API.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>history</category>
      <category>africa</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Mipaka API Update: 47 Historical Eras, 124 Colonial-Era Place Names, and DRC's Complete Administrative History</title>
      <dc:creator>Cedric Ongoro</dc:creator>
      <pubDate>Mon, 30 Mar 2026 03:10:25 +0000</pubDate>
      <link>https://dev.to/ceddyville/mipaka-api-update-47-historical-eras-124-colonial-era-place-names-and-drcs-complete-139o</link>
      <guid>https://dev.to/ceddyville/mipaka-api-update-47-historical-eras-124-colonial-era-place-names-and-drcs-complete-139o</guid>
      <description>&lt;h2&gt;
  
  
  What's Changed Since Launch
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://dev.to/ceddyville/i-built-a-free-rest-api-for-kenyas-47-counties-290-constituencies-and-1450-wards-31j7"&gt;Part 1&lt;/a&gt;, I introduced Mipaka — a free REST API for administrative divisions across 7 East/Central African countries. The focus was the basics: cascading dropdowns, search, filtering, and historical names.&lt;/p&gt;

&lt;p&gt;Since then, the API has grown significantly. Here's everything new.&lt;/p&gt;




&lt;h2&gt;
  
  
  By the Numbers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;At Launch&lt;/th&gt;
&lt;th&gt;Now&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Divisions&lt;/td&gt;
&lt;td&gt;103,194&lt;/td&gt;
&lt;td&gt;88,000+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Countries&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historical eras&lt;/td&gt;
&lt;td&gt;~10&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;47&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historical place names&lt;/td&gt;
&lt;td&gt;~60&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;124&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historical divisions&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;229&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cities with coordinates&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;34&lt;/strong&gt; (DRC)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why did the division count drop?&lt;/strong&gt; Rwanda's data was resynced with corrected upstream sources, removing duplicate villages. The data is more accurate now.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  47 Historical Eras
&lt;/h2&gt;

&lt;p&gt;Every country now has a complete chain of eras — from pre-colonial kingdoms through colonial occupation to the present day.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/eras/?country&lt;span class="o"&gt;=&lt;/span&gt;CD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;DRC alone has 7 eras:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Era&lt;/th&gt;
&lt;th&gt;Period&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kingdom of Kongo&lt;/td&gt;
&lt;td&gt;~1390–1914&lt;/td&gt;
&lt;td&gt;Pre-colonial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Luba Empire&lt;/td&gt;
&lt;td&gt;~1585–1889&lt;/td&gt;
&lt;td&gt;Pre-colonial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Congo Free State&lt;/td&gt;
&lt;td&gt;1885–1908&lt;/td&gt;
&lt;td&gt;Colonial (Belgian)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Belgian Congo&lt;/td&gt;
&lt;td&gt;1908–1960&lt;/td&gt;
&lt;td&gt;Colonial (Belgian)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Republic of the Congo&lt;/td&gt;
&lt;td&gt;1960–1964&lt;/td&gt;
&lt;td&gt;Independence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Democratic Republic of the Congo (First Republic)&lt;/td&gt;
&lt;td&gt;1964–1971&lt;/td&gt;
&lt;td&gt;Independence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Republic of Zaire&lt;/td&gt;
&lt;td&gt;1971–1997&lt;/td&gt;
&lt;td&gt;Independence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Democratic Republic of the Congo&lt;/td&gt;
&lt;td&gt;1997–present&lt;/td&gt;
&lt;td&gt;Current&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Uganda has 10 eras&lt;/strong&gt; — including 8 pre-colonial kingdoms and chiefdoms with their current rulers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Buganda Kingdom&lt;/strong&gt; (~1300–present) — Kabaka Ronald Muwenda Mutebi II&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bunyoro-Kitara Kingdom&lt;/strong&gt; (~1300–present) — Omukama Solomon Gafabusa Iguru I&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kingdom of Toro&lt;/strong&gt; (~1830–present) — Omukama Oyo Nyimba Kabamba Iguru Rukidi IV&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kingdom of Ankole&lt;/strong&gt; (~1500–1967) — abolished, never restored&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Busoga Kingdom&lt;/strong&gt; (~1500–present) — Kyabazinga William Wilberforce Gabula Nadiope IV&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each era carries notes, date ranges, colonial power tracking, and links to the divisions that existed during that period.&lt;/p&gt;




&lt;h2&gt;
  
  
  124 Historical Place Names
&lt;/h2&gt;

&lt;p&gt;Major cities now have their full naming history — indigenous, colonial, and modern names mapped to specific eras and languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kinshasa through the centuries:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/divisions/&lt;span class="o"&gt;{&lt;/span&gt;kinshasa_id&lt;span class="o"&gt;}&lt;/span&gt;/names/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Nshasa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Kikongo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"indigenous"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Kingdom of Kongo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"etymology"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Named after Nshasa village on the riverbank"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Léopoldville"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"French"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"colonial"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Congo Free State"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"etymology"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Named after King Leopold II by Henry Morton Stanley (1881)"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Kinshasa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lingala"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"official"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"era_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Democratic Republic of the Congo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"etymology"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Restored to indigenous name at independence (1966)"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Name coverage by country:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Country&lt;/th&gt;
&lt;th&gt;Historical Names&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DRC&lt;/td&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;td&gt;Nshasa → Léopoldville → Kinshasa, Stanleyville → Kisangani, Élisabethville → Lubumbashi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uganda&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;td&gt;Kasozi k'Empala → Kampala, Bugiri → Port Bell, Entebbe (Luganda: "seat")&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kenya&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;Enkare Nyirobi → Nairobi, Kisumo/Kisuma → Port Florence → Kisumu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tanzania&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;Dar es Salaam (Arabic: "Haven of Peace"), Bagamoyo (Swahili: "Lay down your heart")&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rwanda&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;Nyarugenge → Kigali, Butare → Huye&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;South Sudan&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;Gondokoro → Juba, Mongalla → colonial river station&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Burundi&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;Usumbura → Bujumbura, Kitega → Gitega&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  229 Historical Divisions
&lt;/h2&gt;

&lt;p&gt;Beyond current administrative boundaries, the API now includes divisions that no longer exist — searchable by country and level:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Kenya's 8 former provinces (1963–2010)&lt;/span&gt;
GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;KE&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;100

&lt;span class="c"&gt;# DRC's 11 provinces under Mobutu (1997–2015)&lt;/span&gt;
GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;CD&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;100

&lt;span class="c"&gt;# South Sudan's 28 states (2015–2020 decree)&lt;/span&gt;
GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;SS&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Level 100 is a convention used to separate historical divisions from active administrative data — they won't appear in standard queries unless you filter explicitly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's available:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Country&lt;/th&gt;
&lt;th&gt;Historical Divisions&lt;/th&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kenya&lt;/td&gt;
&lt;td&gt;167&lt;/td&gt;
&lt;td&gt;8 provinces + 159 districts (1963/1992/2007)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DRC&lt;/td&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;6 eras of provinces and districts (1910–present)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;South Sudan&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;td&gt;28 states from 2015 presidential decree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rwanda&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;12 prefectures (pre-2006 restructuring)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tanzania&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6 regions created between 2002–2016&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uganda&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;5 traditional kingdoms (abolished 1967, restored 1993)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Historical divisions use &lt;code&gt;is_active=false&lt;/code&gt; so they don't pollute standard queries. Filter explicitly to find them.&lt;/p&gt;




&lt;h2&gt;
  
  
  DRC Deep Data: 325 Records Across 6 Administrative Eras
&lt;/h2&gt;

&lt;p&gt;DRC got the biggest upgrade. The original API had 174 records (provinces + territories). It now has &lt;strong&gt;325 records&lt;/strong&gt; tracing how the country was divided from Leopold's 15 districts in 1910 to today's 26 provinces:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Era&lt;/th&gt;
&lt;th&gt;Divisions&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1910 Districts&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;District du Katanga, District de l'Équateur&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1933 Provinces&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Province du Katanga, Province de Léopoldville&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1963 Provinces&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;Nord-Katanga, Sud-Kasaï (first post-independence split)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1966 Provinces&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Shaba (renamed from Katanga under Mobutu)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1997 Provinces&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;Katanga restored, Congo-Kinshasa&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Current (2015)&lt;/td&gt;
&lt;td&gt;26 + territories&lt;/td&gt;
&lt;td&gt;Katanga split into Haut-Katanga, Lualaba, Tanganyika, Haut-Lomami&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Plus &lt;strong&gt;34 cities with coordinates&lt;/strong&gt; — the first geo-coded data in the API.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;This data enrichment sets the foundation for features coming soon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Coordinates for all countries&lt;/strong&gt; — DRC is the pilot, on the roadmap expand to Kenya, Uganda, and others&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GeoJSON boundaries&lt;/strong&gt; — polygon data for map rendering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Population data&lt;/strong&gt; — census figures tied to divisions&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Try the live explorer at &lt;a href="https://mipaka.dev/#explorer" rel="noopener noreferrer"&gt;mipaka.dev&lt;/a&gt; — pick a country, drill through divisions, and see historical eras in action.&lt;/p&gt;

&lt;p&gt;Everything above is also available on &lt;a href="https://rapidapi.com/ceddyville/api/mipaka" rel="noopener noreferrer"&gt;RapidAPI&lt;/a&gt; with a free tier, and the code is &lt;a href="https://github.com/ceddyville/mipaka-api" rel="noopener noreferrer"&gt;open source on GitHub&lt;/a&gt; — MIT licensed.&lt;/p&gt;

&lt;p&gt;The historical data is the part of Mipaka I'm most proud of. There's nothing else like it — a structured, queryable dataset of how African cities and borders have changed across centuries. If you're a historian, genealogist, or just someone who finds African history fascinating, I'd genuinely love your contributions. The data is open source — PRs welcome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://mipaka.dev" rel="noopener noreferrer"&gt;mipaka.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Docs:&lt;/strong&gt; &lt;a href="https://api.mipaka.dev/api/docs/" rel="noopener noreferrer"&gt;api.mipaka.dev/api/docs/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API on RapidAPI:&lt;/strong&gt; &lt;a href="https://rapidapi.com/ceddyville/api/mipaka" rel="noopener noreferrer"&gt;rapidapi.com/ceddyville/api/mipaka&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ceddyville/mipaka-api" rel="noopener noreferrer"&gt;github.com/ceddyville/mipaka-api&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Coming Next
&lt;/h2&gt;

&lt;p&gt;This is &lt;strong&gt;Part 2&lt;/strong&gt; of the Mipaka API series. Missed the intro? Start with &lt;a href="https://dev.to/ceddyville/i-built-a-free-rest-api-for-kenyas-47-counties-290-constituencies-and-1450-wards-31j7"&gt;Part 1: Mipaka: A Free REST API for 100K+ Administrative Divisions Across East Africa&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Next up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Part 3:&lt;/strong&gt; From Léopoldville to Kinshasa — 500 Years of African Border Changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow me to catch the next one!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mipaka — every border, one API.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>africa</category>
      <category>opensource</category>
      <category>history</category>
    </item>
    <item>
      <title>Mipaka: A Free REST API for 100K+ Administrative Divisions Across East Africa</title>
      <dc:creator>Cedric Ongoro</dc:creator>
      <pubDate>Sat, 21 Mar 2026 11:00:19 +0000</pubDate>
      <link>https://dev.to/ceddyville/i-built-a-free-rest-api-for-kenyas-47-counties-290-constituencies-and-1450-wards-31j7</link>
      <guid>https://dev.to/ceddyville/i-built-a-free-rest-api-for-kenyas-47-counties-290-constituencies-and-1450-wards-31j7</guid>
      <description>&lt;h2&gt;
  
  
  The Problem Every African Developer Knows
&lt;/h2&gt;

&lt;p&gt;You're building a form. It has a location dropdown. You need Kenya's 47 counties, then the constituencies under each county, then the wards.&lt;/p&gt;

&lt;p&gt;So you do what we all do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;counties&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Baringo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Bomet&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Bungoma&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Busia&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="cm"&gt;/* ...43 more */&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the client asks: "Can you add Uganda too?" And Tanzania. And Rwanda. Each country has completely different administrative structures — counties vs regions vs provinces, wards vs sub-counties vs cells.&lt;/p&gt;

&lt;p&gt;You end up with a mess of hardcoded arrays, outdated data, and no parent-child relationships.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;Mipaka API&lt;/strong&gt; to solve this.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Mipaka?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://mipaka.dev" rel="noopener noreferrer"&gt;Mipaka&lt;/a&gt; (&lt;em&gt;Swahili for "boundaries"&lt;/em&gt;) is a free REST API that gives you normalized access to administrative divisions across 7 East African countries — through a single consistent interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;103,194 divisions&lt;/strong&gt; across &lt;strong&gt;7 countries&lt;/strong&gt; with full parent-child hierarchies:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Country&lt;/th&gt;
&lt;th&gt;Levels&lt;/th&gt;
&lt;th&gt;Records&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🇰🇪 Kenya&lt;/td&gt;
&lt;td&gt;County → Constituency → Ward&lt;/td&gt;
&lt;td&gt;1,787&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇹🇿 Tanzania&lt;/td&gt;
&lt;td&gt;Region → District&lt;/td&gt;
&lt;td&gt;207&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇺🇬 Uganda&lt;/td&gt;
&lt;td&gt;Region → District → County → Sub-county → Parish → Village&lt;/td&gt;
&lt;td&gt;83,012&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇷🇼 Rwanda&lt;/td&gt;
&lt;td&gt;Province → District → Sector → Cell → Village&lt;/td&gt;
&lt;td&gt;17,441&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇧🇮 Burundi&lt;/td&gt;
&lt;td&gt;Province → Commune → Colline&lt;/td&gt;
&lt;td&gt;491&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇨🇩 DRC&lt;/td&gt;
&lt;td&gt;Province → Territory&lt;/td&gt;
&lt;td&gt;174&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇸🇸 South Sudan&lt;/td&gt;
&lt;td&gt;State → County → Payam&lt;/td&gt;
&lt;td&gt;82&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Quick Demo: Kenya Counties in 3 Lines
&lt;/h2&gt;

&lt;h3&gt;
  
  
  JavaScript
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://mipaka.p.rapidapi.com/api/v1/countries/KE/top/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;X-RapidAPI-Key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;YOUR_KEY&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;counties&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;counties&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// [{ name: "Baringo", level: 1, level_name: "County", children_count: 6 }, ...]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://mipaka.p.rapidapi.com/api/v1/countries/KE/top/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;X-RapidAPI-Key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;counties&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;counties&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; — &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;children_count&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; constituencies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Baringo — 6 constituencies
Bomet — 5 constituencies
Bungoma — 9 constituencies
Busia — 7 constituencies
...
Nairobi — 17 constituencies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Building Cascading Dropdowns
&lt;/h2&gt;

&lt;p&gt;The most common use case — a location picker that cascades from country → level 1 → level 2 → etc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Step 1: Get all countries&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;countries&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;mipaka&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/countries/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// [{ code: "KE", name: "Kenya" }, { code: "UG", name: "Uganda" }, ...]&lt;/span&gt;

&lt;span class="c1"&gt;// Step 2: User picks Kenya → get counties&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;counties&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;mipaka&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/countries/KE/top/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// [{ id: 1, name: "Baringo" }, { id: 2, name: "Bomet" }, ...]&lt;/span&gt;

&lt;span class="c1"&gt;// Step 3: User picks Nairobi (id=7) → get constituencies&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;constituencies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;mipaka&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/divisions/7/children/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// [{ id: 48, name: "Dagoretti North" }, { id: 49, name: "Dagoretti South" }, ...]&lt;/span&gt;

&lt;span class="c1"&gt;// Step 4: User picks Dagoretti North → get wards&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;wards&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;mipaka&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/divisions/48/children/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// [{ name: "Gatina" }, { name: "Kileleshwa" }, { name: "Kilimani" }, ...]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One API. One interface. Works the same for all 7 countries. No more maintaining separate county/district/province arrays.&lt;/p&gt;




&lt;h2&gt;
  
  
  Filtering &amp;amp; Search
&lt;/h2&gt;

&lt;p&gt;The API supports rich filtering out of the box:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# All Kenyan counties&lt;/span&gt;
GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;KE&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;1

&lt;span class="c"&gt;# Search by name across all countries&lt;/span&gt;
GET /api/v1/divisions/?q&lt;span class="o"&gt;=&lt;/span&gt;kampala

&lt;span class="c"&gt;# Children of a specific division&lt;/span&gt;
GET /api/v1/divisions/?parent&lt;span class="o"&gt;=&lt;/span&gt;42

&lt;span class="c"&gt;# Combine filters&lt;/span&gt;
GET /api/v1/divisions/?country&lt;span class="o"&gt;=&lt;/span&gt;UG&amp;amp;level&lt;span class="o"&gt;=&lt;/span&gt;3&amp;amp;q&lt;span class="o"&gt;=&lt;/span&gt;buganda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Bonus Feature: Historical Names
&lt;/h2&gt;

&lt;p&gt;This is my favorite part. Every division can have multiple names across historical eras.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; What was Kinshasa called in 1923?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/divisions/?name&lt;span class="o"&gt;=&lt;/span&gt;Léopoldville&amp;amp;year&lt;span class="o"&gt;=&lt;/span&gt;1923
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The API carries ~60 major cities with pre-colonial, colonial, and post-independence names. Perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Genealogy research&lt;/strong&gt; — birth certificates from colonial-era cities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Historical data mapping&lt;/strong&gt; — connecting old datasets to modern divisions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Education&lt;/strong&gt; — exploring how borders and names evolved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's how four cities across four countries changed names over the centuries:&lt;/p&gt;

&lt;h3&gt;
  
  
  Kinshasa, DRC
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Era&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Story&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kingdom of Kongo (~1390)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Nshasa&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Kikongo&lt;/td&gt;
&lt;td&gt;Teke fishing village on the Congo River&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Congo Free State (1885)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Léopoldville&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;French&lt;/td&gt;
&lt;td&gt;Stanley's trading post, named after King Leopold II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DR Congo (1966)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Kinshasa&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lingala&lt;/td&gt;
&lt;td&gt;Indigenous name restored under Mobutu's authenticité policy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Juba, South Sudan
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Era&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Story&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pre-colonial&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Jubek&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bari&lt;/td&gt;
&lt;td&gt;"Uncultivated land near the river" — Bari people's settlement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mahdist State (1885)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Gondokoro&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;English&lt;/td&gt;
&lt;td&gt;Older trading post nearby, abandoned for Juba&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anglo-Egyptian Sudan (1899)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Juba&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bari&lt;/td&gt;
&lt;td&gt;British built administrative post in 1922&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Bujumbura, Burundi
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Era&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Story&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kingdom of Burundi&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Bujumbura&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Kirundi&lt;/td&gt;
&lt;td&gt;Indigenous name — exact meaning disputed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;German East Africa (1889)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Usumbura&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;German&lt;/td&gt;
&lt;td&gt;German military post on Lake Tanganyika&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Independence (1962)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Bujumbura&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Kirundi&lt;/td&gt;
&lt;td&gt;Original name restored&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Kampala, Uganda
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Era&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Story&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Buganda Kingdom (~1300)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Kasozi k'Empala&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Luganda&lt;/td&gt;
&lt;td&gt;"Hill of impala" — Buganda royal hunting ground&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uganda Protectorate (1894)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Kampala&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;English&lt;/td&gt;
&lt;td&gt;British fort on the same hill&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Query any city's full name history&lt;/span&gt;
GET /api/v1/divisions/&lt;span class="o"&gt;{&lt;/span&gt;city_id&lt;span class="o"&gt;}&lt;/span&gt;/names/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Try It Free
&lt;/h2&gt;

&lt;p&gt;Try the live explorer at &lt;a href="https://mipaka.dev/#explorer" rel="noopener noreferrer"&gt;mipaka.dev&lt;/a&gt; — pick a country, drill down through divisions, and see the API responses in real time.&lt;/p&gt;

&lt;p&gt;Mipaka is also available on &lt;a href="https://rapidapi.com/ceddyville/api/mipaka" rel="noopener noreferrer"&gt;RapidAPI&lt;/a&gt; with a generous free tier, and the code is &lt;a href="https://github.com/ceddyville/mipaka-api" rel="noopener noreferrer"&gt;open source on GitHub&lt;/a&gt; under the MIT license — contributions welcome, especially for countries with partial data (Tanzania wards, DRC territories).&lt;/p&gt;

&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://mipaka.dev" rel="noopener noreferrer"&gt;mipaka.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Docs:&lt;/strong&gt; &lt;a href="https://api.mipaka.dev/api/docs/" rel="noopener noreferrer"&gt;api.mipaka.dev/api/docs/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API on RapidAPI:&lt;/strong&gt; &lt;a href="https://rapidapi.com/ceddyville/api/mipaka" rel="noopener noreferrer"&gt;rapidapi.com/ceddyville/api/mipaka&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ceddyville/mipaka-api" rel="noopener noreferrer"&gt;github.com/ceddyville/mipaka-api&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;For those curious about the internals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Django 4.2 + Django REST Framework&lt;/strong&gt; — handles serialization, filtering, pagination, OpenAPI docs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PostgreSQL&lt;/strong&gt; on Railway — 103K records with proper indexes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;drf-spectacular&lt;/strong&gt; — auto-generated Swagger/ReDoc documentation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;7 management commands&lt;/strong&gt; — one per country, idempotent syncs from pre-built JSON data&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you're building anything that needs East African location data — forms, KYC flows, delivery zones, research dashboards — give Mipaka a try. And if you have data for regions I haven't covered yet, &lt;a href="https://github.com/ceddyville/mipaka-api/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;PRs are welcome&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Coming Next
&lt;/h2&gt;

&lt;p&gt;This is &lt;strong&gt;Part 1&lt;/strong&gt; of the Mipaka API series. Next up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Part 2:&lt;/strong&gt; What's New — 47 Historical Eras, 124 Place Names, and DRC's Six Administrative Eras&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow me to catch the next one!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mipaka — every border, one API.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>python</category>
      <category>django</category>
      <category>africa</category>
    </item>
  </channel>
</rss>
