Kodifikasi wilayah · JSON statis · /api/v1
Indonesia Region API
Kode dan hierarki wilayah administrasi Indonesia dalam format yang siap dibaca mesin. Gratis, hanya-baca, tanpa API key, disajikan sebagai file statis dari CDN.
Dataset kepmendagri-300.2.2-2138-2025+2430-2025 · berlaku 2025-06-23
Tingkat wilayah administrasi
-
Provinsi
Province
38
31
-
Kabupaten / Kota
Regency / City
514
31.71
416 kabupaten · 98 kota
-
Kecamatan
District · distrik di Papua
7.285
31.71.01
-
Kelurahan / Desa
Village
83.762
31.71.01.1001
8.496 kelurahan · 75.252 desa · 14 desa adat
Mulai cepat
Setiap endpoint adalah file JSON biasa. Telusuri hierarki satu tingkat demi satu tingkat, tidak perlu mengunduh semuanya.
# Semua provinsi
curl https://indonesia-region.caturseptian.site/api/v1/provinces.json
# Kabupaten/kota di DKI Jakarta (31)
curl https://indonesia-region.caturseptian.site/api/v1/provinces/31/regencies.json
# Kecamatan di Kota Administrasi Jakarta Pusat (31.71)
curl https://indonesia-region.caturseptian.site/api/v1/regencies/31.71/districts.json
# Kelurahan di Kecamatan Gambir (31.71.01)
curl https://indonesia-region.caturseptian.site/api/v1/districts/31.71.01/villages.json
const BASE = "https://indonesia-region.caturseptian.site/api/v1";
const provinces = await fetch(`${BASE}/provinces.json`).then((r) => r.json());
const regencies = await fetch(`${BASE}/provinces/31/regencies.json`).then((r) => r.json());
const villages = await fetch(`${BASE}/districts/31.71.01/villages.json`).then((r) => r.json());
console.log(villages[0]);
// { code: "31.71.01.1001", name: "Gambir", type: "kelurahan", district_code: "31.71.01", ... }
import requests
BASE = "https://indonesia-region.caturseptian.site/api/v1"
provinces = requests.get(f"{BASE}/provinces.json", timeout=30).json()
districts = requests.get(f"{BASE}/regencies/31.71/districts.json", timeout=30).json()
for d in districts:
print(d["code"], d["name"])
Base URL: https://indonesia-region.caturseptian.site/api/v1/. Tanpa API key, tanpa pendaftaran.
Endpoint
- GET/api/v1/meta.jsonversi, sumber, jumlah data
- GET/api/v1/provinces.json38 provinsi
- GET/api/v1/provinces/{code}/regencies.jsonkabupaten/kota dalam satu provinsi
- GET/api/v1/regencies/{code}/districts.jsonkecamatan dalam satu kabupaten/kota
- GET/api/v1/districts/{code}/villages.jsonkelurahan/desa dalam satu kecamatan
- GET/api/v1/{provinces|regencies|districts}/{code}.jsonsatu data beserta induk dan jumlah anaknya
- GET/api/v1/export/indonesia-regions.{csv|json|xml|sql|xlsx|pdf}unduh seluruh dataset: CSV, JSON, XML, SQL, Excel, PDF
- GET/api/v1/islands.json · islands.geojson17.374 pulau beserta koordinat (juga GeoJSON) · peta
- GET/api/v1/villages.jsonseluruh 83.762 kelurahan/desa (24 MB, usang; pakai file per provinsi atau per kecamatan)
- GET/api/v1/provinces/{code}/villages.jsonkelurahan/desa dalam satu provinsi
Respons
GET /api/v1/districts/31.71.01/villages.json (data pertama)
[
{
"code": "31.71.01.1001",
"name": "Gambir",
"type": "kelurahan",
"district_code": "31.71.01",
"regency_code": "31.71",
"province_code": "31",
"source_page": 1335
},
...
]
Kode selalu berupa string (angka nol di depan itu penting). source_page adalah halaman PDF sumber tempat data tersebut dibaca.
Asal data
Dataset ini diekstrak dari lampiran Keputusan Menteri Dalam Negeri Nomor 300.2.2-2138 Tahun 2025 (sebagaimana diubah dengan Kepmendagri 300.2.2-2430 Tahun 2025, yang hanya mengubah data pulau), divalidasi terhadap rekapitulasi di dokumen itu sendiri, lalu diterbitkan sebagai file statis. Setiap data mencantumkan halaman PDF asalnya. Tabel kode sebelumnya (Permendagri 137/2017, Kepmendagri 100.1.1-6117/2022) disimpan sebagai snapshot historis beserta daftar perubahannya.
Ini adalah proyek independen yang menyediakan data siap-mesin yang diturunkan dari dokumen regulasi pemerintah Indonesia yang tersedia untuk publik. Ini bukan API resmi pemerintah dan tidak didukung oleh Kementerian Dalam Negeri.