Indonesian administrative regions — province, regency, district and village — from official government registries, with BPS and Kemendagri codes.
provincesnot measuredregenciesnot measureddistrictsnot measuredvillagesnot measuredsearchnot measuredbridgingnot measured/v1/indonesia:wilayah/provinces1d cache0 paramschecking key…// npm i zpi-sdk
import { ZpiClient } from "zpi-sdk";
const client = new ZpiClient({ apiKey: "zpi_xxxxxxxxxxxxxxxxxxxxxxxx" });
const data = await client.run("indonesia:wilayah", "provinces", {});
console.log(data);curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/provinces" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"/v1/indonesia:wilayah/provincesAll 38 Indonesian provinces with their official BPS codes.This endpoint takes no parameters.
curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/provinces" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"count": 38,
"items": [
{
"code": "11",
"name": "ACEH"
},
{
"code": "12",
"name": "SUMATERA UTARA"
},
{
"code": "13",
"name": "SUMATERA BARAT"
},
{
"code": "14",
"name": "RIAU"
},
{
"code": "15",
"name": "JAMBI"
},
{
"code": "16",
"name": "SUMATERA SELATAN"
},
{
"code": "17",
"name": "BENGKULU"
},
{
"code": "18",
"name": "LAMPUNG"
}
],
"provider": "sipedas"
}/v1/indonesia:wilayah/regenciesRegencies and cities of one province, typed KABUPATEN or KOTA.provinceCodestringrequiredyearnumberoptionalcurl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/regencies?provinceCode=32&year=2026" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"year": 2026,
"count": 27,
"items": [
{
"code": "3201",
"name": "BOGOR",
"type": "KABUPATEN"
},
{
"code": "3202",
"name": "SUKABUMI",
"type": "KABUPATEN"
},
{
"code": "3203",
"name": "CIANJUR",
"type": "KABUPATEN"
},
{
"code": "3204",
"name": "BANDUNG",
"type": "KABUPATEN"
},
{
"code": "3205",
"name": "GARUT",
"type": "KABUPATEN"
},
{
"code": "3206",
"name": "TASIKMALAYA",
"type": "KABUPATEN"
},
{
"code": "3207",
"name": "CIAMIS",
"type": "KABUPATEN"
},
{
"code": "3208",
"name": "KUNINGAN",
"type": "KABUPATEN"
}
],
"provider": "sipedas",
"provinceCode": "32"
}/v1/indonesia:wilayah/districtsDistricts (kecamatan) of one regency or city.regencyCodestringrequiredyearnumberoptionalcurl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/districts?regencyCode=3204&year=2026" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"year": 2026,
"count": 31,
"items": [
{
"code": "3204010",
"name": "CIWIDEY"
},
{
"code": "3204011",
"name": "RANCABALI"
},
{
"code": "3204020",
"name": "PASIRJAMBU"
},
{
"code": "3204030",
"name": "CIMAUNG"
},
{
"code": "3204040",
"name": "PANGALENGAN"
},
{
"code": "3204050",
"name": "KERTASARI"
},
{
"code": "3204060",
"name": "PACET"
},
{
"code": "3204070",
"name": "IBUN"
}
],
"provider": "sipedas",
"regencyCode": "3204"
}/v1/indonesia:wilayah/villagesVillages (desa/kelurahan) of one district.districtCodestringrequiredyearnumberoptionalcurl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/villages?districtCode=3204280&year=2026" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"year": 2026,
"count": 6,
"items": [
{
"code": "3204280001",
"name": "BOJONGSARI"
},
{
"code": "3204280002",
"name": "BOJONGSOANG"
},
{
"code": "3204280003",
"name": "LENGKONG"
},
{
"code": "3204280004",
"name": "CIPAGALO"
},
{
"code": "3204280005",
"name": "BUAHBATU"
},
{
"code": "3204280006",
"name": "TEGALLUAR"
}
],
"provider": "sipedas",
"districtCode": "3204280"
}/v1/indonesia:wilayah/searchSearch regions by name across all four levels; returns BPS and Kemendagri codes.qstringrequiredcurl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/search?q=bojong%25soang" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"count": 2,
"items": [
{
"code": "3204280",
"name": "BOJONGSOANG",
"level": "district",
"kodeDagri": "32.04.08",
"namaDagri": "BOJONGSOANG"
},
{
"code": "3204280002",
"name": "BOJONGSOANG",
"level": "village",
"kodeDagri": "32.04.08.2002",
"namaDagri": "BOJONGSOANG"
}
],
"query": "bojong%soang",
"provider": "sig-bps",
"truncated": false
}/v1/indonesia:wilayah/bridgingBPS code, Kemendagri code and postal code for every region under one parent.levelenumrequiredparentCodestringoptionalcurl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/bridging?level=village&parentCode=3204280" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"count": 6,
"items": [
{
"code": "3204280001",
"name": "BOJONGSARI",
"type": "DESA",
"kodePos": "40354",
"kodeDagri": "32.04.08.2005",
"namaDagri": "BOJONGSARI"
},
{
"code": "3204280002",
"name": "BOJONGSOANG",
"type": "DESA",
"kodePos": "40354",
"kodeDagri": "32.04.08.2002",
"namaDagri": "BOJONGSOANG"
},
{
"code": "3204280003",
"name": "LENGKONG",
"type": "DESA",
"kodePos": "40354",
"kodeDagri": "32.04.08.2001",
"namaDagri": "LENGKONG"
},
{
"code": "3204280004",
"name": "CIPAGALO",
"type": "DESA",
"kodePos": "40354",
"kodeDagri": "32.04.08.2004",
"namaDagri": "CIPAGALO"
},
{
"code": "3204280005",
"name": "BUAHBATU",
"type": "DESA",
"kodePos": "40354",
"kodeDagri": "32.04.08.2003",
"namaDagri": "BUAHBATU"
},
{
"code": "3204280006",
"name": "TEGALLUAR",
"type": "DESA",
"kodePos": "40354",
"kodeDagri": "32.04.08.2006",
"namaDagri": "TEGALLUAR"
}
],
"level": "village",
"provider": "sig-bps",
"parentCode": "3204280"
}