Data wilayah administrasi Indonesia (Provinsi, Kabupaten/Kota, Kecamatan, Desa/Kelurahan) dalam format JSON.
Repositori ini menyediakan data wilayah Indonesia yang mudah diakses secara langsung (static API) melalui GitHub Pages atau CDN (jsDelivr).
Proyek ini menggunakan data wilayah terbaru (2026) yang bersumber dari izzulabadi/api-wilayah-indonesia-2026.
API ini dikemas dengan pendekatan statis (tanpa database/backend). Cukup hosting file JSON statis (misalnya di GitHub Pages) dan klien bisa langsung mengambil data yang dibutuhkan.
Kelebihan pendekatan ini:
- Cepat & Murah: Bisa di-hosting gratis di GitHub Pages, Vercel, atau Netlify.
- CDN Ready: Bisa diakses lewat jsDelivr untuk performa tinggi dan caching global.
- Optimasi: Data desa (villages) yang besar dipecah per-kecamatan untuk mengurangi ukuran download.
Data disimpan dalam folder api/ dengan format JSON Array.
[
{
"id": "11",
"name": "ACEH"
},
...
][
{
"id": "1101",
"provinceId": "11",
"name": "KABUPATEN SIMEULUE"
},
...
][
{
"id": "1101010",
"regencyId": "1101",
"name": "TEUPAH SELATAN"
},
...
][
{
"id": "1101010001",
"districtId": "1101010",
"name": "LATIUNG"
},
...
]Anda dapat mengakses data langsung melalui URL berikut (ganti <username> dan <repo> sesuai repositori Anda, atau gunakan URL demo jika tersedia).
Base URL (jsDelivr - Recommended):
https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api
Catatan: ID yang digunakan dalam API ini mengikuti standar kode wilayah BPS (Badan Pusat Statistik).
| Deskripsi | Endpoint | Contoh URL (Jawa Barat) |
|---|---|---|
| Semua Provinsi | /provinces.json |
Link |
| Semua Kabupaten | /regencies.json |
Link |
| Kabupaten per Provinsi | /regencies/{provinceId}.json |
Link |
| Semua Kecamatan | /districts.json |
Link |
| Kecamatan per Kabupaten | /districts/{regencyId}.json |
Link |
| Semua Desa (Besar!) | /villages.json |
Link |
| Desa per Kecamatan | /villages/{districtId}.json |
Link |
Catatan: Sangat disarankan menggunakan endpoint granular (
/regencies/{provinceId}.json,/districts/{regencyId}.json,/villages/{districtId}.json) untuk performa aplikasi yang maksimal.
Mengambil daftar provinsi:
fetch('https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json')
.then(response => response.json())
.then(provinces => console.log(provinces));Mengambil daftar desa di Kecamatan Bakongan (ID: 110101):
fetch('https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/villages/110101.json')
.then(response => response.json())
.then(villages => console.log(villages));<?php
$url = 'https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json';
$data = file_get_contents($url);
$provinces = json_decode($data, true);
print_r($provinces);
?>import requests
url = 'https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json'
response = requests.get(url)
provinces = response.json()
print(provinces)package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, _ := http.Get("https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json")
defer resp.Body.Close()
var provinces []map[string]interface{}
json.NewDecoder(resp.Body).Decode(&provinces)
fmt.Println(provinces)
}Karena data berbentuk array statis, Anda bisa melakukan filter di sisi klien (browser).
// Contoh: Cari kabupaten di provinsi Aceh (ID: 11)
const regencies = await fetch('/api/regencies.json').then(r => r.json());
const acehRegencies = regencies.filter(regency => regency.provinceId === '11');
console.log(acehRegencies);Jika Anda ingin mengembangkan atau memodifikasi data ini secara lokal:
-
Clone repositori
git clone https://github.com/izzulabadi/api-wilayah-indonesia-2026.git cd api-wilayah-indonesia-2026 -
Install dependencies (hanya butuh Node.js)
# Tidak ada dependensi npm khusus, cukup Node.js bawaan node -v -
Update Data
- Edit file JSON di folder
api/jika diperlukan. - Jika mengubah data desa, jalankan script split untuk memperbarui file per-kecamatan:
node scripts/split-villages.js
- Edit file JSON di folder
-
Validasi & Build Manifest
- Jalankan script publish untuk memvalidasi file dan membuat
manifest.json:node scripts/publish-api.js
- Jalankan script publish untuk memvalidasi file dan membuat
-
Commit & Push
git add . git commit -m "Update data wilayah" git push origin main
Data wilayah ini bersumber dari izzulabadi/api-wilayah-indonesia-2026. Silakan merujuk ke repositori tersebut untuk informasi lisensi data yang lebih spesifik.
Repositori ini (skrip dan dokumentasi) bersifat open source. Jika bermanfaat, jangan lupa berikan ⭐️!